blob: 64fa5d9eb2339c25308aa7b6f77a5e1e86062223 [file] [log] [blame]
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/cache.c binutils-2.27/bfd/cache.c
*** binutils-2.27-fsf/bfd/cache.c 2017-02-21 15:59:58.416850264 -0800
--- binutils-2.27/bfd/cache.c 2017-02-21 15:53:16.650326182 -0800
*************** bfd_cache_max_open (void)
*** 93,99 ****
this limitation. */
max = 16;
#else
! #ifdef HAVE_GETRLIMIT
struct rlimit rlim;
if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
--- 93,100 ----
this limitation. */
max = 16;
#else
! /* Fuchsia: Remove when getrlimit() has been implemented. */
! #if !defined(__Fuchsia__) && defined(HAVE_GETRLIMIT)
struct rlimit rlim;
if (getrlimit (RLIMIT_NOFILE, &rlim) == 0
*************** bfd_cache_max_open (void)
*** 101,107 ****
max = rlim.rlim_cur / 8;
else
#endif
! #ifdef _SC_OPEN_MAX
max = sysconf (_SC_OPEN_MAX) / 8;
#else
max = 10;
--- 102,110 ----
max = rlim.rlim_cur / 8;
else
#endif
! /* Fuchsia: Remove when sysconf(_SC_OPEN_MAX) has been implemented
! (it currently relies on unimplemented getrlimit()). */
! #if !defined(__Fuchsia__) && defined(_SC_OPEN_MAX)
max = sysconf (_SC_OPEN_MAX) / 8;
#else
max = 10;
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/libiberty/getruntime.c binutils-2.27/libiberty/getruntime.c
*** binutils-2.27-fsf/libiberty/getruntime.c 2017-02-21 14:59:51.026603203 -0800
--- binutils-2.27/libiberty/getruntime.c 2017-02-21 14:53:58.899960741 -0800
*************** process started.
*** 96,102 ****
long
get_run_time (void)
{
! #if defined (HAVE_GETRUSAGE) && defined (HAVE_SYS_RESOURCE_H)
struct rusage rusage;
getrusage (RUSAGE_SELF, &rusage);
--- 96,104 ----
long
get_run_time (void)
{
! /* Fuchsia: Remove when getrusage() has been implemented. */
! #if !defined(__Fuchsia__) && \
! defined (HAVE_GETRUSAGE) && defined (HAVE_SYS_RESOURCE_H)
struct rusage rusage;
getrusage (RUSAGE_SELF, &rusage);
diff -rdcp --unidirectional-new-file binutils-2.27-fsf/libiberty/pex-unix.c binutils-2.27/libiberty/pex-unix.c
*** binutils-2.27-fsf/libiberty/pex-unix.c 2017-02-21 14:59:51.082602987 -0800
--- binutils-2.27/libiberty/pex-unix.c 2017-02-21 14:33:47.408601885 -0800
*************** Boston, MA 02110-1301, USA. */
*** 28,33 ****
--- 28,39 ----
#include <stdio.h>
#include <signal.h>
#include <errno.h>
+
+ /* Fuchsia: remove when getrusage() has been implemented. */
+ #ifdef __Fuchsia__
+ #undef HAVE_GETRUSAGE
+ #endif
+
#ifdef NEED_DECLARATION_ERRNO
extern int errno;
#endif
diff -rdcp --unidirectional-new-file binutils-2.27-fsf/libiberty/stack-limit.c binutils-2.27/libiberty/stack-limit.c
*** binutils-2.27-fsf/libiberty/stack-limit.c 2017-02-21 14:59:51.046603126 -0800
--- binutils-2.27/libiberty/stack-limit.c 2017-02-21 14:52:31.212300050 -0800
*************** Attempt to increase stack size limit to
*** 46,52 ****
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
--- 46,54 ----
void
stack_limit_increase (unsigned long pref ATTRIBUTE_UNUSED)
{
! /* Fuchsia: remove when getrlimit() has been implemented. */
! #if !defined(__Fuchsia__) && \
! defined(HAVE_SETRLIMIT) && defined(HAVE_GETRLIMIT) \
&& defined(RLIMIT_STACK) && defined(RLIM_INFINITY)
struct rlimit rlim;
if (getrlimit (RLIMIT_STACK, &rlim) == 0
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@