The ebuild for sun-jdk-1.3.1 installs the file 20java into /etc/env.d. This file containst the line LD_ASSUME_KERNEL=2.2.5 This causes the whole system to become useless because important libraries (like libc) cannot be found anymore. For example: localhost root # whoami whoami: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory Moreover, installing sun-jdk-1.3.1 makes this the default system vm, with the changes to the environment applied directly. This makes it extra hard to correct the problem. Reproducible: Always Steps to Reproduce: 1. emerge sun-jdk-1.3.1.09 2. start a program that uses libc i.e. 'whoami' Actual Results: localhost root # whoami whoami: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory Expected Results: localhost root # whoami root
please can you post emerge info ?
Not sure what you mean by emerge info. I just did an ordinary emerge, no problems there. At the end of the emerge, the just emerged jdk is set a system-vm, just like when you do: > java-config --set-system-vm=sun-jdk-1.3.1.09 You can do this, followed by: > /usr/sbin/env-update && source /etc/profile Which wil equally mess up you session. The problem is that after an emerge the env-update is done automatically. This will disrupt all following logins. BTW: through a little googling I learned that this LD_ASSUME_KERNEL=2.2.5 has something to do with NPTL. I don't use NPTL threads.
Execute "emerge info", and copy the output here. Thanks.
Created attachment 24173 [details] Emerge info The emerge info of my machine
Created attachment 24174 [details] Emerge log I also attached the output of what an emerge \=sun-jdk-1.3.1.09 looks like
Azarah, Cretin i heard you both once on gentoo-dev discussing about LD_ASSUME_KERNEL, can any of you lend me a help here ?
LD_ASSUME_KERNEL is normally used to set the system libraries into compatability a mode similar to running a kernel with the given version. Redhat normally ships with two sets of system libraries installed, one new version and one old kernel-2.2.5 compatable version. Gentoo glibc is normally compiled so that the oldest kernel version you can use is 2.4.1, thus any LD_ASSUME_KERNEL version before that will fail ( ie. 2.2.5 ). I assume that there was a workaround posted with using this version of java with 2.4.1 kernels. This workaround is LD_ASSUME_KERNEL=2.2.5 This will not work with gentoo, as it is not supported in recent glibc versions (2.3.1 onwards) on gentoo. Java 1.4.1 is working I assume; 1.3.1 would just have to be blocked by new glibc versions and definatly the LD_ASSUME_KERNEL=2.2.5 removed from the global system enviroment.
I have removed the LD_ASSUME_KERNEL line from the file as it obviosly wrong to effect the entire system this way. java 1.3.1 may not work on new kernels / glibc but I stopped short of adding !>=sys-libs/glibc-2.3 to RDEPEND.
This has been fixed long time ago.