.p2align support is present in all x86 assemblers on released Darwin systems. This “fixes” most of the remaining alignment-related fails in i386.exp
tested on x86_64-darwin16, x86_64-linux-gnu, applied to mainline, thanks Iain gcc/ 2019-05-31 Iain Sandoe <i...@sandoe.co.uk> * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New. diff --git a/gcc/config/i386/darwin.h b/gcc/config/i386/darwin.h index 1128428330..46fa329f62 100644 --- a/gcc/config/i386/darwin.h +++ b/gcc/config/i386/darwin.h @@ -223,6 +223,18 @@ extern int darwin_emit_branch_islands; } \ } while (0) +#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN +#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \ + do { \ + if ((LOG) != 0) { \ + if ((MAX_SKIP) == 0 || (MAX_SKIP) >= (1 << (LOG)) - 1) \ + fprintf ((FILE), "\t.p2align %d\n", (LOG)); \ + else \ + fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \ + } \ + } while (0) +#endif + /* Darwin x86 assemblers support the .ident directive. */ #undef TARGET_ASM_OUTPUT_IDENT -- 2.17.1