From: Maynard J. <may...@us...> - 2008-10-15 20:13:41
|
Robert Richter wrote: > On 15.10.08 11:12:51, Maynard Johnson wrote: >> Robert Richter <rob...@am...> wrote on 10/15/2008 08:57:34 AM: >> >>> Maynard, >>> >>> current CVS is broken for x86. I got this error: Robert, I recently committed a patch to handle the fact that the current version of BFD now depends on zlib -- i.e., when linking with libbfd.so, "-lz" must be passed in. At the time I committed this patch, the only way I had to test it was by specifying "--with-binutils" and passing in the location of where I had installed binutils 2.18. Since then, I've gotten access to a machine that has the newer toolchain (installed in /usr), and I've found that my initial "zlib" patch was not sufficient to work in this situation. I've developed a fix to resolve this issue. I can see from your build log that you are also using binutils 2.18 and, therefore, should need the same fix that I did. However, the specific link errors you're getting don't match the errors I got (when link command does not include "-lz"). My build was failing in the opjitconv directory with undefined references to zlib functions like "inflate". I've attached a patch that fixes that problem I describe above. I intend to formally post this patch and get it committed. This may or may not fix your immediate problem, but I am quite certain you'll need this fix eventually. What you need to do after applying this fix is to run autogen.sh, configure, make clean, and make. Regards, -Maynard >>> >>> ../libutil++/libutil++.a(bfd_support.o): In function `bfd_info:: >>> get_synth_symbols()': >>> /home/rrichter/perfmon2/dev/.source/oprofile/libutil++/bfd_support. >>> cpp:439: undefined reference to `bfd_elf64_powerpc_vec' >>> /home/rrichter/perfmon2/dev/.source/oprofile/libutil++/bfd_support. >>> cpp:439: undefined reference to `bfd_elf64_powerpcle_vec' >>> collect2: ld returned 1 exit status >>> make[2]: *** [opgprof] Error 1 >>> [snip] > make[2]: Leaving directory `/home/rrichter/tmpfs/.build/oprofile/opjitconv' > Making all in pp > make[2]: Entering directory `/home/rrichter/tmpfs/.build/oprofile/pp' > /bin/sh ../libtool --tag=CXX --mode=link g++ -W -Wall -fno-common -ftemplate-depth-50 -Werror -g -O2 -o opreport opreport.o opreport_options.o common_option.o ../libpp/libpp.a ../libopt++/libopt++.a ../libregex/libop_regex.a ../libutil++/libutil++.a ../libop/libop.a ../libutil/libutil.a ../libdb/libodb.a -lpopt -lbfd -liberty -ldl > /bin/sh ../libtool --tag=CXX --mode=link g++ -W -Wall -fno-common -ftemplate-depth-50 -Werror -g -O2 -o opannotate opannotate.o opannotate_options.o common_option.o ../libpp/libpp.a ../libopt++/libopt++.a ../libregex/libop_regex.a ../libutil++/libutil++.a ../libop/libop.a ../libutil/libutil.a ../libdb/libodb.a -lpopt -lbfd -liberty -ldl > /bin/sh ../libtool --tag=CXX --mode=link g++ -W -Wall -fno-common -ftemplate-depth-50 -Werror -g -O2 -o opgprof opgprof.o opgprof_options.o common_option.o ../libpp/libpp.a ../libopt++/libopt++.a ../libregex/libop_regex.a ../libutil++/libutil++.a ../libop/libop.a ../libutil/libutil.a ../libdb/libodb.a -lpopt -lbfd -liberty -ldl > /bin/sh ../libtool --tag=CXX --mode=link g++ -W -Wall -fno-common -ftemplate-depth-50 -Werror -g -O2 -o oparchive oparchive.o oparchive_options.o common_option.o ../libpp/libpp.a ../libopt++/libopt++.a ../libregex/libop_regex.a ../libutil++/libutil++.a ../libop/libop.a ../libutil/libutil.a ../libdb/libodb.a -lpopt -lbfd -liberty -ldl > g++ -W -Wall -fno-common -ftemplate-depth-50 -Werror -g -O2 -o opreport opreport.o opreport_options.o common_option.o ../libpp/libpp.a ../libopt++/libopt++.a ../libregex/libop_regex.a ../libutil++/libutil++.a ../libop/libop.a ../libutil/libutil.a ../libdb/libodb.a /usr/lib64/libpopt.so /usr/lib64/binutils/x86_64-pc-linux-gnu/2.18/libbfd.so -liberty -ldl -Wl,--rpath -Wl,/usr/lib64/binutils/x86_64-pc-linux-gnu/2.18 -Wl,--rpath -Wl,/usr/lib64/binutils/x86_64-pc-linux-gnu/2.18 > g++ -W -Wall -fno-common -ftemplate-depth-50 -Werror -g -O2 -o oparchive oparchive.o oparchive_options.o common_option.o ../libpp/libpp.a ../libopt++/libopt++.a ../libregex/libop_regex.a ../libutil++/libutil++.a ../libop/libop.a ../libutil/libutil.a ../libdb/libodb.a /usr/lib64/libpopt.so /usr/lib64/binutils/x86_64-pc-linux-gnu/2.18/libbfd.so -liberty -ldl -Wl,--rpath -Wl,/usr/lib64/binutils/x86_64-pc-linux-gnu/2.18 -Wl,--rpath -Wl,/usr/lib64/binutils/x86_64-pc-linux-gnu/2.18 > g++ -W -Wall -fno-common -ftemplate-depth-50 -Werror -g -O2 -o opgprof opgprof.o opgprof_options.o common_option.o ../libpp/libpp.a ../libopt++/libopt++.a ../libregex/libop_regex.a ../libutil++/libutil++.a ../libop/libop.a ../libutil/libutil.a ../libdb/libodb.a /usr/lib64/libpopt.so /usr/lib64/binutils/x86_64-pc-linux-gnu/2.18/libbfd.so -liberty -ldl -Wl,--rpath -Wl,/usr/lib64/binutils/x86_64-pc-linux-gnu/2.18 -Wl,--rpath -Wl,/usr/lib64/binutils/x86_64-pc-linux-gnu/2.18 > g++ -W -Wall -fno-common -ftemplate-depth-50 -Werror -g -O2 -o opannotate opannotate.o opannotate_options.o common_option.o ../libpp/libpp.a ../libopt++/libopt++.a ../libregex/libop_regex.a ../libutil++/libutil++.a ../libop/libop.a ../libutil/libutil.a ../libdb/libodb.a /usr/lib64/libpopt.so /usr/lib64/binutils/x86_64-pc-linux-gnu/2.18/libbfd.so -liberty -ldl -Wl,--rpath -Wl,/usr/lib64/binutils/x86_64-pc-linux-gnu/2.18 -Wl,--rpath -Wl,/usr/lib64/binutils/x86_64-pc-linux-gnu/2.18 > ../libutil++/libutil++.a(bfd_support.o): In function `bfd_info::get_synth_symbols()': > /home/rrichter/perfmon2/dev/.source/oprofile/libutil++/bfd_support.cpp:439: undefined reference to `bfd_elf64_powerpc_vec' > /home/rrichter/perfmon2/dev/.source/oprofile/libutil++/bfd_support.cpp:439: undefined reference to `bfd_elf64_powerpcle_vec' > collect2: ld returned 1 exit status > make[2]: *** [oparchive] Error 1 |