From: Andreas Tobler Date: Fri, 4 Dec 2015 20:25:56 +0000 (+0100) Subject: backport: freebsd64.h (ELFv2_ABI_CHECK): Add new macro. X-Git-Tag: releases/gcc-4.9.4~471 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d2a700aa547a31cb4e591c4d21c83f5c7aca27a;p=thirdparty%2Fgcc.git backport: freebsd64.h (ELFv2_ABI_CHECK): Add new macro. 2015-12-04 Andreas Tobler Backport from mainline 2015-12-01 Andreas Tobler * config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro. (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set rs6000_current_abi to ABI_AIX or ABI_ELFv2. From-SVN: r231306 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f0e5d6f245e9..de5c0bdaa1e0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2015-12-04 Andreas Tobler + + Backport from mainline + 2015-12-01 Andreas Tobler + + * config/rs6000/freebsd64.h (ELFv2_ABI_CHECK): Add new macro. + (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set + rs6000_current_abi to ABI_AIX or ABI_ELFv2. + 2015-12-02 Renlin Li Backport from mainline. diff --git a/gcc/config/rs6000/freebsd64.h b/gcc/config/rs6000/freebsd64.h index 034867089219..062a980f63a5 100644 --- a/gcc/config/rs6000/freebsd64.h +++ b/gcc/config/rs6000/freebsd64.h @@ -65,6 +65,13 @@ extern int dot_symbols; #define INVALID_64BIT "-m%s not supported in this configuration" #define INVALID_32BIT INVALID_64BIT +/* Use LINUX64 instead of FREEBSD64 for compat with e.g. sysv4le.h */ +#ifdef LINUX64_DEFAULT_ABI_ELFv2 +#define ELFv2_ABI_CHECK (rs6000_elf_abi != 1) +#else +#define ELFv2_ABI_CHECK (rs6000_elf_abi == 2) +#endif + #undef SUBSUBTARGET_OVERRIDE_OPTIONS #define SUBSUBTARGET_OVERRIDE_OPTIONS \ do \ @@ -84,6 +91,12 @@ extern int dot_symbols; rs6000_isa_flags &= ~OPTION_MASK_RELOCATABLE; \ error (INVALID_64BIT, "relocatable"); \ } \ + if (ELFv2_ABI_CHECK) \ + { \ + rs6000_current_abi = ABI_ELFv2; \ + if (dot_symbols) \ + error ("-mcall-aixdesc incompatible with -mabi=elfv2"); \ + } \ if (rs6000_isa_flags & OPTION_MASK_EABI) \ { \ rs6000_isa_flags &= ~OPTION_MASK_EABI; \