FS#32209 - [filesystem] new apps still linked to /lib/ld-linux-x86-64.so.2

Attached to Project: Arch Linux
Opened by Jaroslav Šmíd (jardasmid) - Thursday, 25 October 2012, 01:38 GMT
Last edited by Allan McRae (Allan) - Thursday, 25 October 2012, 11:07 GMT
Task Type Feature Request
Category Packages: Extra
Status Closed
Assigned To Tom Gundersen (tomegun)
Architecture x86_64
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

/lib has been made a symlink to /usr/lib as temporary (?) compatibility solution, but GCC (or ld) still link new binaries against /lib/ld-linux-x86-64.so.2 (with absolute path) instead of /usr/lib/ld-linux-x86-64.so.2.

Newly compiled packages and user-compiled apps should be linked to /usr/lib/ld-linux-x86-64.so.2 to further advance with /lib -> /usr/lib move, newly compiled packages shouldn't depend on old filesystem layout.

This shouldn't affect portability of user-compiled binaries to other linux distributions, since most of them don't have /lib/ld-linux-x86-64.so.2 anyway. They have 32bit version of ld-linux in this directory and 64bit version in /lib64 so old binaries didn't work in other distributions anyway, unless symlink was created in /lib.

The only compatibility issues might arise when moving user-compiled programs to not-updated version of Arch Linux where /usr/lib/ld-linux-x86-64.so.2 doesn't exist yet, but that is good, because (1) it would force users to update outdated systems to fix possible security issues in old packages (2) and can be easily fixed on outdated system by creating a symlink. And because partial updates are officially unsupported, user's shouldn't have new packages installed along with old glibc, so no problem here.

I myself consider this a bug, which should be fixed (in GCC/ld/binutils, whereever this path is hardcoded), then newly compiled packes would get fixed too and eventually everything would be compiled against the right library. Then Arch Linux could really say '/lib' was moved to '/usr/lib'.
This task depends upon

Closed by  Allan McRae (Allan)
Thursday, 25 October 2012, 11:07 GMT
Reason for closing:  Won't implement
Comment by Allan McRae (Allan) - Thursday, 25 October 2012, 03:28 GMT
The /lib symlink is permanent.
Comment by Jan de Groot (JGC) - Thursday, 25 October 2012, 06:37 GMT
Changing this means that a binary that is compiled on archlinux will only run on systems that also moved all their libs to /usr/lib.
Comment by Alexander F. Rødseth (xyproto) - Thursday, 25 October 2012, 11:04 GMT
I interpret this bug report as a feature request to either:
- Remove /lib from the filesystem package
or
- Make namcap and/or makepkg give errors if a program looks for /lib

Please clarify which package this is directed at.
Comment by Allan McRae (Allan) - Thursday, 25 October 2012, 11:07 GMT
You interpret wrong... It requests we make the default linker path /usr/lib/ld-... which is not going to happen.

Loading...