| --- 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 |
| --- 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 |
| 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; |
| diff -dcprN gcc-6.2.0/config.sub gcc-6.2.0-fuchsia/config.sub |
| *** gcc-6.2.0/config.sub 2015-12-31 13:13:28.000000000 -0800 |
| --- gcc-6.2.0-fuchsia/config.sub 2016-10-24 17:07:48.244523443 -0700 |
| *************** case $os in |
| *** 1531,1536 **** |
| --- 1531,1539 ---- |
| ;; |
| -nacl*) |
| ;; |
| + -fuchsia*) |
| + os=-fuchsia |
| + ;; |
| -none) |
| ;; |
| *) |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/gcc/collect2.c gcc-6.2.0/gcc/collect2.c |
| *** gcc-6.2.0-fsf/gcc/collect2.c 2016-11-23 09:11:05.324188090 -0800 |
| --- gcc-6.2.0/gcc/collect2.c 2016-11-30 13:50:14.585469484 -0800 |
| *************** main (int argc, char **argv) |
| *** 1067,1074 **** |
| --- 1067,1076 ---- |
| if (signal (SIGQUIT, SIG_IGN) != SIG_IGN) |
| signal (SIGQUIT, handler); |
| #endif |
| + #ifdef SIGINT |
| if (signal (SIGINT, SIG_IGN) != SIG_IGN) |
| signal (SIGINT, handler); |
| + #endif |
| #ifdef SIGALRM |
| if (signal (SIGALRM, SIG_IGN) != SIG_IGN) |
| signal (SIGALRM, handler); |
| *************** main (int argc, char **argv) |
| *** 1077,1084 **** |
| --- 1079,1088 ---- |
| if (signal (SIGHUP, SIG_IGN) != SIG_IGN) |
| signal (SIGHUP, handler); |
| #endif |
| + #ifdef SIGSEGV |
| if (signal (SIGSEGV, SIG_IGN) != SIG_IGN) |
| signal (SIGSEGV, handler); |
| + #endif |
| #ifdef SIGBUS |
| if (signal (SIGBUS, SIG_IGN) != SIG_IGN) |
| signal (SIGBUS, handler); |
| *************** static void |
| *** 2307,2313 **** |
| --- 2311,2319 ---- |
| scan_prog_file (const char *prog_name, scanpass which_pass, |
| scanfilter filter) |
| { |
| + #ifdef SIGINT |
| void (*int_handler) (int); |
| + #endif |
| #ifdef SIGQUIT |
| void (*quit_handler) (int); |
| #endif |
| *************** scan_prog_file (const char *prog_name, s |
| *** 2373,2379 **** |
| --- 2379,2387 ---- |
| fatal_error (input_location, errmsg); |
| } |
| |
| + #ifdef SIGINT |
| int_handler = (void (*) (int)) signal (SIGINT, SIG_IGN); |
| + #endif |
| #ifdef SIGQUIT |
| quit_handler = (void (*) (int)) signal (SIGQUIT, SIG_IGN); |
| #endif |
| *************** scan_prog_file (const char *prog_name, s |
| *** 2499,2505 **** |
| --- 2507,2515 ---- |
| |
| do_wait (nm_file_name, pex); |
| |
| + #ifdef SIGINT |
| signal (SIGINT, int_handler); |
| + #endif |
| #ifdef SIGQUIT |
| signal (SIGQUIT, quit_handler); |
| #endif |
| *************** scan_libraries (const char *prog_name) |
| *** 2571,2577 **** |
| --- 2581,2589 ---- |
| fatal_error (input_location, errmsg); |
| } |
| |
| + #ifdef SIGINT |
| int_handler = (void (*) (int)) signal (SIGINT, SIG_IGN); |
| + #endif |
| #ifdef SIGQUIT |
| quit_handler = (void (*) (int)) signal (SIGQUIT, SIG_IGN); |
| #endif |
| *************** scan_libraries (const char *prog_name) |
| *** 2619,2625 **** |
| --- 2631,2639 ---- |
| |
| do_wait (ldd_file_name, pex); |
| |
| + #ifdef SIGINT |
| signal (SIGINT, int_handler); |
| + #endif |
| #ifdef SIGQUIT |
| signal (SIGQUIT, quit_handler); |
| #endif |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/gcc/config/arm/fuchsia-elf.h gcc-6.2.0/gcc/config/arm/fuchsia-elf.h |
| *** gcc-6.2.0-fsf/gcc/config/arm/fuchsia-elf.h 1969-12-31 16:00:00.000000000 -0800 |
| --- gcc-6.2.0/gcc/config/arm/fuchsia-elf.h 2016-11-21 19:10:12.382326720 -0800 |
| *************** |
| *** 0 **** |
| --- 1,31 ---- |
| + /* Configuration file for ARM Fuchsia ELF targets. |
| + Copyright (C) 2016 Free Software Foundation, Inc. |
| + Contributed by Google. |
| + |
| + This file is part of GCC. |
| + |
| + GCC is free software; you can redistribute it and/or modify it |
| + under the terms of the GNU General Public License as published |
| + by the Free Software Foundation; either version 3, or (at your |
| + option) any later version. |
| + |
| + GCC is distributed in the hope that it will be useful, but WITHOUT |
| + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
| + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public |
| + License for more details. |
| + |
| + You should have received a copy of the GNU General Public License |
| + along with GCC; see the file COPYING3. If not see |
| + <http://www.gnu.org/licenses/>. */ |
| + |
| + /* Use the BPABI builtins and the generic OS builtins. */ |
| + #undef TARGET_SUB_OS_CPP_BUILTINS |
| + #define TARGET_SUB_OS_CPP_BUILTINS() \ |
| + TARGET_BPABI_CPP_BUILTINS() |
| + |
| + /* Use the AAPCS ABI by default. */ |
| + #undef ARM_DEFAULT_ABI |
| + #define ARM_DEFAULT_ABI ARM_ABI_AAPCS |
| + |
| + #define ARM_TARGET2_DWARF_FORMAT (DW_EH_PE_pcrel | DW_EH_PE_indirect) |
| + |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/gcc/config/fuchsia.h gcc-6.2.0/gcc/config/fuchsia.h |
| *** gcc-6.2.0-fsf/gcc/config/fuchsia.h 1969-12-31 16:00:00.000000000 -0800 |
| --- gcc-6.2.0/gcc/config/fuchsia.h 2017-01-10 09:07:12.943847114 -0800 |
| *************** |
| *** 0 **** |
| --- 1,105 ---- |
| + /* Base configuration file for all Fuchsia targets. |
| + Copyright (C) 2016 Free Software Foundation, Inc. |
| + |
| + This file is part of GCC. |
| + |
| + GCC is free software; you can redistribute it and/or modify |
| + it under the terms of the GNU General Public License as published by |
| + the Free Software Foundation; either version 3, or (at your option) |
| + any later version. |
| + |
| + GCC is distributed in the hope that it will be useful, |
| + but WITHOUT ANY WARRANTY; without even the implied warranty of |
| + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| + GNU General Public License for more details. |
| + |
| + You should have received a copy of the GNU General Public License |
| + along with GCC; see the file COPYING3. If not see |
| + <http://www.gnu.org/licenses/>. */ |
| + |
| + /* Common Fuchsia configuration. */ |
| + |
| + /* In case we need to know. */ |
| + #define USING_CONFIG_FUCHSIA 1 |
| + |
| + #undef STARTFILE_SPEC |
| + #define STARTFILE_SPEC "%{!shared: crt1%O%s} crtbegin%O%s" |
| + |
| + #undef ENDFILE_SPEC |
| + #define ENDFILE_SPEC "crtend%O%s" |
| + |
| + /* When neither pic nor pie has been specified, use PIE by default. */ |
| + #undef CC1_SPEC |
| + #define CC1_SPEC "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC:" \ |
| + "%{!fno-pie:%{!fno-PIE:%{!fpie:%{!fPIE: -fPIE}}}}}}}}" |
| + |
| + #undef LIB_SPEC |
| + #define LIB_SPEC "--start-group" \ |
| + " -lmxio -lmagenta -lc -llaunchpad" \ |
| + "%{!static: -lgcc_s}" \ |
| + " --end-group" |
| + |
| + #undef LINK_SPEC |
| + #define LINK_SPEC "-z max-page-size=4096" \ |
| + " -z combreloc" \ |
| + " -z relro" \ |
| + " -z now" \ |
| + " -z text" \ |
| + "%{!hash-style: --hash-style=gnu}" \ |
| + "%{!no-eh-frame-hdr: --eh-frame-hdr}" \ |
| + "%{!no-build-id: --build-id}" \ |
| + "%{shared: -shared}" \ |
| + "%{!shared:%{!static:%{!dynamic-linker: -dynamic-linker=ld.so.1}}}" |
| + |
| + /* We are using MUSL as our libc. */ |
| + #undef OPTION_MUSL |
| + #define OPTION_MUSL 1 |
| + |
| + #ifndef TARGET_SUB_OS_CPP_BUILTINS |
| + #define TARGET_SUB_OS_CPP_BUILTINS() |
| + #endif |
| + |
| + #undef TARGET_OS_CPP_BUILTINS |
| + #define TARGET_OS_CPP_BUILTINS() \ |
| + do \ |
| + { \ |
| + builtin_define ("__Fuchsia__"); \ |
| + TARGET_SUB_OS_CPP_BUILTINS(); \ |
| + } \ |
| + while (false) |
| + |
| + /* /dev/null is unwritable, at the moment. Use this as a workaround. */ |
| + #undef HOST_BIT_BUCKET |
| + #define HOST_BIT_BUCKET "/tmp/.null" |
| + |
| + /* Inode numbers are not available to us. */ |
| + #define HOST_LACKS_INODE_NUMBERS |
| + |
| + /* In fact we have ftw.h, but the function itself is unimplemented. */ |
| + #undef HAVE_FTW_H |
| + |
| + /* Functions that are implemented as stubs in libc. */ |
| + #undef HAVE_GETRLIMIT |
| + #undef HAVE_GETRUSAGE |
| + #undef HAVE_REALPATH |
| + #undef HAVE_SETRLIMIT |
| + #undef HAVE_TIMES |
| + |
| + /* No ioctl() support. */ |
| + #undef TIOCGWINSZ |
| + |
| + /* No signal() support. */ |
| + #undef SIGABRT |
| + #undef SIGALRM |
| + #undef SIGBUS |
| + #undef SIGCHLD |
| + #undef SIGFPE |
| + #undef SIGHUP |
| + #undef SIGILL |
| + #undef SIGINT |
| + #undef SIGIOT |
| + #undef SIGPIPE |
| + #undef SIGQUIT |
| + #undef SIGSEGV |
| + #undef SIGTERM |
| + |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/gcc/config.gcc gcc-6.2.0/gcc/config.gcc |
| *** gcc-6.2.0-fsf/gcc/config.gcc 2016-11-23 09:11:05.804186203 -0800 |
| --- gcc-6.2.0/gcc/config.gcc 2016-11-21 16:05:55.706051533 -0800 |
| *************** case ${target} in |
| *** 710,715 **** |
| --- 710,718 ---- |
| esac |
| use_gcc_stdint=wrap |
| ;; |
| + *-*-fuchsia*) |
| + native_system_header_dir=/include |
| + ;; |
| *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) |
| extra_options="$extra_options gnu-user.opt" |
| gas=yes |
| *************** case ${target} in |
| *** 907,913 **** |
| esac |
| |
| case ${target} in |
| ! aarch64*-*-elf | aarch64*-*-rtems*) |
| tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h" |
| tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h" |
| tmake_file="${tmake_file} aarch64/t-aarch64" |
| --- 910,916 ---- |
| esac |
| |
| case ${target} in |
| ! aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) |
| tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h" |
| tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h" |
| tmake_file="${tmake_file} aarch64/t-aarch64" |
| *************** aarch64*-*-elf | aarch64*-*-rtems*) |
| *** 915,920 **** |
| --- 918,926 ---- |
| aarch64-*-elf*) |
| use_gcc_stdint=wrap |
| ;; |
| + aarch64-*-fuchsia*) |
| + tm_file="${tm_file} fuchsia.h" |
| + ;; |
| aarch64-*-rtems*) |
| tm_file="${tm_file} rtems.h aarch64/rtems.h" |
| ;; |
| *************** arm*-*-uclinux*eabi*) # ARM ucLinux |
| *** 1097,1103 **** |
| # The EABI requires the use of __cxa_atexit. |
| default_use_cxa_atexit=yes |
| ;; |
| ! arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*) |
| case ${target} in |
| arm*eb-*-eabi*) |
| tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" |
| --- 1103,1109 ---- |
| # The EABI requires the use of __cxa_atexit. |
| default_use_cxa_atexit=yes |
| ;; |
| ! arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*) |
| case ${target} in |
| arm*eb-*-eabi*) |
| tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" |
| *************** arm*-*-eabi* | arm*-*-symbianelf* | arm* |
| *** 1111,1116 **** |
| --- 1117,1126 ---- |
| tmake_file="${tmake_file} arm/t-bpabi" |
| use_gcc_stdint=wrap |
| ;; |
| + arm*-*-fuchsia*) |
| + tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h" |
| + tmake_file="${tmake_file} arm/t-bpabi" |
| + ;; |
| arm*-*-rtems*) |
| tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h" |
| tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems" |
| *************** i[34567]86-*-elf*) |
| *** 1418,1423 **** |
| --- 1428,1434 ---- |
| 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" |
| ;; |
| x86_64-*-rtems*) |
| *************** i[34567]86-*-interix[3-9]*) |
| *** 1791,1796 **** |
| --- 1802,1811 ---- |
| tm_file="${tm_file} dbxcoff.h" |
| fi |
| ;; |
| + x86_64-*-fuchsia*) |
| + tmake_file="${tmake_file} i386/t-x86_64-elf" |
| + tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h" |
| + ;; |
| ia64*-*-elf*) |
| tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h" |
| tmake_file="ia64/t-ia64" |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/gcc/config.host gcc-6.2.0/gcc/config.host |
| *** gcc-6.2.0-fsf/gcc/config.host 2016-11-23 09:10:49.908248680 -0800 |
| --- gcc-6.2.0/gcc/config.host 2016-11-21 18:57:29.749649894 -0800 |
| *************** case ${host} in |
| *** 99,105 **** |
| esac |
| |
| case ${host} in |
| ! aarch64*-*-linux*) |
| case ${target} in |
| aarch64*-*-*) |
| host_extra_gcc_objs="driver-aarch64.o" |
| --- 99,105 ---- |
| esac |
| |
| case ${host} in |
| ! aarch64*-*-linux* | aarch64*-*-fuchsia*) |
| case ${target} in |
| aarch64*-*-*) |
| host_extra_gcc_objs="driver-aarch64.o" |
| *************** case ${host} in |
| *** 107,113 **** |
| ;; |
| esac |
| ;; |
| ! arm*-*-freebsd* | arm*-*-linux*) |
| case ${target} in |
| arm*-*-*) |
| host_extra_gcc_objs="driver-arm.o" |
| --- 107,113 ---- |
| ;; |
| esac |
| ;; |
| ! arm*-*-freebsd* | arm*-*-linux* | arm*-*-fuchsia*) |
| case ${target} in |
| arm*-*-*) |
| host_extra_gcc_objs="driver-arm.o" |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/gcc/configure gcc-6.2.0/gcc/configure |
| *** gcc-6.2.0-fsf/gcc/configure 2016-11-23 09:11:05.200188577 -0800 |
| --- gcc-6.2.0/gcc/configure 2016-11-30 12:34:30.868394376 -0800 |
| *************** if test -z "$aix_libpath"; then aix_libp |
| *** 16703,16708 **** |
| --- 16703,16715 ---- |
| hardcode_shlibpath_var=no |
| ;; |
| |
| + fuchsia*) |
| + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' |
| + hardcode_libdir_flag_spec='-R$libdir' |
| + hardcode_direct=yes |
| + hardcode_shlibpath_var=no |
| + ;; |
| + |
| hpux9*) |
| if test "$GCC" = yes; then |
| archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' |
| *************** freebsd* | dragonfly*) |
| *** 17638,17643 **** |
| --- 17645,17656 ---- |
| esac |
| ;; |
| |
| + fuchsia*) |
| + library_names_spec='${libname}${shared_ext}' |
| + need_lib_prefix=no |
| + need_version=no |
| + ;; |
| + |
| gnu*) |
| version_type=linux |
| need_lib_prefix=no |
| *************** fi |
| *** 18241,18246 **** |
| --- 18254,18264 ---- |
| |
| ;; |
| |
| + fuchsia*) |
| + lt_cv_dlopen="dlopen" |
| + lt_cv_dlopen_libs= |
| + ;; |
| + |
| *) |
| ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" |
| if test "x$ac_cv_func_shl_load" = x""yes; then : |
| *************** else |
| *** 18453,18459 **** |
| lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
| lt_status=$lt_dlunknown |
| cat > conftest.$ac_ext <<_LT_EOF |
| ! #line 18456 "configure" |
| #include "confdefs.h" |
| |
| #if HAVE_DLFCN_H |
| --- 18471,18477 ---- |
| lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
| lt_status=$lt_dlunknown |
| cat > conftest.$ac_ext <<_LT_EOF |
| ! #line 18474 "configure" |
| #include "confdefs.h" |
| |
| #if HAVE_DLFCN_H |
| *************** else |
| *** 18559,18565 **** |
| lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
| lt_status=$lt_dlunknown |
| cat > conftest.$ac_ext <<_LT_EOF |
| ! #line 18562 "configure" |
| #include "confdefs.h" |
| |
| #if HAVE_DLFCN_H |
| --- 18577,18583 ---- |
| lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
| lt_status=$lt_dlunknown |
| cat > conftest.$ac_ext <<_LT_EOF |
| ! #line 18580 "configure" |
| #include "confdefs.h" |
| |
| #if HAVE_DLFCN_H |
| *************** freebsd* | dragonfly*) |
| *** 21298,21303 **** |
| --- 21316,21327 ---- |
| esac |
| ;; |
| |
| + fuchsia*) |
| + library_names_spec='${libname}${shared_ext}' |
| + need_lib_prefix=no |
| + need_version=no |
| + ;; |
| + |
| gnu*) |
| version_type=linux |
| need_lib_prefix=no |
| *************** fi |
| *** 29375,29388 **** |
| |
| |
| # Check if -fno-PIE works. |
| ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fno-PIE option" >&5 |
| $as_echo_n "checking for -fno-PIE option... " >&6; } |
| if test "${gcc_cv_c_no_fpie+set}" = set; then : |
| $as_echo_n "(cached) " >&6 |
| else |
| saved_CXXFLAGS="$CXXFLAGS" |
| ! CXXFLAGS="$CXXFLAGS -fno-PIE" |
| ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| /* end confdefs.h. */ |
| int main(void) {return 0;} |
| _ACEOF |
| --- 29399,29417 ---- |
| |
| |
| # Check if -fno-PIE works. |
| ! case $host_os in |
| ! fuchsia*) |
| ! # Fuchsia requires PIE binaries |
| ! ;; |
| ! *) |
| ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fno-PIE option" >&5 |
| $as_echo_n "checking for -fno-PIE option... " >&6; } |
| if test "${gcc_cv_c_no_fpie+set}" = set; then : |
| $as_echo_n "(cached) " >&6 |
| else |
| saved_CXXFLAGS="$CXXFLAGS" |
| ! CXXFLAGS="$CXXFLAGS -fno-PIE" |
| ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| /* end confdefs.h. */ |
| int main(void) {return 0;} |
| _ACEOF |
| *************** else |
| *** 29392,29415 **** |
| gcc_cv_c_no_fpie=no |
| fi |
| rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
| ! CXXFLAGS="$saved_CXXFLAGS" |
| fi |
| { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_c_no_fpie" >&5 |
| $as_echo "$gcc_cv_c_no_fpie" >&6; } |
| ! if test "$gcc_cv_c_no_fpie" = "yes"; then |
| ! NO_PIE_CFLAGS="-fno-PIE" |
| ! fi |
| |
| |
| # Check if -no-pie works. |
| ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -no-pie option" >&5 |
| $as_echo_n "checking for -no-pie option... " >&6; } |
| if test "${gcc_cv_no_pie+set}" = set; then : |
| $as_echo_n "(cached) " >&6 |
| else |
| saved_LDFLAGS="$LDFLAGS" |
| ! LDFLAGS="$LDFLAGS -no-pie" |
| ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| /* end confdefs.h. */ |
| int main(void) {return 0;} |
| _ACEOF |
| --- 29421,29451 ---- |
| gcc_cv_c_no_fpie=no |
| fi |
| rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
| ! CXXFLAGS="$saved_CXXFLAGS" |
| fi |
| { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_c_no_fpie" >&5 |
| $as_echo "$gcc_cv_c_no_fpie" >&6; } |
| ! if test "$gcc_cv_c_no_fpie" = "yes"; then |
| ! NO_PIE_CFLAGS="-fno-PIE" |
| ! fi |
| ! ;; |
| ! esac |
| |
| |
| # Check if -no-pie works. |
| ! case $host_os in |
| ! fuchsia*) |
| ! # Fuchsia requires PIE binaries |
| ! ;; |
| ! *) |
| ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -no-pie option" >&5 |
| $as_echo_n "checking for -no-pie option... " >&6; } |
| if test "${gcc_cv_no_pie+set}" = set; then : |
| $as_echo_n "(cached) " >&6 |
| else |
| saved_LDFLAGS="$LDFLAGS" |
| ! LDFLAGS="$LDFLAGS -no-pie" |
| ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| /* end confdefs.h. */ |
| int main(void) {return 0;} |
| _ACEOF |
| *************** else |
| *** 29420,29432 **** |
| fi |
| rm -f core conftest.err conftest.$ac_objext \ |
| conftest$ac_exeext conftest.$ac_ext |
| ! LDFLAGS="$saved_LDFLAGS" |
| fi |
| { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_no_pie" >&5 |
| $as_echo "$gcc_cv_no_pie" >&6; } |
| ! if test "$gcc_cv_no_pie" = "yes"; then |
| ! NO_PIE_FLAG="-no-pie" |
| ! fi |
| |
| |
| # Check linker supports '-z bndplt' |
| --- 29456,29470 ---- |
| fi |
| rm -f core conftest.err conftest.$ac_objext \ |
| conftest$ac_exeext conftest.$ac_ext |
| ! LDFLAGS="$saved_LDFLAGS" |
| fi |
| { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_no_pie" >&5 |
| $as_echo "$gcc_cv_no_pie" >&6; } |
| ! if test "$gcc_cv_no_pie" = "yes"; then |
| ! NO_PIE_FLAG="-no-pie" |
| ! fi |
| ! ;; |
| ! esac |
| |
| |
| # Check linker supports '-z bndplt' |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/gcc/configure.ac gcc-6.2.0/gcc/configure.ac |
| *** gcc-6.2.0-fsf/gcc/configure.ac 2016-11-23 09:11:05.952185621 -0800 |
| --- gcc-6.2.0/gcc/configure.ac 2016-11-30 12:31:48.821079660 -0800 |
| *************** fi |
| *** 6086,6116 **** |
| AC_SUBST([enable_default_pie]) |
| |
| # Check if -fno-PIE works. |
| ! AC_CACHE_CHECK([for -fno-PIE option], |
| ! [gcc_cv_c_no_fpie], |
| ! [saved_CXXFLAGS="$CXXFLAGS" |
| ! CXXFLAGS="$CXXFLAGS -fno-PIE" |
| ! AC_COMPILE_IFELSE([int main(void) {return 0;}], |
| ! [gcc_cv_c_no_fpie=yes], |
| ! [gcc_cv_c_no_fpie=no]) |
| ! CXXFLAGS="$saved_CXXFLAGS"]) |
| ! if test "$gcc_cv_c_no_fpie" = "yes"; then |
| ! NO_PIE_CFLAGS="-fno-PIE" |
| ! fi |
| AC_SUBST([NO_PIE_CFLAGS]) |
| |
| # Check if -no-pie works. |
| ! AC_CACHE_CHECK([for -no-pie option], |
| ! [gcc_cv_no_pie], |
| ! [saved_LDFLAGS="$LDFLAGS" |
| ! LDFLAGS="$LDFLAGS -no-pie" |
| ! AC_LINK_IFELSE([int main(void) {return 0;}], |
| ! [gcc_cv_no_pie=yes], |
| ! [gcc_cv_no_pie=no]) |
| ! LDFLAGS="$saved_LDFLAGS"]) |
| ! if test "$gcc_cv_no_pie" = "yes"; then |
| ! NO_PIE_FLAG="-no-pie" |
| ! fi |
| AC_SUBST([NO_PIE_FLAG]) |
| |
| # Check linker supports '-z bndplt' |
| --- 6086,6130 ---- |
| AC_SUBST([enable_default_pie]) |
| |
| # Check if -fno-PIE works. |
| ! case $host_os in |
| ! fuchsia*) |
| ! # Fuchsia requires PIE binaries |
| ! ;; |
| ! *) |
| ! AC_CACHE_CHECK([for -fno-PIE option], |
| ! [gcc_cv_c_no_fpie], |
| ! [saved_CXXFLAGS="$CXXFLAGS" |
| ! CXXFLAGS="$CXXFLAGS -fno-PIE" |
| ! AC_COMPILE_IFELSE([int main(void) {return 0;}], |
| ! [gcc_cv_c_no_fpie=yes], |
| ! [gcc_cv_c_no_fpie=no]) |
| ! CXXFLAGS="$saved_CXXFLAGS"]) |
| ! if test "$gcc_cv_c_no_fpie" = "yes"; then |
| ! NO_PIE_CFLAGS="-fno-PIE" |
| ! fi |
| ! ;; |
| ! esac |
| AC_SUBST([NO_PIE_CFLAGS]) |
| |
| # Check if -no-pie works. |
| ! case $host_os in |
| ! fuchsia*) |
| ! # Fuchsia requires PIE binaries |
| ! ;; |
| ! *) |
| ! AC_CACHE_CHECK([for -no-pie option], |
| ! [gcc_cv_no_pie], |
| ! [saved_LDFLAGS="$LDFLAGS" |
| ! LDFLAGS="$LDFLAGS -no-pie" |
| ! AC_LINK_IFELSE([int main(void) {return 0;}], |
| ! [gcc_cv_no_pie=yes], |
| ! [gcc_cv_no_pie=no]) |
| ! LDFLAGS="$saved_LDFLAGS"]) |
| ! if test "$gcc_cv_no_pie" = "yes"; then |
| ! NO_PIE_FLAG="-no-pie" |
| ! fi |
| ! ;; |
| ! esac |
| AC_SUBST([NO_PIE_FLAG]) |
| |
| # Check linker supports '-z bndplt' |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/gcc/gcc.c gcc-6.2.0/gcc/gcc.c |
| *** gcc-6.2.0-fsf/gcc/gcc.c 2016-11-23 09:11:05.472187508 -0800 |
| --- gcc-6.2.0/gcc/gcc.c 2016-11-30 13:46:59.158288993 -0800 |
| *************** driver::global_initializations () |
| *** 7255,7268 **** |
| --- 7255,7272 ---- |
| if (atexit (delete_temp_files) != 0) |
| fatal_error (input_location, "atexit failed"); |
| |
| + #ifdef SIGINT |
| if (signal (SIGINT, SIG_IGN) != SIG_IGN) |
| signal (SIGINT, fatal_signal); |
| + #endif |
| #ifdef SIGHUP |
| if (signal (SIGHUP, SIG_IGN) != SIG_IGN) |
| signal (SIGHUP, fatal_signal); |
| #endif |
| + #ifdef SIGTERM |
| if (signal (SIGTERM, SIG_IGN) != SIG_IGN) |
| signal (SIGTERM, fatal_signal); |
| + #endif |
| #ifdef SIGPIPE |
| if (signal (SIGPIPE, SIG_IGN) != SIG_IGN) |
| signal (SIGPIPE, fatal_signal); |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/gcc/ggc-common.c gcc-6.2.0/gcc/ggc-common.c |
| *** gcc-6.2.0-fsf/gcc/ggc-common.c 2016-12-20 13:59:53.022879377 -0800 |
| --- gcc-6.2.0/gcc/ggc-common.c 2017-01-10 14:54:17.969607414 -0800 |
| *************** mmap_gt_pch_use_address (void *base, siz |
| *** 728,734 **** |
| static double |
| ggc_rlimit_bound (double limit) |
| { |
| ! #if defined(HAVE_GETRLIMIT) |
| struct rlimit rlim; |
| # if defined (RLIMIT_AS) |
| /* RLIMIT_AS is what POSIX says is the limit on mmap. Presumably |
| --- 728,735 ---- |
| static double |
| ggc_rlimit_bound (double limit) |
| { |
| ! /* Fuchsia: getrlimit is not fully implemented yet. */ |
| ! #if !defined(__Fuchsia__) && defined(HAVE_GETRLIMIT) |
| struct rlimit rlim; |
| # if defined (RLIMIT_AS) |
| /* RLIMIT_AS is what POSIX says is the limit on mmap. Presumably |
| *************** ggc_rlimit_bound (double limit) |
| *** 752,758 **** |
| && rlim.rlim_cur >= 8 * 1024 * 1024) |
| limit = rlim.rlim_cur; |
| # endif /* RLIMIT_AS or RLIMIT_DATA */ |
| ! #endif /* HAVE_GETRLIMIT */ |
| |
| return limit; |
| } |
| --- 753,759 ---- |
| && rlim.rlim_cur >= 8 * 1024 * 1024) |
| limit = rlim.rlim_cur; |
| # endif /* RLIMIT_AS or RLIMIT_DATA */ |
| ! #endif /* !Fuchsia && HAVE_GETRLIMIT */ |
| |
| return limit; |
| } |
| *************** ggc_min_heapsize_heuristic (void) |
| *** 790,796 **** |
| bound of 128M (when RAM >= 1GB). */ |
| phys_kbytes /= 8; |
| |
| ! #if defined(HAVE_GETRLIMIT) && defined (RLIMIT_RSS) |
| /* Try not to overrun the RSS limit while doing garbage collection. |
| The RSS limit is only advisory, so no margin is subtracted. */ |
| { |
| --- 791,798 ---- |
| bound of 128M (when RAM >= 1GB). */ |
| phys_kbytes /= 8; |
| |
| ! /* Fuchsia: getrlimit is not fully implemented yet. */ |
| ! #if !defined(__Fuchsia__) && defined(HAVE_GETRLIMIT) && defined (RLIMIT_RSS) |
| /* Try not to overrun the RSS limit while doing garbage collection. |
| The RSS limit is only advisory, so no margin is subtracted. */ |
| { |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/gcc/opts.c gcc-6.2.0/gcc/opts.c |
| *** gcc-6.2.0-fsf/gcc/opts.c 2016-12-20 14:00:05.086836577 -0800 |
| --- gcc-6.2.0/gcc/opts.c 2017-01-10 14:58:46.448360086 -0800 |
| *************** setup_core_dumping (diagnostic_context * |
| *** 2386,2392 **** |
| #ifdef SIGABRT |
| signal (SIGABRT, SIG_DFL); |
| #endif |
| ! #if defined(HAVE_SETRLIMIT) |
| { |
| struct rlimit rlim; |
| if (getrlimit (RLIMIT_CORE, &rlim) != 0) |
| --- 2386,2393 ---- |
| #ifdef SIGABRT |
| signal (SIGABRT, SIG_DFL); |
| #endif |
| ! /* Fuchsia: remove when getrlimit/setrlimit have been implemented. */ |
| ! #if !defined(__Fuchsia__) && defined(HAVE_SETRLIMIT) |
| { |
| struct rlimit rlim; |
| if (getrlimit (RLIMIT_CORE, &rlim) != 0) |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/gcc/timevar.c gcc-6.2.0/gcc/timevar.c |
| *** gcc-6.2.0-fsf/gcc/timevar.c 2016-12-20 14:00:05.594834775 -0800 |
| --- gcc-6.2.0/gcc/timevar.c 2017-01-10 14:56:40.812936374 -0800 |
| *************** struct tms |
| *** 69,75 **** |
| # define HAVE_SYS_TIME |
| # define HAVE_WALL_TIME |
| #else |
| ! #ifdef HAVE_GETRUSAGE |
| # if defined HAVE_DECL_GETRUSAGE && !HAVE_DECL_GETRUSAGE |
| extern int getrusage (int, struct rusage *); |
| # endif |
| --- 69,76 ---- |
| # define HAVE_SYS_TIME |
| # define HAVE_WALL_TIME |
| #else |
| ! /* Fuchsia: remove when getrusage has been implemented. */ |
| ! #if !defined(__Fuchsia__) && defined(HAVE_GETRUSAGE) |
| # if defined HAVE_DECL_GETRUSAGE && !HAVE_DECL_GETRUSAGE |
| extern int getrusage (int, struct rusage *); |
| # endif |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/libgcc/config/arm/unwind-arm.h gcc-6.2.0/libgcc/config/arm/unwind-arm.h |
| *** gcc-6.2.0-fsf/libgcc/config/arm/unwind-arm.h 2016-12-20 14:00:07.118829367 -0800 |
| --- gcc-6.2.0/libgcc/config/arm/unwind-arm.h 2017-01-10 09:08:36.419550153 -0800 |
| *************** extern "C" { |
| *** 49,55 **** |
| return 0; |
| |
| #if (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__) \ |
| ! || defined(__FreeBSD__) |
| /* Pc-relative indirect. */ |
| #define _GLIBCXX_OVERRIDE_TTYPE_ENCODING (DW_EH_PE_pcrel | DW_EH_PE_indirect) |
| tmp += ptr; |
| --- 49,55 ---- |
| return 0; |
| |
| #if (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__) \ |
| ! || defined(__FreeBSD__) || defined(__Fuchsia__) |
| /* Pc-relative indirect. */ |
| #define _GLIBCXX_OVERRIDE_TTYPE_ENCODING (DW_EH_PE_pcrel | DW_EH_PE_indirect) |
| tmp += ptr; |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/libgcc/config/t-slibgcc-fuchsia gcc-6.2.0/libgcc/config/t-slibgcc-fuchsia |
| *** gcc-6.2.0-fsf/libgcc/config/t-slibgcc-fuchsia 1969-12-31 16:00:00.000000000 -0800 |
| --- gcc-6.2.0/libgcc/config/t-slibgcc-fuchsia 2016-11-16 08:49:38.427039926 -0800 |
| *************** |
| *** 0 **** |
| --- 1,22 ---- |
| + # Copyright (C) 2016 Free Software Foundation, Inc. |
| + # |
| + # This file is part of GCC. |
| + # |
| + # GCC is free software; you can redistribute it and/or modify |
| + # it under the terms of the GNU General Public License as published by |
| + # the Free Software Foundation; either version 3, or (at your option) |
| + # any later version. |
| + # |
| + # GCC is distributed in the hope that it will be useful, |
| + # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| + # GNU General Public License for more details. |
| + # |
| + # You should have received a copy of the GNU General Public License |
| + # along with GCC; see the file COPYING3. If not see |
| + # <http://www.gnu.org/licenses/>. |
| + |
| + # Fuchsia-specific shared library overrides. |
| + |
| + SHLIB_LDFLAGS = -Wl,--soname=$(SHLIB_SONAME) \ |
| + $(LDFLAGS) |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/libgcc/config.host gcc-6.2.0/libgcc/config.host |
| *** gcc-6.2.0-fsf/libgcc/config.host 2016-11-23 09:11:08.440175844 -0800 |
| --- gcc-6.2.0/libgcc/config.host 2016-12-08 12:43:21.452060382 -0800 |
| *************** case ${host} in |
| *** 230,235 **** |
| --- 230,239 ---- |
| ;; |
| esac |
| ;; |
| + *-*-fuchsia*) |
| + tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia" |
| + extra_parts="crtbegin.o crtend.o" |
| + ;; |
| *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) |
| tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux" |
| extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" |
| *************** aarch64*-*-elf | aarch64*-*-rtems*) |
| *** 333,338 **** |
| --- 337,346 ---- |
| tmake_file="${tmake_file} ${cpu_type}/t-aarch64" |
| tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm" |
| ;; |
| + aarch64*-*-fuchsia*) |
| + tmake_file="${tmake_file} ${cpu_type}/t-aarch64" |
| + tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp" |
| + ;; |
| aarch64*-*-linux*) |
| extra_parts="$extra_parts crtfastmath.o" |
| md_unwind_header=aarch64/linux-unwind.h |
| *************** arm*-*-freebsd*) # ARM Fr |
| *** 383,388 **** |
| --- 391,402 ---- |
| unwind_header=config/arm/unwind-arm.h |
| tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" |
| ;; |
| + arm*-*-fuchsia*) |
| + tmake_file="${tmake_file} arm/t-arm arm/t-elf arm/t-bpabi" |
| + tmake_file="${tmake_file} arm/tsoftfp t-softfp" |
| + tm_file="${tm_file} arm/bpabi-lib.h" |
| + unwind_header=config/arm/unwind-arm.h |
| + ;; |
| arm*-*-netbsdelf*) |
| tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover" |
| ;; |
| *************** i[34567]86-*-elfiamcu) |
| *** 577,584 **** |
| i[34567]86-*-elf*) |
| tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" |
| ;; |
| ! x86_64-*-elf* | x86_64-*-rtems*) |
| ! tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" |
| ;; |
| i[34567]86-*-dragonfly*) |
| tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff" |
| --- 591,598 ---- |
| i[34567]86-*-elf*) |
| tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" |
| ;; |
| ! x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia*) |
| ! tmake_file="$tmake_file t-libgcc-pic" |
| ;; |
| i[34567]86-*-dragonfly*) |
| tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff" |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/libiberty/lrealpath.c gcc-6.2.0/libiberty/lrealpath.c |
| *** gcc-6.2.0-fsf/libiberty/lrealpath.c 2016-12-20 14:00:06.758830644 -0800 |
| --- gcc-6.2.0/libiberty/lrealpath.c 2017-01-10 15:01:19.863671770 -0800 |
| *************** components will be simplified. The retu |
| *** 56,62 **** |
| extern char *canonicalize_file_name (const char *); |
| #endif |
| |
| ! #if defined(HAVE_REALPATH) |
| # if defined (PATH_MAX) |
| # define REALPATH_LIMIT PATH_MAX |
| # else |
| --- 56,63 ---- |
| extern char *canonicalize_file_name (const char *); |
| #endif |
| |
| ! /* Fuchsia: remove when realpath has been implemented. */ |
| ! #if !defined(__Fuchsia__) && defined(HAVE_REALPATH) |
| # if defined (PATH_MAX) |
| # define REALPATH_LIMIT PATH_MAX |
| # else |
| *************** lrealpath (const char *filename) |
| *** 109,115 **** |
| pathconf()) making it impossible to pass a correctly sized buffer |
| to realpath() (it could always overflow). On those systems, we |
| skip this. */ |
| ! #if defined (HAVE_REALPATH) && defined (HAVE_UNISTD_H) |
| { |
| /* Find out the max path size. */ |
| long path_max = pathconf ("/", _PC_PATH_MAX); |
| --- 110,118 ---- |
| pathconf()) making it impossible to pass a correctly sized buffer |
| to realpath() (it could always overflow). On those systems, we |
| skip this. */ |
| ! /* Fuchsia: remove from conditional when realpath has been implemented. */ |
| ! #if defined (HAVE_REALPATH) && defined (HAVE_UNISTD_H) \ |
| ! && !defined (__Fuchsia__) |
| { |
| /* Find out the max path size. */ |
| long path_max = pathconf ("/", _PC_PATH_MAX); |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/libiberty/pex-unix.c gcc-6.2.0/libiberty/pex-unix.c |
| *** gcc-6.2.0-fsf/libiberty/pex-unix.c 2016-12-20 14:00:06.758830644 -0800 |
| --- gcc-6.2.0/libiberty/pex-unix.c 2017-01-10 09:09:16.271408329 -0800 |
| *************** extern int errno; |
| *** 60,65 **** |
| --- 60,71 ---- |
| #include <process.h> |
| #endif |
| |
| + #ifdef __Fuchsia__ |
| + #include <launchpad/launchpad.h> |
| + #include <magenta/syscalls.h> |
| + #include <magenta/syscalls/object.h> |
| + #endif |
| + |
| #ifdef vfork /* Autoconf may define this to fork for us. */ |
| # define VFORK_STRING "fork" |
| #else |
| *************** to_ptr32 (char **ptr64) |
| *** 120,126 **** |
| |
| static pid_t pex_wait (struct pex_obj *, pid_t, int *, struct pex_time *); |
| |
| ! #ifdef HAVE_WAIT4 |
| |
| static pid_t |
| pex_wait (struct pex_obj *obj ATTRIBUTE_UNUSED, pid_t pid, int *status, |
| --- 126,162 ---- |
| |
| static pid_t pex_wait (struct pex_obj *, pid_t, int *, struct pex_time *); |
| |
| ! #ifdef __Fuchsia__ |
| ! |
| ! static pid_t |
| ! pex_wait (struct pex_obj *obj ATTRIBUTE_UNUSED, pid_t pid, int *status, |
| ! struct pex_time *time ATTRIBUTE_UNUSED) |
| ! { |
| ! mx_status_t wait_result, procinfo_result; |
| ! mx_info_process_t proc_info; |
| ! |
| ! /* We don't support waiting on multiple pids. */ |
| ! if (pid <= 0) |
| ! return -1; |
| ! |
| ! wait_result = mx_handle_wait_one ((mx_handle_t) pid, MX_SIGNAL_SIGNALED, |
| ! MX_TIME_INFINITE, NULL); |
| ! |
| ! if (wait_result != NO_ERROR) |
| ! return -1; |
| ! |
| ! procinfo_result = mx_object_get_info ((mx_handle_t) pid, MX_INFO_PROCESS, |
| ! &proc_info, sizeof (proc_info), NULL, |
| ! NULL); |
| ! |
| ! if (procinfo_result != NO_ERROR) |
| ! return -1; |
| ! |
| ! *status = proc_info.return_code; |
| ! return pid; |
| ! } |
| ! |
| ! #elif defined(HAVE_WAIT4) |
| |
| static pid_t |
| pex_wait (struct pex_obj *obj ATTRIBUTE_UNUSED, pid_t pid, int *status, |
| *************** pex_child_error (struct pex_obj *obj, co |
| *** 391,397 **** |
| |
| /* Execute a child. */ |
| |
| ! #if defined(HAVE_SPAWNVE) && defined(HAVE_SPAWNVPE) |
| /* Implementation of pex->exec_child using the Cygwin spawn operation. */ |
| |
| /* Subroutine of pex_unix_exec_child. Move OLD_FD to a new file descriptor |
| --- 427,433 ---- |
| |
| /* Execute a child. */ |
| |
| ! #if defined(__Fuchsia__) || (defined(HAVE_SPAWNVE) && defined(HAVE_SPAWNVPE)) |
| /* Implementation of pex->exec_child using the Cygwin spawn operation. */ |
| |
| /* Subroutine of pex_unix_exec_child. Move OLD_FD to a new file descriptor |
| *************** pex_unix_exec_child (struct pex_obj *obj |
| *** 547,556 **** |
| --- 583,605 ---- |
| { |
| typedef const char * const *cc_cp; |
| |
| + #ifdef __Fuchsia__ |
| + { |
| + int argc; |
| + |
| + /* Count the number of arguments. */ |
| + for (argc = 0; argv[argc]; argc++) |
| + ; |
| + |
| + /* TODO: Implement PATH search for PEX_SEARCH option. */ |
| + pid = launchpad_launch_mxio (executable, argc, argv); |
| + } |
| + #else |
| if (flags & PEX_SEARCH) |
| pid = spawnvpe (_P_NOWAITO, executable, (cc_cp)argv, (cc_cp)env); |
| else |
| pid = spawnve (_P_NOWAITO, executable, (cc_cp)argv, (cc_cp)env); |
| + #endif |
| |
| if (pid > 0) |
| break; |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/libiberty/stack-limit.c gcc-6.2.0/libiberty/stack-limit.c |
| *** gcc-6.2.0-fsf/libiberty/stack-limit.c 2016-12-20 14:00:06.730830744 -0800 |
| --- gcc-6.2.0/libiberty/stack-limit.c 2017-01-10 14:58:25.856453718 -0800 |
| *************** Attempt to increase stack size limit to |
| *** 46,53 **** |
| void |
| stack_limit_increase (unsigned long pref ATTRIBUTE_UNUSED) |
| { |
| #if defined(HAVE_SETRLIMIT) && defined(HAVE_GETRLIMIT) \ |
| ! && defined(RLIMIT_STACK) && defined(RLIM_INFINITY) |
| struct rlimit rlim; |
| if (getrlimit (RLIMIT_STACK, &rlim) == 0 |
| && rlim.rlim_cur != RLIM_INFINITY |
| --- 46,55 ---- |
| void |
| stack_limit_increase (unsigned long pref ATTRIBUTE_UNUSED) |
| { |
| + /* Fuchsia: remove when getrlimit/setrlimit have been implemented. */ |
| #if defined(HAVE_SETRLIMIT) && defined(HAVE_GETRLIMIT) \ |
| ! && defined(RLIMIT_STACK) && defined(RLIM_INFINITY) \ |
| ! && !defined(__Fuchsia__) |
| struct rlimit rlim; |
| if (getrlimit (RLIMIT_STACK, &rlim) == 0 |
| && rlim.rlim_cur != RLIM_INFINITY |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/libstdc++-v3/configure gcc-6.2.0/libstdc++-v3/configure |
| *** gcc-6.2.0-fsf/libstdc++-v3/configure 2016-11-23 09:10:40.968283817 -0800 |
| --- gcc-6.2.0/libstdc++-v3/configure 2016-11-16 08:49:38.447039849 -0800 |
| *************** if test -z "$aix_libpath"; then aix_libp |
| *** 9825,9830 **** |
| --- 9825,9837 ---- |
| hardcode_shlibpath_var=no |
| ;; |
| |
| + fuchsia*) |
| + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' |
| + hardcode_libdir_flag_spec='-R$libdir' |
| + hardcode_direct=yes |
| + hardcode_shlibpath_var=no |
| + ;; |
| + |
| hpux9*) |
| if test "$GCC" = yes; then |
| archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' |
| *************** freebsd* | dragonfly*) |
| *** 10763,10768 **** |
| --- 10770,10781 ---- |
| esac |
| ;; |
| |
| + fuchsia*) |
| + library_names_spec='${libname}${shared_ext}' |
| + need_lib_prefix=no |
| + need_version=no |
| + ;; |
| + |
| gnu*) |
| version_type=linux |
| need_lib_prefix=no |
| *************** fi |
| *** 11372,11377 **** |
| --- 11385,11395 ---- |
| |
| ;; |
| |
| + fuchsia*) |
| + lt_cv_dlopen="dlopen" |
| + lt_cv_dlopen_libs= |
| + ;; |
| + |
| *) |
| ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" |
| if test "x$ac_cv_func_shl_load" = x""yes; then : |
| *************** else |
| *** 11596,11602 **** |
| lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
| lt_status=$lt_dlunknown |
| cat > conftest.$ac_ext <<_LT_EOF |
| ! #line 11599 "configure" |
| #include "confdefs.h" |
| |
| #if HAVE_DLFCN_H |
| --- 11614,11620 ---- |
| lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
| lt_status=$lt_dlunknown |
| cat > conftest.$ac_ext <<_LT_EOF |
| ! #line 11617 "configure" |
| #include "confdefs.h" |
| |
| #if HAVE_DLFCN_H |
| *************** else |
| *** 11702,11708 **** |
| lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
| lt_status=$lt_dlunknown |
| cat > conftest.$ac_ext <<_LT_EOF |
| ! #line 11705 "configure" |
| #include "confdefs.h" |
| |
| #if HAVE_DLFCN_H |
| --- 11720,11726 ---- |
| lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
| lt_status=$lt_dlunknown |
| cat > conftest.$ac_ext <<_LT_EOF |
| ! #line 11723 "configure" |
| #include "confdefs.h" |
| |
| #if HAVE_DLFCN_H |
| *************** freebsd* | dragonfly*) |
| *** 14447,14452 **** |
| --- 14465,14476 ---- |
| esac |
| ;; |
| |
| + fuchsia*) |
| + library_names_spec='${libname}${shared_ext}' |
| + need_lib_prefix=no |
| + need_version=no |
| + ;; |
| + |
| gnu*) |
| version_type=linux |
| need_lib_prefix=no |
| *************** $as_echo "$glibcxx_cv_atomic_long_long" |
| *** 15388,15394 **** |
| # Fake what AC_TRY_COMPILE does. |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15391 "configure" |
| int main() |
| { |
| typedef bool atomic_type; |
| --- 15412,15418 ---- |
| # Fake what AC_TRY_COMPILE does. |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15415 "configure" |
| int main() |
| { |
| typedef bool atomic_type; |
| *************** $as_echo "$glibcxx_cv_atomic_bool" >&6; |
| *** 15423,15429 **** |
| rm -f conftest* |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15426 "configure" |
| int main() |
| { |
| typedef short atomic_type; |
| --- 15447,15453 ---- |
| rm -f conftest* |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15450 "configure" |
| int main() |
| { |
| typedef short atomic_type; |
| *************** $as_echo "$glibcxx_cv_atomic_short" >&6; |
| *** 15458,15464 **** |
| rm -f conftest* |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15461 "configure" |
| int main() |
| { |
| // NB: _Atomic_word not necessarily int. |
| --- 15482,15488 ---- |
| rm -f conftest* |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15485 "configure" |
| int main() |
| { |
| // NB: _Atomic_word not necessarily int. |
| *************** $as_echo "$glibcxx_cv_atomic_int" >&6; } |
| *** 15494,15500 **** |
| rm -f conftest* |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15497 "configure" |
| int main() |
| { |
| typedef long long atomic_type; |
| --- 15518,15524 ---- |
| rm -f conftest* |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15521 "configure" |
| int main() |
| { |
| typedef long long atomic_type; |
| *************** $as_echo "$as_me: WARNING: Performance o |
| *** 15573,15579 **** |
| # unnecessary for this test. |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15576 "configure" |
| int main() |
| { |
| _Decimal32 d1; |
| --- 15597,15603 ---- |
| # unnecessary for this test. |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15600 "configure" |
| int main() |
| { |
| _Decimal32 d1; |
| *************** ac_compiler_gnu=$ac_cv_cxx_compiler_gnu |
| *** 15615,15621 **** |
| # unnecessary for this test. |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15618 "configure" |
| template<typename T1, typename T2> |
| struct same |
| { typedef T2 type; }; |
| --- 15639,15645 ---- |
| # unnecessary for this test. |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15642 "configure" |
| template<typename T1, typename T2> |
| struct same |
| { typedef T2 type; }; |
| *************** $as_echo "$enable_int128" >&6; } |
| *** 15649,15655 **** |
| rm -f conftest* |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15652 "configure" |
| template<typename T1, typename T2> |
| struct same |
| { typedef T2 type; }; |
| --- 15673,15679 ---- |
| rm -f conftest* |
| |
| cat > conftest.$ac_ext << EOF |
| ! #line 15676 "configure" |
| template<typename T1, typename T2> |
| struct same |
| { typedef T2 type; }; |
| *************** $as_echo "$ac_ld_relro" >&6; } |
| *** 53130,53135 **** |
| --- 53154,53165 ---- |
| |
| fi |
| ;; |
| + |
| + *-fuchsia*) |
| + SECTION_FLAGS='-ffunction-sections -fdata-sections' |
| + SECTION_LDFLAGS='-Wl,--gc-sections $SECTION_LDFLAGS' |
| + ;; |
| + |
| *-hpux*) |
| SECTION_FLAGS='-ffunction-sections -fdata-sections' |
| |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/libstdc++-v3/crossconfig.m4 gcc-6.2.0/libstdc++-v3/crossconfig.m4 |
| *** gcc-6.2.0-fsf/libstdc++-v3/crossconfig.m4 2016-11-23 09:10:41.352282308 -0800 |
| --- gcc-6.2.0/libstdc++-v3/crossconfig.m4 2016-11-16 08:49:38.451039834 -0800 |
| *************** case "${host}" in |
| *** 107,112 **** |
| --- 107,118 ---- |
| AC_DEFINE(HAVE_ISNANL) |
| fi |
| ;; |
| + |
| + *-fuchsia*) |
| + SECTION_FLAGS='-ffunction-sections -fdata-sections' |
| + SECTION_LDFLAGS='-Wl,--gc-sections $SECTION_LDFLAGS' |
| + ;; |
| + |
| *-hpux*) |
| SECTION_FLAGS='-ffunction-sections -fdata-sections' |
| AC_SUBST(SECTION_FLAGS) |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/libtool.m4 gcc-6.2.0/libtool.m4 |
| *** gcc-6.2.0-fsf/libtool.m4 2016-11-23 09:11:07.960177729 -0800 |
| --- gcc-6.2.0/libtool.m4 2016-12-09 14:52:40.904402887 -0800 |
| *************** else |
| *** 1748,1753 **** |
| --- 1748,1758 ---- |
| ]) |
| ;; |
| |
| + fuchsia*) |
| + lt_cv_dlopen="dlopen" |
| + lt_cv_dlopen_libs= |
| + ;; |
| + |
| *) |
| AC_CHECK_FUNC([shl_load], |
| [lt_cv_dlopen="shl_load"], |
| *************** freebsd* | dragonfly*) |
| *** 2323,2328 **** |
| --- 2328,2342 ---- |
| esac |
| ;; |
| |
| + fuchsia*) |
| + need_lib_prefix=no |
| + need_version=no |
| + dynamic_linker="$host_os ld.so.1" |
| + library_names_spec='$libname$shared_ext' |
| + soname_spec='$libname$shared_ext' |
| + sys_lib_dlsearch_path_spec='/system/lib /boot/lib' |
| + ;; |
| + |
| gnu*) |
| version_type=linux |
| need_lib_prefix=no |
| *************** freebsd* | dragonfly*) |
| *** 3047,3052 **** |
| --- 3061,3070 ---- |
| fi |
| ;; |
| |
| + fuchsia*) |
| + lt_cv_deplibs_check_method=pass_all |
| + ;; |
| + |
| gnu*) |
| lt_cv_deplibs_check_method=pass_all |
| ;; |
| *************** m4_if([$1], [CXX], [ |
| *** 3604,3610 **** |
| esac |
| ;; |
| |
| ! beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) |
| # PIC is the default for these OSes. |
| ;; |
| mingw* | cygwin* | os2* | pw32* | cegcc*) |
| --- 3622,3628 ---- |
| esac |
| ;; |
| |
| ! beos* | fuchsia* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) |
| # PIC is the default for these OSes. |
| ;; |
| mingw* | cygwin* | os2* | pw32* | cegcc*) |
| *************** m4_if([$1], [CXX], [ |
| *** 3694,3699 **** |
| --- 3712,3722 ---- |
| freebsd* | dragonfly*) |
| # FreeBSD uses GNU C++ |
| ;; |
| + fuchsia* ) |
| + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
| + _LT_TAGVAR(lt_prog_compiler_pic, $1)= |
| + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' |
| + ;; |
| hpux9* | hpux10* | hpux11*) |
| case $cc_basename in |
| CC*) |
| diff -rdcp --unidirectional-new-file gcc-6.2.0-fsf/Makefile.in gcc-6.2.0/Makefile.in |
| *** gcc-6.2.0-fsf/Makefile.in 2016-11-23 09:11:07.960177729 -0800 |
| --- gcc-6.2.0/Makefile.in 2016-12-08 13:11:05.048744794 -0800 |
| *************** BASE_TARGET_EXPORTS = \ |
| *** 287,292 **** |
| --- 287,293 ---- |
| LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ |
| LIPO="$(LIPO_FOR_TARGET)"; export LIPO; \ |
| NM="$(COMPILER_NM_FOR_TARGET)"; export NM; \ |
| + NO_PIE_CFLAGS="$(NO_PIE_CFLAGS_FOR_TARGET)"; export NO_PIE_CFLAGS; \ |
| OBJDUMP="$(OBJDUMP_FOR_TARGET)"; export OBJDUMP; \ |
| OBJCOPY="$(OBJCOPY_FOR_TARGET)"; export OBJCOPY; \ |
| RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ |
| *************** EXTRA_TARGET_FLAGS = \ |
| *** 869,874 **** |
| --- 870,876 ---- |
| 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \ |
| 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \ |
| 'NM=$(COMPILER_NM_FOR_TARGET)' \ |
| + 'NO_PIE_CFLAGS=$(NO_PIE_CFLAGS_FOR_TARGET)' \ |
| 'OBJDUMP=$$(OBJDUMP_FOR_TARGET)' \ |
| 'OBJCOPY=$$(OBJCOPY_FOR_TARGET)' \ |
| 'RANLIB=$$(RANLIB_FOR_TARGET)' \ |