On Wednesday 10 January 2007 13:21, Alexander Leidinger wrote: > Quoting Tijl Coosemans <tijl_at_ulyssis.org> >> On Wednesday 10 January 2007 07:53, Alexander Leidinger wrote: >>> That's not possible. The way the linuxulator works is: >>> - the linker in userland calls open("/foo/bar") >>> - kernel looks for "/compat/linux/foo/bar" >>> * it is there -> return it >>> * it is not there -> look for "/foo/bar" >>> + if it is there -> return it >>> + if it is not there -> return error >>> - the userland get's something which may be linux or FreeBSD stuff >>> - the linker read()s this >>> - the linker sees a wrong ELF ABI and bails out >> >> That means the linker tries to open /usr/lib/librt.so.1 instead of >> /lib/librt.so.1 which doesn't exist under /compat/linux. So I added a >> symlink there. >> >> ln -s ../../lib/librt-2.3.6.so /compat/linux/usr/lib/librt.so.1 >> >> And now everything works. >> >> % ldd /compat/linux/bin/ls >> /compat/linux/bin/ls: >> librt.so.1 => /lib/obsolete/linuxthreads/librt.so.1 (0x4807c000) >> >> I think this is an easier solution than changing the runtime linker. > > Does it still work with 2.6.16 (can't test ATM)? If yes: I agree, it > is more easy and we can change this in the linux base port very fast Yes, it works with 2.6.16. Here's what I think is happening: ls is linked against librt.so.1 with /lib and /usr/lib as runtime search paths and thus: - linker calls open("/lib/librt.so.1") - kernel returns "/compat/linux/lib/librt.so.1" - linker reads and sees it requires kernel ABI 2.4.20 * when osrelease=2.6.16, this is ok, all done * when osrelease=2.4.2 + linker calls open("/usr/lib/librt.so.1") + kernel returns "/compat/linux/usr/lib/librt.so.1" (symlink) (previously kernel returned FreeBSD "/usr/lib/librt.so.1" here, which caused linker error) + linker reads and sees it requires kernel ABI 2.4.20, not ok + linker calls open("/lib/obsolete/linuxthreads/librt.so.1") + kernel returns "/compat/linux/lib/obsolete/linuxthreads/librt.so.1" + linker reads and sees it requires kernel ABI 2.2.5, ok, all doneReceived on Wed Jan 10 2007 - 14:53:34 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:04 UTC