diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2021-01-12 05:45:28 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2021-01-12 05:45:44 -0800 |
commit | d546b61084cec687e0063b2e0e169b4690341c23 (patch) | |
tree | 389d7dbe570f63dfe1e463499b13a9b3728f2472 /config | |
parent | 18bfb5057f2cee5079208cd70eb463892f5ff154 (diff) | |
download | binutils-gdb-d546b61084cec687e0063b2e0e169b4690341c23.tar.gz |
Implement a workaround for GNU mak jobserver
Compiling binutils using -flto=jobserver with GCC 11 leads to
libtool: link: gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wstack-usage=262144 -Wwrite-strings -I../../gas/../zlib -g -O2 -fprofile-generate -flto=jobserver -o as-new app.o as.o atof-generic.o compress-debug.o cond.o depend.o dwarf2dbg.o dw2gencfi.o ecoff.o ehopt.o expr.o flonum-copy.o flonum-konst.o flonum-mult.o frags.o hash.o input-file.o input-scrub.o listing.o literal.o macro.o messages.o output-file.o read.o remap.o sb.o stabs.o subsegs.o symbols.o write.o config/tc-i386.o config/obj-elf.o config/atof-ieee.o ../opcodes/.libs/libopcodes.a ../bfd/.libs/libbfd.a -L/tmp/binutils-gdb/objdir/zlib -lz ../libiberty/libiberty.a -ldl
lto-wrapper: warning: jobserver is not available: '--jobserver-auth=' is not present in 'MAKEFLAGS'
since the '+' is missing on the recipe line in Makefiles generated by
automake. Add the '+' to the recipe line by hand.
bfd/
PR binutils/26792
* configure.ac: Use GNU_MAKE_JOBSERVER.
* aclocal.m4: Regenerated.
* configure: Likewise.
binutils/
PR binutils/26792
* configure.ac: Use GNU_MAKE_JOBSERVER.
* aclocal.m4: Regenerated.
* configure: Likewise.
config/
PR binutils/26792
* jobserver.m4: New file.
gas/
PR binutils/26792
* configure.ac: Use GNU_MAKE_JOBSERVER.
* aclocal.m4: Regenerated.
* configure: Likewise.
gprof/
PR binutils/26792
* configure.ac: Use GNU_MAKE_JOBSERVER.
* aclocal.m4: Regenerated.
* configure: Likewise.
ld/
PR binutils/26792
* configure.ac: Use GNU_MAKE_JOBSERVER.
* aclocal.m4: Regenerated.
* configure: Likewise.
libctf/
PR binutils/26792
* configure.ac: Use GNU_MAKE_JOBSERVER.
* aclocal.m4: Regenerated.
* configure: Likewise.
opcodes/
PR binutils/26792
* configure.ac: Use GNU_MAKE_JOBSERVER.
* aclocal.m4: Regenerated.
* configure: Likewise.
Diffstat (limited to 'config')
-rw-r--r-- | config/ChangeLog | 5 | ||||
-rw-r--r-- | config/jobserver.m4 | 24 |
2 files changed, 29 insertions, 0 deletions
diff --git a/config/ChangeLog b/config/ChangeLog index a0c12340561..847fc0656ff 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,8 @@ +2021-01-12 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/26792 + * jobserver.m4: New file. + 2021-01-11 H.J. Lu <hongjiu.lu@intel.com> PR ld/27173 diff --git a/config/jobserver.m4 b/config/jobserver.m4 new file mode 100644 index 00000000000..dc566b1a1d9 --- /dev/null +++ b/config/jobserver.m4 @@ -0,0 +1,24 @@ +dnl GNU_MAKE_JOBSERVER +dnl +dnl Implement a workaround for GNU mak jobserver by adding the '+' to the +dnl recipe line in Makefiles generated by automake. +dnl +AC_DEFUN([GNU_MAKE_JOBSERVER],[dnl +m4_pattern_allow(AM_V_CCLD) +touch config.status.tmp +dnl Must keep the same timestamps on config.status and Makefile. +if touch --reference=config.status config.status.tmp > /dev/null 2>&1; then + sed '/as_fn_exit 0/i \ +sed -e \"s/^\t\\\(\\\$(AM_V_CCLD)\\\)/\t+ \\\1/\" Makefile > Makefile.tmp \ +touch --reference=Makefile Makefile.tmp \ +mv Makefile.tmp Makefile \ +' config.status > config.status.tmp + touch --reference=config.status config.status.tmp + mv config.status.tmp config.status + chmod +x config.status + sed -e "s/^\t\(\$(AM_V_CCLD)\)/\t+ \1/" Makefile > Makefile.tmp + touch --reference=Makefile Makefile.tmp + mv Makefile.tmp Makefile +else + rm -f config.status.tmp +fi]) |