Re: 32/64-Bit Library Confusion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


On 04/13/2012 06:29 AM, Brian McGrew wrote:
> 
> On 04/11/2012 06:38 PM, Brian McGrew wrote:
>>
>>>> Good morning,
>>>>
>>>> I'm on CentOS 6.2_x86-64 on a Dell PE 1900 using Intel Xeon 5130 processors and I recently got gcc-4.7.0 built and installed, along with all the requirements and dependencies, separate from the system installed versions.  It all appears to be working, but, I'm having a bit of confusion over libstdc++ and the 32/64-bit version.
>>>>
>>>> I've got:
>>>>
>>>> ultra-trix:~/toolchain 09:44:32
>>>> 73_ file lib/libstdc++.so.6.0.17
>>>> lib/libstdc++.so.6.0.17: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped
>>>> ultra-trix:~/toolchain 09:44:47
>>>> 74_ file lib64/libstdc++.so.6.0.17
>>>> lib64/libstdc++.so.6.0.17: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
>>>> ultra-trix:~/toolchain 09:44:54
>>>> 75_ 
>>>>
>>>> but when I try and build C++ libraries like PPL (or my own libraries), I get the follow:
>>>>
>>>> /export/home/ultra-trix/brian/toolchain/lib/../lib/libstdc++.so: could not read symbols: File in wrong format
>>>> collect2: error: ld returned 1 exit status
>>>> make[3]: *** [libppl.la] Error 1
>>>> make[2]: *** [all] Error 2
>>>> make[1]: *** [all-recursive] Error 1
>>>> make: *** [all] Error 2
>>>> ultra-trix:~/toolchain/src/ppl-0.12/x86_64 09:49:02
>>>> 77_ 
>>>>
>>>> This came from trying to build and link PPL.  My environment looks like the following:
>>>>
>>>> 78_ echo $PATH
>>>> /export/home/ultra-trix/brian/x86_64:/export/home/ultra-trix/brian/x86_64/script:/export/home/ultra-trix/brian/toolchain/bin:/usr/local/bin:/usr/local/gnu/bin:/export/home/ultra-trix/brian/mvp/work/pcb-X64/brian-pcb/bin:/usr/bin:/bin:/opt/pdk/bin:/opt/ActivePerl-5.10/bin:/opt/ActivePerl-5.10/site/bin:/usr/bin/X11:/sbin:/usr/sbin:/spare1/XDesigner-7.0/bin:/usr/etc:/opt/mvp/pbm
>>>> ultra-trix:~/toolchain/src/ppl-0.12/x86_64 09:49:45
>>>> 79_ echo $LD_LIBRARY_PATH 
>>>> /export/home/ultra-trix/brian/toolchain/lib64:/export/home/ultra-trix/brian/toolchain/lib:/export/home/ultra-trix/brian/mvp/work/pcb-X64/lib:/export/home/ultra-trix/brian/mvp/work/pcb-X64/brian-pcb/lib:/usr/lib:/lib:/usr/local/lib:/usr/local/gnu/lib:/spare1/XDesigner-7.0/lib/X11
>>>> ultra-trix:~/toolchain/src/ppl-0.12/x86_64 09:49:50
>>>> 80_ 
>>>>
>>>> And I've configured PPL as follows:
>>>>
>>>>   $ ../configure --prefix=/export/home/ultra-trix/brian/toolchain --enable-share
>>>> d --enable-static --with-gmp=/export/home/ultra-trix/brian/toolchain
>>>>
>>>>
>>>> I'm not sure what I'm missing here, but clearly, I'm doing something wrong.  Someone please point me in the right direction?
>>>
>>> Obvious, innit?  /export/home/ultra-trix/brian/toolchain/lib64 is not
>>> in your LD_LIBRARY_PATH.
>>
>> I'm confused then...  I do have that directory in my LD_LIBRARY_PATH.  See above...  Am I missing something???
>  
>> Sorry, my mistake.  The fault must be in the makefile.  We haven't seen
>> the command that led to this, so we can't comment.
> 
> Since PPL is a GNU style automake/configure setup, what is the easiest way to extract the command, and pin down exactly which Makefile it's coming out of?  I'm not the foremost expert on make!

It must have been in the output, on the lines above the one you quoted.
You only gave us the error message, not the preceding context.  Another
possibility is that the makefile messed with LD_LIBRARY_PATH.

You should be able to run the compile command for that one file on its own.
Then we might have some inkling what is going on.  If I were there, I would
probably be able to solve the problem in a minute.

Andrew.


[Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

Add to Google