This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ncurses link problem...


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%


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]