commit 79a117c82c59a07b041c1396a8270d2905b91d01
Author: Roland McGrath <mcgrathr@google.com>
Date:   Tue Aug 9 12:09:17 2016 -0700

    Support -pie for arm*-eabi targets.
    
    ld/
    	* emulparams/armelf.sh (GENERATE_PIE_SCRIPT): Set to yes.

diff --git a/ld/emulparams/armelf.sh b/ld/emulparams/armelf.sh
index 672b208..f581c68 100644
--- a/ld/emulparams/armelf.sh
+++ b/ld/emulparams/armelf.sh
@@ -21,6 +21,7 @@ OTHER_READONLY_SECTIONS="
 DATA_START_SYMBOLS='__data_start = . ;';
 
 GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
 
 ARCH=arm
 MACHINE=


commit 37bb4d970f17d7f33d0621f7b81b623456b1d183
Author: Roland McGrath <mcgrathr@google.com>
Date:   Fri Aug 12 09:50:49 2016 -0700

    [gold] Implement HIDDEN syntax in linker scripts
    
    gold/
    	* yyscript.y (HIDDEN): New %token.
    	(assignment): Handle HIDDEN(string = expr) syntax.
    	* script.cc (script_keyword_parsecodes): Add HIDDEN.
    
    (cherry picked from commit f300578f78f5ecddc9cfb28c02d032a0acffdf70)

diff --git a/gold/script.cc b/gold/script.cc
index d6aa7b2..bb8b437 100644
--- a/gold/script.cc
+++ b/gold/script.cc
@@ -1755,6 +1755,7 @@ script_keyword_parsecodes[] =
   { "FLOAT", FLOAT },
   { "FORCE_COMMON_ALLOCATION", FORCE_COMMON_ALLOCATION },
   { "GROUP", GROUP },
+  { "HIDDEN", HIDDEN },
   { "HLL", HLL },
   { "INCLUDE", INCLUDE },
   { "INFO", INFO },
diff --git a/gold/yyscript.y b/gold/yyscript.y
index 7e6bd27..38831d5 100644
--- a/gold/yyscript.y
+++ b/gold/yyscript.y
@@ -137,6 +137,7 @@
 %token FORCE_COMMON_ALLOCATION
 %token GLOBAL		/* global */
 %token GROUP
+%token HIDDEN
 %token HLL
 %token INCLUDE
 %token INHIBIT_COMMON_ALLOCATION
@@ -864,6 +865,8 @@ assignment:
 	      Expression_ptr e = script_exp_binary_bitwise_or(s, $3);
 	      script_set_symbol(closure, $1.value, $1.length, e, 0, 0);
 	    }
+	| HIDDEN '(' string '=' parse_exp ')'
+	    { script_set_symbol(closure, $3.value, $3.length, $5, 0, 1); }
 	| PROVIDE '(' string '=' parse_exp ')'
 	    { script_set_symbol(closure, $3.value, $3.length, $5, 1, 0); }
 	| PROVIDE_HIDDEN '(' string '=' parse_exp ')'

commit 9dfbd0e7d0765a35dce7423d79a975d7c5bad3ae
Author: Roland McGrath <mcgrathr@google.com>
Date:   Fri Aug 12 09:55:25 2016 -0700

    PR gold/20462: Fix bogus layout on ARM with linker script using PHDRS clause
    
    gold/
    	PR gold/20462
    	* script-sections.cc (Script_sections::release_segments):
    	Reset this->segments_created_.
    
    (cherry picked from commit 3785f51aa2454dba199db8aafa80019795d536ec)

diff --git a/gold/script-sections.cc b/gold/script-sections.cc
index 96c68de..bf25391 100644
--- a/gold/script-sections.cc
+++ b/gold/script-sections.cc
@@ -4459,6 +4459,7 @@ Script_sections::release_segments()
 	   ++p)
 	(*p)->release_segment();
     }
+  this->segments_created_ = false;
 }
 
 // Print the SECTIONS clause to F for debugging.
diff -rdcp --unidirectional-new-file binutils-2.27-fsf/bfd/config.bfd binutils-2.27/bfd/config.bfd
*** binutils-2.27-fsf/bfd/config.bfd	2016-11-23 08:59:58.370833363 -0800
--- binutils-2.27/bfd/config.bfd	2016-11-16 08:49:21.135106894 -0800
*************** case "${targ}" in
*** 192,197 ****
--- 192,202 ----
      targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
      want64=true
      ;;
+   aarch64-*-fuchsia*)
+     targ_defvec=aarch64_elf64_le_vec
+     targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
+     want64=true
+     ;;
    aarch64-*-cloudabi*)
      targ_defvec=aarch64_elf64_le_cloudabi_vec
      targ_selvecs=aarch64_elf64_be_cloudabi_vec
*************** case "${targ}" in
*** 286,291 ****
--- 291,300 ----
      targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec"
      targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
      ;;
+   arm-*-fuchsia*)
+     targ_defvec=arm_elf32_le_vec
+     targ_selvecs="arm_elf32_be_vec"
+     ;;
    arm-*-nacl*)
      targ_defvec=arm_elf32_nacl_le_vec
      targ_selvecs="arm_elf32_nacl_be_vec i386_elf32_nacl_vec"
*************** case "${targ}" in
*** 693,699 ****
      targ_selvecs="i386_elf32_vec iamcu_elf32_vec l1om_elf64_vec k1om_elf64_vec"
      want64=true
      ;;
!   x86_64-*-elf* | x86_64-*-rtems*)
      targ_defvec=x86_64_elf64_vec
      targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec l1om_elf64_vec k1om_elf64_vec"
      want64=true
--- 702,708 ----
      targ_selvecs="i386_elf32_vec iamcu_elf32_vec l1om_elf64_vec k1om_elf64_vec"
      want64=true
      ;;
!   x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia)
      targ_defvec=x86_64_elf64_vec
      targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec l1om_elf64_vec k1om_elf64_vec"
      want64=true
diff -dcp -r binutils-2.27/config.sub binutils-2.27-fuchsia/config.sub
*** binutils-2.27/config.sub	2016-08-03 00:36:51.000000000 -0700
--- binutils-2.27-fuchsia/config.sub	2016-10-24 17:41:14.128384816 -0700
*************** case $os in
*** 1399,1405 ****
  	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
  	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
  	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
! 	      | -onefs* | -tirtos* | -phoenix*)
  	# Remember, each alternative MUST END IN *, to match a version number.
  		;;
  	-qnx*)
--- 1399,1405 ----
  	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
  	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
  	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
! 	      | -onefs* | -tirtos* | -phoenix* | -fuchsia*)
  	# Remember, each alternative MUST END IN *, to match a version number.
  		;;
  	-qnx*)
diff -dcp -r binutils-2.27/configure binutils-2.27-fuchsia/configure
*** binutils-2.27/configure	2016-08-03 00:54:55.000000000 -0700
--- binutils-2.27-fuchsia/configure	2016-10-31 12:00:06.513896294 -0700
*************** case "${ENABLE_GOLD}" in
*** 2959,2965 ****
        *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
        | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
        | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
!       | *-*-solaris2* | *-*-nto* | *-*-nacl*)
          case "${target}" in
            *-*-linux*aout* | *-*-linux*oldld*)
              ;;
--- 2959,2965 ----
        *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
        | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
        | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
!       | *-*-solaris2* | *-*-nto* | *-*-nacl* | *-*-fuchsia*)
          case "${target}" in
            *-*-linux*aout* | *-*-linux*oldld*)
              ;;
diff -rdcp --unidirectional-new-file binutils-2.27-fsf/gas/configure.tgt binutils-2.27/gas/configure.tgt
*** binutils-2.27-fsf/gas/configure.tgt	2016-11-23 08:59:59.878827298 -0800
--- binutils-2.27/gas/configure.tgt	2016-11-16 08:49:21.135106894 -0800
*************** generic_target=${cpu_type}-$vendor-$os
*** 121,126 ****
--- 121,127 ----
  # Note: This table is alpha-sorted, please try to keep it that way.
  case ${generic_target} in
    aarch64*-*-elf | aarch64*-*-rtems*)	fmt=elf;;
+   aarch64*-*-fuchsia*)			fmt=elf;;
    aarch64*-*-linux*)			fmt=elf em=linux ;;
  
    alpha-*-*vms*)			fmt=evax ;;
*************** case ${generic_target} in
*** 159,164 ****
--- 160,166 ----
  					fmt=coff em=wince-pe ;;
    arm-*-pe)				fmt=coff em=pe ;;
    arm-*-riscix*)			fmt=aout em=riscix ;;
+   arm-*-fuchsia*)			fmt=elf ;;
  
    avr-*-*)				fmt=elf bfd_gas=yes ;;
  
*************** case ${generic_target} in
*** 219,224 ****
--- 221,227 ----
    i386-*-coff)				fmt=coff ;;
    i386-*-elfiamcu)			fmt=elf arch=iamcu ;;
    i386-*-elf*)				fmt=elf ;;
+   i386-*-fuchsia*)			fmt=elf ;;
    i386-*-kaos*)				fmt=elf ;;
    i386-*-bsd*)				fmt=aout em=386bsd ;;
    i386-*-nacl*)				fmt=elf em=nacl
diff -rdcp --unidirectional-new-file binutils-2.27-fsf/gold/fileread.cc binutils-2.27/gold/fileread.cc
*** binutils-2.27-fsf/gold/fileread.cc	2016-11-23 09:00:03.026814640 -0800
--- binutils-2.27/gold/fileread.cc	2016-12-02 11:05:29.758465966 -0800
*************** File_read::find_view(off_t start, sectio
*** 372,377 ****
--- 372,391 ----
    return NULL;
  }
  
+ #ifdef __Fuchsia__
+ /* Fuchsia provides an unimplemented pread, which is sufficient to convince
+    configure into linking against it.  */
+ extern "C" {
+ static ssize_t
+ fuchsia_pread (int fd, void *buf, size_t count, off_t offset)
+ {
+   if (lseek(fd, offset, SEEK_SET) != offset)
+     return -1;
+   return read(fd, buf, count);
+ }
+ }
+ #endif
+ 
  // Read SIZE bytes from the file starting at offset START.  Read into
  // the buffer at P.
  
*************** File_read::do_read(off_t start, section_
*** 397,403 ****
--- 411,421 ----
        size_t to_read = size;
        do
  	{
+ #ifdef __Fuchsia__
+ 	  bytes = fuchsia_pread(this->descriptor_, read_ptr, to_read, read_pos);
+ #else
  	  bytes = ::pread(this->descriptor_, read_ptr, to_read, read_pos);
+ #endif
  	  if (bytes < 0)
  	    gold_fatal(_("%s: pread failed: %s"),
  		       this->filename().c_str(), strerror(errno));
diff -rdcp --unidirectional-new-file binutils-2.27-fsf/gold/output.cc binutils-2.27/gold/output.cc
*** binutils-2.27-fsf/gold/output.cc	2016-11-23 09:00:03.242813772 -0800
--- binutils-2.27/gold/output.cc	2016-12-09 17:11:18.558286565 -0800
*************** namespace gold
*** 127,136 ****
  static int
  gold_fallocate(int o, off_t offset, off_t len)
  {
! #ifdef HAVE_POSIX_FALLOCATE
    if (parameters->options().posix_fallocate())
      return ::posix_fallocate(o, offset, len);
! #endif // defined(HAVE_POSIX_FALLOCATE)
  #ifdef HAVE_FALLOCATE
    if (::fallocate(o, 0, offset, len) == 0)
      return 0;
--- 127,136 ----
  static int
  gold_fallocate(int o, off_t offset, off_t len)
  {
! #if defined(HAVE_POSIX_FALLOCATE) && !defined(__Fuchsia__)
    if (parameters->options().posix_fallocate())
      return ::posix_fallocate(o, offset, len);
! #endif // defined(HAVE_POSIX_FALLOCATE) && !defined(__Fuchsia__)
  #ifdef HAVE_FALLOCATE
    if (::fallocate(o, 0, offset, len) == 0)
      return 0;
diff -rdcp --unidirectional-new-file binutils-2.27-fsf/ld/configure.tgt binutils-2.27/ld/configure.tgt
*** binutils-2.27-fsf/ld/configure.tgt	2016-11-23 08:59:55.706844075 -0800
--- binutils-2.27/ld/configure.tgt	2016-11-21 16:45:35.047787524 -0800
*************** aarch64-*-cloudabi*)	targ_emul=aarch64cl
*** 54,59 ****
--- 54,61 ----
  			targ_extra_emuls=aarch64cloudabib ;;
  aarch64-*-freebsd*)	targ_emul=aarch64fbsd
  			targ_extra_emuls="aarch64fbsdb aarch64elf" ;;
+ aarch64-*-fuchsia*)	targ_emul=aarch64elf
+ 			targ_extra_emuls="aarch64elfb armelf armelfb" ;;
  aarch64_be-*-linux*)	targ_emul=aarch64linuxb
  			targ_extra_libpath="aarch64linux aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
  			targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath" ;;
*************** arm*-*-uclinux*)	targ_emul=armelf_linux
*** 150,155 ****
--- 152,160 ----
  			;;
  arm-*-vxworks)		targ_emul=armelf_vxworks ;;
  arm*-*-conix*)		targ_emul=armelf ;;
+ arm*-*-fuchsia*)	targ_emul=armelf_fuchsia
+ 			targ_extra_emuls="armelfb_fuchsia armelf armelfb"
+ 			;;
  avr-*-*)		targ_emul=avr2
  			targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny"
  			;;
*************** i[3-7]86-*-elfiamcu)	targ_emul=elf_iamcu
*** 316,322 ****
  			targ_extra_emuls=elf_i386 ;;
  i[3-7]86-*-elf*)	targ_emul=elf_i386
  			targ_extra_emuls=elf_iamcu ;;
! x86_64-*-elf* | x86_64-*-rtems*)
  			targ_emul=elf_x86_64
  			targ_extra_emuls="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
  			targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
--- 321,327 ----
  			targ_extra_emuls=elf_i386 ;;
  i[3-7]86-*-elf*)	targ_emul=elf_i386
  			targ_extra_emuls=elf_iamcu ;;
! x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia*)
  			targ_emul=elf_x86_64
  			targ_extra_emuls="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
  			targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
diff -rdcp --unidirectional-new-file binutils-2.27-fsf/ld/emulparams/armelfb_fuchsia.sh binutils-2.27/ld/emulparams/armelfb_fuchsia.sh
*** binutils-2.27-fsf/ld/emulparams/armelfb_fuchsia.sh	1969-12-31 16:00:00.000000000 -0800
--- binutils-2.27/ld/emulparams/armelfb_fuchsia.sh	2016-11-21 16:45:22.135841864 -0800
***************
*** 0 ****
--- 1,2 ----
+ . ${srcdir}/emulparams/armelf_fuchsia.sh
+ OUTPUT_FORMAT="$BIG_OUTPUT_FORMAT"
diff -rdcp --unidirectional-new-file binutils-2.27-fsf/ld/emulparams/armelf_fuchsia.sh binutils-2.27/ld/emulparams/armelf_fuchsia.sh
*** binutils-2.27-fsf/ld/emulparams/armelf_fuchsia.sh	1969-12-31 16:00:00.000000000 -0800
--- binutils-2.27/ld/emulparams/armelf_fuchsia.sh	2016-11-21 17:26:46.729182447 -0800
***************
*** 0 ****
--- 1,32 ----
+ ARCH=arm
+ SCRIPT_NAME=elf
+ OUTPUT_FORMAT="elf32-littlearm"
+ BIG_OUTPUT_FORMAT="elf32-bigarm"
+ LITTLE_OUTPUT_FORMAT="elf32-littlearm"
+ MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+ COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
+ TEMPLATE_NAME=elf32
+ EXTRA_EM_FILE=armelf
+ GENERATE_SHLIB_SCRIPT=yes
+ GENERATE_PIE_SCRIPT=yes
+ 
+ DATA_START_SYMBOLS='PROVIDE (__data_start = .);';
+ OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)'
+ OTHER_BSS_SYMBOLS='__bss_start__ = .;'
+ OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ;'
+ OTHER_END_SYMBOLS='__end__ = . ;'
+ OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
+ 
+ TEXT_START_ADDR=0x00001000
+ TARGET2_TYPE=got-rel
+ 
+ # ARM does not support .s* sections.
+ NO_SMALL_DATA=yes
+ 
+ # Use the ARM ABI-compliant exception-handling sections.
+ OTHER_READONLY_SECTIONS="
+   .ARM.extab ${RELOCATING-0} : { *(.ARM.extab${RELOCATING+* .gnu.linkonce.armextab.*}) }
+   ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); }
+   .ARM.exidx ${RELOCATING-0} : { *(.ARM.exidx${RELOCATING+* .gnu.linkonce.armexidx.*}) }
+   ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }"
+ 
diff -rdcp --unidirectional-new-file binutils-2.27-fsf/ld/Makefile.am binutils-2.27/ld/Makefile.am
*** binutils-2.27-fsf/ld/Makefile.am	2016-11-23 08:59:58.042834681 -0800
--- binutils-2.27/ld/Makefile.am	2016-11-21 17:16:33.371837561 -0800
*************** ALL_EMULATION_SOURCES = \
*** 175,180 ****
--- 175,181 ----
  	earmcoff.c \
  	earmelf.c \
  	earmelf_fbsd.c \
+ 	earmelf_fuchsia.c \
  	earmelf_linux.c \
  	earmelf_linux_eabi.c \
  	earmelf_nacl.c \
*************** ALL_EMULATION_SOURCES = \
*** 183,188 ****
--- 184,190 ----
  	earmelf_vxworks.c \
  	earmelfb.c \
  	earmelfb_fbsd.c \
+ 	earmelfb_fuchsia.c \
  	earmelfb_linux.c \
  	earmelfb_linux_eabi.c \
  	earmelfb_nacl.c \
*************** earmelf_fbsd.c: $(srcdir)/emulparams/arm
*** 757,762 ****
--- 759,768 ----
    $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
    $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
  
+ earmelf_fuchsia.c: $(srcdir)/emulparams/armelf_fuchsia.sh \
+   $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ 
  earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \
    $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
    $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
*************** earmelfb_fbsd.c: $(srcdir)/emulparams/ar
*** 797,802 ****
--- 803,812 ----
    $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
    $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
  
+ earmelf_fuchsia.c: $(srcdir)/emulparams/armelfb_fuchsia.sh \
+   $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ 
  earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \
    $(srcdir)/emulparams/armelf_linux.sh \
    $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
diff -rdcp --unidirectional-new-file binutils-2.27-fsf/ld/Makefile.in binutils-2.27/ld/Makefile.in
*** binutils-2.27-fsf/ld/Makefile.in	2016-11-23 08:59:58.082834520 -0800
--- binutils-2.27/ld/Makefile.in	2016-11-21 17:16:38.471815461 -0800
*************** ALL_EMULATION_SOURCES = \
*** 543,548 ****
--- 543,549 ----
  	earmcoff.c \
  	earmelf.c \
  	earmelf_fbsd.c \
+ 	earmelf_fuchsia.c \
  	earmelf_linux.c \
  	earmelf_linux_eabi.c \
  	earmelf_nacl.c \
*************** ALL_EMULATION_SOURCES = \
*** 551,556 ****
--- 552,558 ----
  	earmelf_vxworks.c \
  	earmelfb.c \
  	earmelfb_fbsd.c \
+ 	earmelfb_fuchsia.c \
  	earmelfb_linux.c \
  	earmelfb_linux_eabi.c \
  	earmelfb_nacl.c \
*************** distclean-compile:
*** 1180,1185 ****
--- 1182,1188 ----
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmcoff.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fbsd.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fuchsia.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_linux.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_linux_eabi.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_nacl.Po@am__quote@
*************** distclean-compile:
*** 1188,1193 ****
--- 1191,1197 ----
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_vxworks.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_fbsd.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_fuchsia.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux_eabi.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nacl.Po@am__quote@
*************** earmelf_fbsd.c: $(srcdir)/emulparams/arm
*** 2345,2350 ****
--- 2349,2358 ----
    $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
    $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
  
+ earmelf_fuchsia.c: $(srcdir)/emulparams/armelf_fuchsia.sh \
+   $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ 
  earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \
    $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
    $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
*************** earmelfb_fbsd.c: $(srcdir)/emulparams/ar
*** 2385,2390 ****
--- 2393,2402 ----
    $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
    $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
  
+ earmelf_fuchsia.c: $(srcdir)/emulparams/armelfb_fuchsia.sh \
+   $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ 
  earmelfb_linux.c: $(srcdir)/emulparams/armelfb_linux.sh \
    $(srcdir)/emulparams/armelf_linux.sh \
    $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
diff -rdcp --unidirectional-new-file binutils-2.27-fsf/Makefile.in binutils-2.27/Makefile.in
*** binutils-2.27-fsf/Makefile.in	2016-11-23 09:00:02.962814897 -0800
--- binutils-2.27/Makefile.in	2016-11-17 14:27:46.861334193 -0800
*************** HOST_EXPORTS = \
*** 190,195 ****
--- 190,196 ----
  	ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \
  	CFLAGS="$(CFLAGS)"; export CFLAGS; \
  	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+ 	CPPFLAGS="$(CPPFLAGS)"; export CPPFLAGS; \
  	CXX="$(CXX)"; export CXX; \
  	CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
  	GCJ="$(GCJ)"; export GCJ; \
*************** GNATBIND = @GNATBIND@
*** 410,415 ****
--- 411,417 ----
  GNATMAKE = @GNATMAKE@
  
  CFLAGS = @CFLAGS@
+ CPPFLAGS = @CPPFLAGS@
  LDFLAGS = @LDFLAGS@
  LIBCFLAGS = $(CFLAGS)
  CXXFLAGS = @CXXFLAGS@
