-
Notifications
You must be signed in to change notification settings - Fork 450
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Get of rid of the VirtualPrefix #222
Conversation
There is one little problem (but it can be solved after I review the changes and merge the code) - in some cases, a little bit of VirtualPrefix code (or simply new code) are still needed: HFS+ is case insensitive and apps depend on this. I've seen software explicitly checking whether the filesystem where it's installed is case sensitive (usually HFSX on macOS) and then refusing to run. So we will need to have a special resolution algorithm, which on the other hand only needs to be triggered in case the given system call returns -LINUX_ENOENT. |
@LubosD good catch! OTOH, I've heard that iOS version of HFS+ is case-sensitive, and so is APFS, so this may be less relevant in the future. |
One more question before I merge (and I may be a little confused, possibly): where do we chroot? |
We don't actually use |
Clever! Never actually though about using this outside of initrd. |
This is my work on building the new layout of the "Darling container" (see #197).
$DPREFIX
directly onto/
inside the container.procfs
(for our PID namespace) onto/proc
inside./Volumes/SystemRoot/...
) see the new layout, too. You can use e.g./Volumes/SystemRoot/bin/ps
./etc/ld.so.conf.d
and runldconfig
at installation time.LD_LIBRARY_PATH
for/usr/local/lib/darling
./etc/ld.so.conf.d/darling.conf
; this won't be hopefully needed after the Great Mach-O Bringup (see Using Mach-O's for Darling itself #221)./lib -> /Volumes/SystemRoot/lib
andlib64 -> /Volumes/SystemRoot/lib64
./lib64/ld-linux-x86-64.so.2
(or 32bit version) hard-coded as their interpreter./usr/local/libexec/darling
at installation time./Volumes
(see New /Volumes design #220):/system-root
to/Volumes/SystemRoot
.hdiutil
works if launched likeDPREFIX=/ PATH=/Volumes/SystemRoot/bin /usr/bin/hdiutil
. It should be fairly easy to make it support the new layout.Please do review and test!