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

Bug#444145: /usr/share/man/man8/ld.so.8.gz does not document the $ORIGIN, $PLATFORM and $LIB feature



Package: libc6
Version: 2.6.1-1+b1
Severity: wishlist
Tags: patch
File: /usr/share/man/man8/ld.so.8.gz

Raphael Hertzog noticed in [1] that the openoffice.org package is using
the undocumented $ORIGIN feature of the linux ld.so. See [2] for a
documentation of that feature.

[1] http://thread.gmane.org/gmane.linux.debian.devel.general/119923 
[2] http://linuxreviews.org/man/ld.so/

See the following irc query in #debian-devel:

12:42:05 < MadCoder> according to http://linuxreviews.org/man/ld.so/ it does
12:42:20 < MadCoder> (understands $ORIGIN)
12:43:04 < MadCoder> siretart: linux seems to support it
12:43:12 < MadCoder> it's just not in the man page
12:43:21 < MadCoder> let me look at ld code
12:43:21 < siretart> MadCoder: oh. then we should have that documented :)
12:43:31 < buxy> siretart: anyway, thanks for the info!
12:43:53 < MadCoder> siretart: yeah, stupid glibc maintainers
12:44:27 < _rene_> siretart: their goal is to get rid of LD_LIBRARY_PATH (which they currently use, too because some internally shipped libs like libxml, python, .. (sic!) don't have the RPATH)
12:44:53 < _rene_> siretart: and they indeed used $ORIGIN since ever.
12:45:08 < MadCoder> siretart: the code shows that $ORIGIN and $PLATFORM are supported 
12:45:27 < MadCoder> and $LIB
12:45:31 < MadCoder> not sure what they do
12:45:40 < _rene_> MadCoder: ah, so it's an ld feature? good to know...
12:45:58 < MadCoder> yeah I'm looking at glibc-2.6/elf/dl-load.c right now :)
12:46:02  * _rene_ didn't really look that deep into what $ORIGIN is for at OOo
12:46:23 < MadCoder> and it seems that you can put $ORIGIN $PLATFORM and $LIB in your rpath
12:46:38 < MadCoder> $ORIGIN is the absolute path the binary in question live
12:46:44 < MadCoder> $PLATFORM is your elf platform
12:46:58 < siretart> MadCoder: cool!
12:47:10 < MadCoder> I'm not sure to understand what $LIB is yet
12:49:39 < MadCoder> siretart: and it seems linux supports it at least since glibc 2.1
12:49:43 < MadCoder> so it's hardly new
12:50:15 < _rene_> .oO ( that also explains why OOos configure script explicitely checks for glibc being >= 2.1 )
12:51:02 < MadCoder> probably
12:51:29 < MadCoder> $LIB is defined it seems to a "safe path where to find libraries" when building the glibc
12:51:32 < MadCoder> it's odd
12:52:16 < MadCoder> though $ORIGIN and $PLATFORM are definitely nice features
12:52:33 < MadCoder> buxy: so you shouldn't have such a hard time to deal with it
12:53:00 < MadCoder> for a library path/to/libfoo.so $ORIGIN has to be replaced with path/to
12:54:25 < buxy> MadCoder: yeah, that's easy, however I think I'll ignore $PLATFORM and $LIB for now
12:54:31  * siretart goes to file a bug about documenting the $ORIGIN feature
12:55:14 < MadCoder> $LIB is likely to be never used


--
System Information: Debian Release: lenny/sid APT prefers testing APT
policy: (500, 'testing'), (50, 'unstable') Architecture: i386 (x86_64)

Kernel: Linux 2.6.20.4-gernoth-64bit (SMP w/4 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libc6 depends on:
ii  libgcc1                       1:4.2.1-4  GCC support library

libc6 recommends no packages.

-- no debconf information





Reply to: