This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: ncurses link problem...
- From: Peter Bergner <bergner at brule dot borg dot umn dot edu>
- To: Alan Modra <amodra at bigpond dot net dot au>
- Cc: binutils at sources dot redhat dot com, Olaf Hering <olh at suse dot de>, Steve Munroe <sjmunroe at us dot ibm dot com>
- Date: Thu, 27 Jun 2002 15:54:06 -0500
- Subject: Re: ncurses link problem...
- References: <3D19FB9C.9040505@vnet.ibm.com> <20020627111848.GD22093@bubble.sa.bigpond.net.au>
Alan Modra wrote:
: Uh oh, elfcode.h:elf_object_p calls bfd_default_set_arch_mach, which
: merrily decides the input file arch_info is the 64 bit one. We test
: arch_info later to see whether the file is compatible... The same
: thing can happen with a powerpc-linux linker if 64 bit objects are
: accidentally loaded. Fortunately, there's an easy way to tweak the
: arch_info via elf_backend_object_p.
:
: * cpu-powerpc.c: Comment on ordering of arch_info.
: * elf32-ppc.c (ppc_elf_object_p): New function.
: (elf_backend_object_p): Define.
: * elf64-ppc.c (ppc64_elf_object_p): New function.
: (elf_backend_object_p): Define.
:
: Committing.
Ugh! It seems this is only a partial fix:
Note: 64-bit libncurses.so lives in /opt/ppc64-20020627/extras/lib64
and /opt/ppc64-20020627/extras/lib64 is in ld.so.conf.
We're also using Alan's "NATIVE_CROSS" patch:
http://sources.redhat.com/ml/binutils/2002-06/msg00661.html
brule% /opt/ppc64-20020627/powerpc64-linux/bin/gcc rain.c -lncurses
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/bin/ld: skipping incompatible /usr/lib/libncurses.so when searching for -lncurses
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/bin/ld: skipping incompatible /usr/lib/libncurses.a when searching for -lncurses
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
brule%
brule% LD_LIBRARY_PATH=/opt/ppc64-20020627/extras/lib64 /opt/ppc64-20020627/powerpc64-linux/bin/gcc rain.c -lncurses
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/bin/ld: skipping incompatible /usr/lib/libncurses.so when searching for -lncurses
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/bin/ld: skipping incompatible /usr/lib/libncurses.a when searching for -lncurses
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
brule%
brule% /opt/ppc64-20020627/powerpc64-linux/bin/gcc -L/opt/ppc64-20020627/extras/lib64 rain.c -lncurses
brule%
Full gcc -v output for first failure is below...
Peter
brule% /opt/ppc64-20020627/powerpc64-linux/bin/gcc -v rain.c -lncurses
Reading specs from /opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/specs
Configured with: /home/toolchain/gcc-3.1/gcc-20020627/configure --build=powerpc-linux --host=powerpc-linux --target=powerpc64-linux --enable-languages=c,c++ --disable-nls --prefix=/opt/ppc64-20020627
Thread model: single
gcc version 3.1.1 20020627 (prerelease)
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/cc1 -lang-c -v -iprefix /opt/ppc64-20020627/powerpc64-linux/bin/../lib/gcc-lib/powerpc64-linux/3.1.1/ -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=1 -D__PPC__ -D__PPC64__ -D__powerpc__ -D__powerpc64__ -D__ELF__ -D__LONG_MAX__=9223372036854775807L -D__PPC__ -D__PPC64__ -D__powerpc__ -D__powerpc64__ -D__ELF__ -D__LONG_MAX__=9223372036854775807L -Acpu=powerpc64 -Amachine=powerpc64 -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D__PIC__ -D__pic__ -D_CALL_SYSV -D_BIG_ENDIAN -D__BIG_ENDIAN__ -Amachine=bigendian -D_ARCH_PPC64 -D__unix__ -D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=unix -Asystem=posix rain.c -quiet -dumpbase rain.c -version -o /tmp/ccbLUF9e.s
GNU CPP version 3.1.1 20020627 (prerelease) (cpplib) (PowerPC64 GNU/Linux)
GNU C version 3.1.1 20020627 (prerelease) (powerpc64-linux)
compiled by GNU C version 2.95.3 20010319 (2.95.4 CVS + prerelease/franzo/20010912).
ignoring nonexistent directory "/opt/ppc64-20020627/powerpc64-linux/lib/gcc-lib/powerpc64-linux/3.1.1/include"
ignoring nonexistent directory "/opt/ppc64-20020627/powerpc64-linux/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/sys-include"
ignoring nonexistent directory "/opt/ppc64-20020627/powerpc64-linux/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/include"
ignoring duplicate directory "/opt/ppc64-20020627/powerpc64-linux/include"
#include "..." search starts here:
#include <...> search starts here:
/opt/ppc64-20020627/include
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/include
/opt/ppc64-20020627/powerpc64-linux/sys-include
End of search list.
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/bin/as -mppc64 -V -Qy -o /tmp/ccAsCtaA.o /tmp/ccbLUF9e.s
GNU assembler version 2.12.90 (powerpc64-linux) using BFD version 2.12.90 20020627
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/collect2 --eh-frame-hdr -V -Qy -m elf64ppc -dynamic-linker /opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/lib/ld64.so.1 /opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/lib/crt1.o /opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/lib/crti.o /opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/crtbegin.o -L/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1 -L/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/lib -L/lib64 -L/usr/lib64 /tmp/ccAsCtaA.o -lncurses -lgcc -lgcc_eh -lc -lgcc -lgcc_eh /opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/crtsavres.o /opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/crtend.o /opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/lib/crtn.o
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/bin/ld: skipping incompatible /usr/lib/libncurses.so when searching for -lncurses
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/bin/ld: skipping incompatible /usr/lib/libncurses.a when searching for -lncurses
/opt/ppc64-20020627/lib/gcc-lib/powerpc64-linux/3.1.1/../../../../powerpc64-linux/bin/ld: cannot find -lncurses
GNU ld version 2.12.90 20020627
Supported emulations:
elf64ppc
elf32ppclinux
elf32ppc
elf32ppcsim
collect2: ld returned 1 exit status
brule%