[Bug ld/19480] [2.26.51 regression] ld creates wrong output for libstdc++6.dll for mingw32 (32-bit)
https://sourceware.org/bugzilla/show_bug.cgi?id=19480 Daniel Starke changed: What|Removed |Added Target||x86_64-w64-mingw32 Host||x86_64-linux-gnu -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug ld/19480] New: [2.26.51 regression] ld creates wrong output for libstdc++6.dll for mingw32 (32-bit)
https://sourceware.org/bugzilla/show_bug.cgi?id=19480 Bug ID: 19480 Summary: [2.26.51 regression] ld creates wrong output for libstdc++6.dll for mingw32 (32-bit) Product: binutils Version: 2.26 Status: NEW Severity: normal Priority: P2 Component: ld Assignee: unassigned at sourceware dot org Reporter: daniel.f.starke at freenet dot de Target Milestone: --- Compiling a Linux -> mingw32-w64 cross-compiler works fine with binutils 2.25.1 but results in a libstdc++6.dll which is less than half the size without debug symbols and crashes on DLL entry point. This problem only occurs for 32-bit target, not for 64-bit target. Compiled GCC 5.3.0 as ../../src/gcc-5.3.0/configure --enable-languages=c,c++ --enable-seh-exceptions --enable-threads=posix --disable-nls --enable-shared=libstdc++ --enable-static --enable-fully-dynamic-string --enable-lto --enable-plugin --enable-libgomp --with-dwarf2 --disable-win32-registry --enable-version-specific-runtime-libs --prefix=/mingw --with-sysroot=/mingw --target=x86_64-w64-mingw32 --enable-targets=all --enable-checking=release --with-gmp=/new-gcc/lib/gmp-5.0.5 --with-mpfr=/new-gcc/lib/mpfr-2.4.2 --with-mpc=/new-gcc/lib/mpc-0.9 --with-isl=/new-gcc/lib/isl-0.12.2 --with-cloog=/new-gcc/lib/cloog-0.18.3 --with-host-libstdcxx='-lstdc++ -lsupc++' --disable-cloog-version-check --enable-cloog-backend=isl on Linux (Xubuntu 14.04.3 LTS). All system libraries where compiled with -O3 -mtune=core2 -march=core2 -mstackrealign -fomit-frame-pointer -Wno-maybe-uninitialized -flto -flto-partition=none -fno-builtin-stpcpy Binutils was in both cases (version 2.25.1 and 2.26.51) configured as configure --enable-lto --enable-plugin --disable-nls --target=x86_64-w64-mingw32 --enable-targets=x86_64-w64-mingw32,i686-w64-mingw32 --with-sysroot=$PREFIX --prefix=$PREFIX "--with-gmp=/new-gcc/lib/gmp-5.0.5" "--with-mpfr=/new-gcc/lib/${MPFR}" "--with-mpc=/new-gcc/lib/mpc-0.9" "--with-isl=/new-gcc/lib/isl-0.12.2" "--with-cloog=/new-gcc/lib/cloog-0.18.3" "--with-host-libstdcxx=-lstdc++ -lsupc++" --disable-cloog-version-check --enable-cloog-backend=isl I first reported this as GCC bug until I found out that it was a binutils regression by using an older version of binutils. See related GCC bug report https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69284 -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gas/19481] New: Binutils build failure when flex is missing
https://sourceware.org/bugzilla/show_bug.cgi?id=19481 Bug ID: 19481 Summary: Binutils build failure when flex is missing Product: binutils Version: 2.26 Status: NEW Severity: normal Priority: P2 Component: gas Assignee: unassigned at sourceware dot org Reporter: john.levin at tutanota dot com Target Milestone: --- The binutils 2.26 branch fails to build unless flex (or lex) is installed on the build system. make fails with the following error when configuring gas: checking lex output file root... configure: error: cannot find output from /test/binutils-gdb/missing flex; giving up Steps to reproduce: 1) Get a copy of the source with correct timestamps on generated files. I did not find any tar snapshot or script (like gcc's contrib/gcc_update) so I did a build with all necessary maintainer tools (bison, flex, ...) installed to fix the timestamps. 2) Remove flex and lex from the build system so that configure won't find them 3) Configure and build gas in a new/empty build directory (so that build files from step 1 won't affect the result): ../binutils-gdb/configure --prefix=/opt/binutils-test make all-gas Actual results: make fails with the following error while configuring gas: checking lex output file root... configure: error: cannot find output from /test/binutils-gdb/missing flex; giving up Expected results: make should not check for lex output file root when flex/lex is missing, or at least ignore failure. I tested on binutils-2_26-branch (commit 412d26bde8585eca3ec6b8bed70197205288cbdf), but the problem most likely exists on master too. The problem is caused by the new "lightweight" missing script introduced by commit e30465112ed4c6320dd19107302057a5f7712cf2 (2014-11-16; Update from upstream Automake). Here is the sequence that leads to the failure: 1) The top-level configure finds neither flex nor lex: checking for flex... no checking for lex... no 2) The top-level configure sets LEX in the top-level Makefile to the missing script: LEX = /test/binutils-gdb/missing flex 3) When gas/configure is run by the top-level Makefile, LEX has the value set above 4) gas/configure uses AM_PROG_LEX to detect flex/lex 5) AM_PROG_LEX uses AC_PROG_LEX 6) AC_PROG_LEX sees that LEX is set and assumes it is a valid flex/lex provided by the user: checking for flex... /test/binutils-gdb/missing flex 7) AC_PROG_LEX runs the program specified by LEX to detect the name of the output file 8) The new "lightweight" missing script does not produce any output files so the detection fails: checking lex output file root... configure: error: cannot find output from /test/binutils-gdb/missing flex; giving up Please note that this also affects binutils/configure.ac and ld/configure.ac because they too use AM_PROG_LEX. The old missing script used in binutils 2.25.1 and earlier produced faked output for the missing programs, which is why it worked before. Here is what gas/configure outputs for 2.25.1: checking for flex... /test/binutils-2.25.1/missing flex checking lex output file root... lex.yy I can create a patch, but I have no idea what is the most appropriate way of fixing this. I would like to hear your opinions. Here are some suggestions I came up with (not prioritized), other ideas are of course welcome too: - Document flex/lex as a pre-requisite for building binutils, even for "non-maintainers" - Change top-level configure to not set LEX if flex/lex is not found (might upset modules that use LEX without checking) - In top-level Makefile, add "LEX=" as argument when calling configure of modules that use AM_PROG_LEX. Should be done only when flex/lex is actually missing, otherwise an in-tree flex will probably never be used (this is inspired by a similar fix in gcc, see below; I tested it by manually changing the generated top-level Makefile and it appears to work) - Change affected configure.ac to unset LEX if it is set to the missing script (not sure how to detect that reliably, though) - Change AM_PROG_LEX or AC_PROG_LEX to ignore LEX if it is set to a missing script (this would be a change in autoconf/automake instead of in binutils, I suppose) gcc apparently had the same issue with in-tree builds of gmp after updating to the "lightweight" missing script, and it was solved (in r218025) by explicitly passing LEX="touch lex.yy.c" to gmp/configure to override the missing script. That solution of course means that an in-tree gmp will not use flex even if it is available, but I guess not many people edit ".l" files in gmp before building gcc. For the same reason, building a recent gcc (like 5.3.0) with in-tree binutils 2.25.1 or earlier fails because it will use the "lightweight" missing script from gcc instead of the older one in binutils. -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binuti
[Bug gold/18865] ICF --keep-unique doesn't work correctly
https://sourceware.org/bugzilla/show_bug.cgi?id=18865 NGG changed: What|Removed |Added CC||ngg at tresorit dot com -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/17704] icf doesn't respect section alignment
https://sourceware.org/bugzilla/show_bug.cgi?id=17704 NGG changed: What|Removed |Added CC||ngg at tresorit dot com -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/17704] icf doesn't respect section alignment
https://sourceware.org/bugzilla/show_bug.cgi?id=17704 --- Comment #2 from NGG --- Created attachment 8906 --> https://sourceware.org/bugzilla/attachment.cgi?id=8906&action=edit Patch for icf section alignment bug I think this patch solves this bug, the provided examples work and gn works too in the chromium repo which had the same issue. -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gas/19481] Binutils build failure when flex is missing
https://sourceware.org/bugzilla/show_bug.cgi?id=19481 Alan Modra changed: What|Removed |Added CC||amodra at gmail dot com --- Comment #1 from Alan Modra --- Created attachment 8909 --> https://sourceware.org/bugzilla/attachment.cgi?id=8909&action=edit proposed fix I think we need to override AC_PROG_LEX, which I believe can be done without modifying autoconf. -- You are receiving this mail because: You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils