Re: Building a Linuxulator userland from source
- Reply: Felix Palmen : "HEADS-UP: poudriere needs patching (was: Building a Linuxulator userland from source)"
- Reply: Felix Palmen : "Re: Building a Linuxulator userland from source"
- In reply to: Felix Palmen : "Building a Linuxulator userland from source"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 20 Aug 2023 10:35:41 UTC
* Felix Palmen <zirias@freebsd.org> [20230818 08:23]: > I just reached a state where I can build a working Linux-native GNU > toolchain (binutils, glibc, gcc) for C and C++ on aarch64, amd64 and > i386. From here on, it should be simpler, there are already two ports in > my branch (archivers/linux-bzip2 and archivers/linux-xz) using that > native toolchain for building. Just a little update on this, I *did* start building some "base" userland now. What seems to work so far is GNU bash and coreutils, including quite some libs used (gmp, acl, attr, libcap, openssl, ncurses, readline). I already had two metaports in my branch, linux_base-dirs (which will just create and own the absolute minimum directory structure in ${LINUXBASE}) and linux-toolchain (which pulls in everything needed to compile C and C++). Now, I added a third metaport: "linux_base". This is incomplete of course, it's where I want to collect all the bits and pieces for a "base" Linuxulator userland as RUN_DEPENDS. If anyone would like to already do some testing at this stage, please be aware that I not only rebase my feature branch, but also rewrite it while rebasing (to fix issues I encounter), and of course there won't be any PORTREVISION bumps. Therefore, the safest thing to do is to remove all linux*.pkg files from your poudriere repositories before trying a newer version of the branch. The lxcross*.pkg packages can probably be kept, I don't expect having to fix anything there. Finally, I managed to sort out at least one of the open issues: > - Building the final linux-gcc ports, I get weird error messages > directly to poudriere's terminal (they do NOT appear in the build > log!) like this: > ELF interpreter /usr/lib/ld-linux.so.2 not found, error 2 > I have no idea where this comes from, so far I couldn't identify any > negative effect though. I still don't know how/why it happened, but I now did what most Linux distributions seem to do nowadays ... add symlinks in linux_base-dirs: | /bin -> usr/bin | /sbin -> usr/sbin | /lib -> usr/lib | /lib64 -> usr/lib64 There's just some "convincing" needed for glibc to install *all* files below /usr, but all other packages now seem to "just work". So I assume it's the only sane approach packaging some GNU/Linux userland. It certainly makes sure the program interpreter is now also found below /usr. Cheers, Felix -- Felix Palmen <zirias@FreeBSD.org> {private} felix@palmen-it.de -- ports committer -- {web} http://palmen-it.de {pgp public key} http://palmen-it.de/pub.txt {pgp fingerprint} 6936 13D5 5BBF 4837 B212 3ACC 54AD E006 9879 F231