binutils 2.19.92 linker broke with --as-needed flag

Vincent Wen wenvincent90@gmail.com
Thu Apr 4 18:40:00 GMT 2013


Alan,

I tried the following command and it finished with error. So I didn't
go further with "make" or "make check":

CC="gcc -m64" CXX="g++ -m64" ./configure

I checked the config.log and locate possible problem info, thanks.


configure:4043: $? = 0
configure:4032: gcc -m64 -v >&5
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.6/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--disable-checking --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-java-awt=gtk
--host=i386-redhat-linux
Thread model: posix
gcc version 3.4.6 20060404 (Red Hat 3.4.6-3)
configure:4043: $? = 0
configure:4032: gcc -m64 -V >&5
gcc: `-V' must come at the start of the command line
configure:4043: $? = 1
configure:4032: gcc -m64 -qversion >&5
gcc: unrecognized option `-qversion'
gcc: no input files
configure:4043: $? = 1
configure:4063: checking for C compiler default output file name
configure:4085: gcc -m64    conftest.c  >&5
conftest.c:1: sorry, unimplemented: 64-bit mode not compiled in
configure:4089: $? = 1
configure:4126: result:
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
|
| int
| main ()
| {
|
|   ;
|   return 0;
| }
configure:4132: error: in
`/projects/bseswev_nonos/vwen/support/swlinux-2378/dejagnu/pc/binutils-2.23.2':
configure:4136: error: C compiler cannot create executables

On Tue, Apr 2, 2013 at 7:20 PM, Alan Modra <amodra@gmail.com> wrote:
> On Tue, Apr 02, 2013 at 06:51:06PM -0700, Vincent Wen wrote:
>> Relocatable linking with relocations from format elf32-i386 (ldgram.o)
>> to format elf64-x86-64 (tmpdir/ld-partial.o) is not supported
>
> Your compiler is defaulting to i386 code (-m32) rather than x86_64
> code (-m64).  It might be because you built your own gcc wrongly (or
> your distro did), or you have CFLAGS/CXXFLAGS or CC/CXX set in your
> environment, or "gcc" is a script that provides -m32 before calling
> the real gcc, or perhaps some other reason.  Whatever it is, that
> needs fixing, or perhaps may be worked around by configuring binutils
> with something like
>
> CC="gcc -m64" CXX="g++ -m64" configure
>
> --
> Alan Modra
> Australia Development Lab, IBM



More information about the Binutils mailing list