| --- gcc-4.8.2.orig/gcc/config/arm/t-arm-elf 2013-01-10 20:38:27.000000000 +0000 |
| +++ gcc-4.8.2/gcc/config/arm/t-arm-elf 2013-12-28 22:54:59.000000000 +0000 |
| @@ -25,22 +25,36 @@ |
| #MULTILIB_DIRNAMES += fa526 fa626 fa606te fa626te fmp626 fa726te |
| #MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=fa526 *mthumb*/*mcpu=fa626 |
| |
| +# build a bunch of specialized versions of libcc for particular cores |
| +#MULTILIB_OPTIONS += mcpu=arm7tdmi/mcpu=arm9tdmi/mcpu=arm920t/mcpu=arm926ej-s/mcpu=arm1136j-s/mcpu=arm1136jf-s/mcpu=arm1176jz-s/mcpu=arm1176jzf-s/mcpu=xscale/mcpu=mpcore/mcpu=cortex-a8/cortex-a9/march=armv4t/march=armv5t/march=armv5te/march=armv6/march=armv6j/march=armv6k/march=armv6z/march=armv6zk/march=armv7-a/march=armv7-r |
| +#MULTILIB_DIRNAMES += arm7tdmi arm9tdmi arm920t arm926ej-s arm1136j-s arm1136jf-s arm1176jz-s arm1176jzf-s xscale mpcore cortex-a8 cortex-a9 cortex-m3 armv4t armv5t armv5te armv6 armv6j armv6k armv6z armv6zk armv7-a armv7-r |
| +#MULTILIB_OPTIONS += mcpu=arm7tdmi/mcpu=arm9tdmi/mcpu=arm920t/mcpu=arm926ej-s/mcpu=arm1136j-s/mcpu=arm1136jf-s/mcpu=arm1176jz-s/mcpu=arm1176jzf-s/mcpu=xscale/mcpu=mpcore/mcpu=cortex-a8/mcpu=cortex-a9 |
| +#MULTILIB_DIRNAMES += arm7tdmi arm9tdmi arm920t arm926ej-s arm1136j-s arm1136jf-s arm1176jz-s arm1176jzf-s xscale mpcore cortex-a8 cortex-a9 |
| + |
| +MULTILIB_OPTIONS += march=armv7 |
| +MULTILIB_DIRNAMES += thumb2 |
| +MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7* |
| +MULTILIB_MATCHES += march?armv7=march?armv7-a |
| +MULTILIB_MATCHES += march?armv7=march?armv7-r |
| +MULTILIB_MATCHES += march?armv7=march?armv7-m |
| +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a15 |
| +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a9 |
| +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8 |
| +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4 |
| +MULTILIB_MATCHES += march?armv7=mcpu?cortex-m4 |
| +MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3 |
| + |
| +#MULTILIB_OPTIONS += mfpu=vfp |
| +#MULTILIB_DIRNAMES += vfp |
| +#MULTILIB_MATCHES += mfpu?vfp=mcpu?arm1136jf-s |
| +#MULTILIB_MATCHES += mfpu?vfp=mcpu?arm1136jzf-s |
| -#MULTILIB_OPTIONS += march=armv7 |
| -#MULTILIB_DIRNAMES += thumb2 |
| -#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7* |
| -#MULTILIB_MATCHES += march?armv7=march?armv7-a |
| -#MULTILIB_MATCHES += march?armv7=march?armv7-r |
| -#MULTILIB_MATCHES += march?armv7=march?armv7-m |
| -#MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8 |
| -#MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4 |
| -#MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3 |
| |
| # Not quite true. We can support hard-vfp calling in Thumb2, but how do we |
| # express that here? Also, we really need architecture v5e or later |
| # (mcrr etc). |
| +#MULTILIB_OPTIONS += mfloat-abi=hard |
| +#MULTILIB_DIRNAMES += fpu |
| +#MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* |
| -MULTILIB_OPTIONS += mfloat-abi=hard |
| -MULTILIB_DIRNAMES += fpu |
| -MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* |
| #MULTILIB_EXCEPTIONS += *mcpu=fa526/*mfloat-abi=hard* |
| #MULTILIB_EXCEPTIONS += *mcpu=fa626/*mfloat-abi=hard* |
| |
| @@ -56,8 +70,8 @@ |
| # MULTILIB_DIRNAMES += fpu soft |
| # MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* |
| # |
| +MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork |
| +MULTILIB_DIRNAMES += normal interwork |
| -# MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork |
| -# MULTILIB_DIRNAMES += normal interwork |
| # |
| # MULTILIB_OPTIONS += fno-leading-underscore/fleading-underscore |
| # MULTILIB_DIRNAMES += elf under |
| reverted: |
| --- gcc-4.8.2.orig/gcc/config/i386/t-x86_64-elf 1970-01-01 01:00:00.000000000 +0100 |
| +++ gcc-4.8.2/gcc/config/i386/t-x86_64-elf 2013-12-29 12:47:35.000000000 +0000 |
| @@ -0,0 +1,8 @@ |
| +# Add redzoneless libgcc |
| + |
| +MULTILIB_OPTIONS += mno-red-zone |
| +MULTILIB_DIRNAMES += no-red-zone |
| + |
| +# Build a 32bit libgcc as well |
| +MULTILIB_OPTIONS += m32 |
| +MULTILIB_DIRNAMES += 32 |
| \ No newline at end of file |
| reverted: |
| --- gcc-4.8.2.orig/gcc/config.gcc 2013-10-03 01:47:24.000000000 +0100 |
| +++ gcc-4.8.2/gcc/config.gcc 2013-12-29 12:06:18.000000000 +0000 |
| @@ -1213,6 +1213,7 @@ |
| tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h" |
| ;; |
| x86_64-*-elf*) |
| + tmake_file="${tmake_file} i386/t-x86_64-elf" |
| tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h" |
| ;; |
| i[34567]86-*-rdos*) |
| |
| gcc/ |
| 2016-09-27 Roland McGrath <roland@hack.frob.com> |
| |
| PR other/77609 |
| * varasm.c (default_section_type_flags): Set SECTION_NOTYPE for |
| any section for which we don't know a specific type it should have, |
| regardless of name. Previously this was done only for the exact |
| names ".init_array", ".fini_array", and ".preinit_array". |
| |
| diff --git a/gcc/varasm.c b/gcc/varasm.c |
| index b0f2af0..dcc9976 100644 |
| --- a/gcc/varasm.c |
| +++ b/gcc/varasm.c |
| @@ -6193,15 +6193,20 @@ default_section_type_flags (tree decl, const char *name, int reloc) |
| || strncmp (name, ".gnu.linkonce.tb.", 17) == 0) |
| flags |= SECTION_TLS | SECTION_BSS; |
| |
| - /* These three sections have special ELF types. They are neither |
| - SHT_PROGBITS nor SHT_NOBITS, so when changing sections we don't |
| - want to print a section type (@progbits or @nobits). If someone |
| - is silly enough to emit code or TLS variables to one of these |
| - sections, then don't handle them specially. */ |
| - if (!(flags & (SECTION_CODE | SECTION_BSS | SECTION_TLS)) |
| - && (strcmp (name, ".init_array") == 0 |
| - || strcmp (name, ".fini_array") == 0 |
| - || strcmp (name, ".preinit_array") == 0)) |
| + /* Various sections have special ELF types that the assembler will |
| + assign by default based on the name. They are neither SHT_PROGBITS |
| + nor SHT_NOBITS, so when changing sections we don't want to print a |
| + section type (@progbits or @nobits). Rather than duplicating the |
| + assembler's knowledge of what those special name patterns are, just |
| + let the assembler choose the type if we don't know a specific |
| + reason to set it to something other than the default. SHT_PROGBITS |
| + is the default for sections whose name is not specially known to |
| + the assembler, so it does no harm to leave the choice to the |
| + assembler when @progbits is the best thing we know to use. If |
| + someone is silly enough to emit code or TLS variables to one of |
| + these sections, then don't handle them specially. */ |
| + if (!(flags & (SECTION_CODE | SECTION_BSS | SECTION_TLS | SECTION_ENTSIZE)) |
| + && !(HAVE_COMDAT_GROUP && (flags & SECTION_LINKONCE))) |
| flags |= SECTION_NOTYPE; |
| |
| return flags; |