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

Re: Static compilation: segmentation fault in execution [host=x86_64, target: ia64]

2012/9/14 Jonathan Nieder <jrnieder@gmail.com>:
> José Luis García Pallero wrote:
>> 2012/9/14 Jonathan Nieder <jrnieder@gmail.com>:
>>> Can't you install the libraries you use in binary form in some
>>> directory that is in LD_LIBRARY_PATH when you run the "hello" program?
> [...]
>> Unfortunately, it is not possible any of the 3 options. Users have not
>> very much space, so it is impossible to build some software from
>> source (a recent gcc compiler, for example). On the other hand, the
>> old compiler installed (gcc 3.2.3) is not valid to compile some modern
>> libraries. Install debian in a chroot environment is impossible too.
> My sympathies.  Is the sysadmin not amenable to providing more room
> for shared libraries that could be shared between multiple users?
> But in any event, I don't see why this would preclude the first option
> quoted above.  I wasn't suggesting building from source on the target
> device.  Including copies of shared libraries does take a little more
> space than static linking because it means the implementations of
> functions you *don't* use are there, too, but in practice it is not
> generally that much, and even that problem can be mitigated by the
> determined by stripping out unused functions (as is done on the Debian
> installer CDs).


I'm trying to install gcc 4.7.1 from Debian for ia64 arch. I have
downloaded all packages and dependencies plus eglibc 2.13 because gcc
4.7.1 requires a version >= 2.11 and the RedHat 3.0 installed in the
machine provides an older one. When I extract the files from *.deb
packages I obtain a classical directory tree:


and inside usr/:


So now I need to add the correct data to paths environments. For PATH
I have no doubts, the path is usr/bin. But I have doubts about
LD_LIBRARY_PATH. Should I add lib/, in which is stores libc.so,
libm.so, etc? I think yes, but I don't know if this new libc can
produce conflicts with the libc of the system. In lib/ exists another
directory called ia64-linux-gnu/ Should this folder be explicitly
added to LD_LIBRARY_PATH? I've tried to manually set for the current
session the LD_LIBRARY_PATH to lib/ folder and when I try to execute
gcc 4.7.1 I obtain the error:

../usr/bin/gcc-4.7: relocation error:
workdir/software/gcc-4.7.1/lib/libc.so.6.1: symbol _rtld_global_ro,
version GLIBC_PRIVATE not defined in file ld-linux-ia64.so.2 with link
time reference

I don't know exactly the message, but ld-linux-ia64.so.2 is in lib/
and lib/ia64-linux-gnu/
I obtain this error if I try to use any other system utility, as ls
command, for example, so I think conflicts between the new libc and
the system one

In the usr/lib/ folder exists too some libraries and directories.
Shoud I add only usr/lib/ to the LD_LIBRARY_PATH or the subfolders

And what about usr/include/ folder? Should I add it to some
environment variable?


José Luis García Pallero
/ / \
Use Debian GNU/Linux and enjoy!

Reply to: