Re: Building a Linuxulator userland from source
- In reply to: Alexander Leidinger : "Re: Building a Linuxulator userland from source"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 01 Sep 2023 18:51:44 UTC
* Alexander Leidinger <Alexander@Leidinger.net> [20230901 19:11]:
> Am 2023-09-01 16:55, schrieb Felix Palmen:
> > * Infrastructure libs like libdrm, libglvnd, alsa, v4l, ...
>
> Infrastructure ports are what we provide in the linux base ports. So I'm not
> surprised... :)
Yes of course, this is what you will need in any case (and it's indeed a
lot of work. Still not giving up just yet, hehe).
> Are you already taking into account the fall-through of config files to
> FreeBSD native config files? This is the main difference between a linux
> distribution (linux_dist ports) and a linux base for FreeBSD.
Yes, e.g. I don't let the alsa libs install some asound.conf ... but
this is quite simple so far, very few packages want to install something
to /etc at all (and some things like glibc's ld.so.conf are needed).
> Another
> difference may be to only compile the libs instead of the binaries (e.g. the
> linux libmp3lame.so would be needed by software, but the FreeBSD lame
> executable could be used).
So far, I didn't care about that, except when the upstream build system
provides configure options. This will be something to clean up later.
It's also about (tons?) of unnecessary docs.
I plan to allow manpages to be installed for things that are GNU- or
Linux-specific, even ported man-db for that, cause I see some value in
that. But for anything that would just duplicate manpages that are the
same on FreeBSD, this will be yet another cleanup step.
So far: First get something to work at all ;)
> > There were almost no surprising build issues so far (so, I guess
> > accidentally pulling in things from FreeBSD base really isn't a thing,
> > at least not when building in poudriere), except for one: It seems a
> > "relative" rpath (using $ORIGIN) doesn't work. To work around this with
> > one port using that during build, I had to add some explicit
> > LD_LIBRARY_PATH.
>
> Only for the build, or also for running/executing afterwards?
Only for the build, I ran into this issue with gobject-introspection
which uses its own shared lib to create some introspection files during
the build. This is done using some rpath relative to $ORIGIN and for
some reason, it just doesn't work. Glibc's ldd script can even resolve
the library correctly, but the dynamic linker can't. Anyways, there's a
workaround ;)
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