-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Joe Ciccone wrote: > Alexander Roalter wrote: >> Joe Ciccone wrote: >>> Alexander Roalter wrote: >>>> after compiling the temporary system (SVN, for pure64 x86_64) and >>>> booting it I got the error >>>> >>>> Kernel panic: no init found. Try passing init= option to kernel... >>>> >>>> looking into it (and comparing with my host system), /sbin/init is >>>> linked shared, while my original init (opensuse 11.0) is linked static. >>>> So contrary to ch. 7.5 I changed the src/Makefile in sysvinit-2.86 the >>>> line LDFLAGS=-s to LDFLAGS=-s -static >>>> >>>> then I got a static init, and the system booted up until the shell >>>> should have been started with the error: /bin/sh: No such file or >>>> directory >>>> >>>> The problem is: all the files in /bin don't know where to look for the >>>> libraries, which are located in /tools/lib, and not in /lib. >>>> >>>> So if I copy all files from /tools/lib to lib, everything works and I >>>> get the login prompt and I also can log in... >>>> >>>> Now, since this is not described in the book, what has to be done that >>>> the executable from the temporary system know how to find their >>>> libraries? I would assume one could use ld.so.cache and set up the >>>> search path to /tools/lib, but nothing of this kind is done... >>>> >>>> Any suggestions? >>> It shoulds like you're linking against host libraries, init does not >>> have to be static. My first guess would be that you did not compile gcc >>> final cross (2nd gcc build) with the specs patch. This would leave your >>> system attached to /lib/ld.so instead of /tools/lib/ld.so which is gone >>> once you chroot/boot. You can verify this by running readelf -l >>> /tools/bin/sh | grep interpreter >> as expected, it returns >> >> clfs:~$ readelf -l /tools/bin/bash | grep interpreter >> [Requesting program interpreter: /lib/ld-linux-x86-64.so.2] >> >> which is bad. >> On building GCC in chapter 6.9, even gcc-build/gcc/g++ shows the same >> behavior: >> >> clfs:~/sources/gcc-build$ readelf -l ./g++ | grep interpreter >> [Requesting program interpreter: /lib/ld-linux-x86-64.so.2] >> >> so the modified startfile SPEC, that should look first in /tools/lib >> seems not to have influenced the build... Is there something where one >> can see which spec file is used? > http://cross-lfs.org/view/svn/x86_64-64/cross-tools/gcc-final.html . > During the building of gcc-final in cross-tools you did not apply the > pure64_specs patch. I'm not sure if you used the same source directory > but you shouldn't have done that if you did. basically you have to start > over. Rebuild gcc-final and then rebuild all of /tools.
Now I see, tried it again in 6.9 which is of course much too late. doing it in 5.15 does the trick, and I don't have to boot, but can do chroot. One thing though now I have a problem with: compiling util-linux, I get ../lib/fsprobe.c:13:19: error: blkid.h: No such file or directory in /tools/include there's no blkid subdir or blkid.h, as blkid and libblkid are IN util-linux... - -- Cheers, Alex -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkpjYEIACgkQ1J0MF2u394zGxACfX9GY2YzC8DgIQSE8XctetS0k +jUAn2dVtbugcn83KbLB/Wl7YuzlMDtJ =46Vn -----END PGP SIGNATURE----- _______________________________________________ Clfs-support mailing list [email protected] http://lists.cross-lfs.org/listinfo.cgi/clfs-support-cross-lfs.org
