On Thu, Mar 26, 2020 at 01:41:40PM +0000, Ken Moffat via blfs-dev wrote:
[snip who replied to whom]
Here is what I did for testing.
> I'll reply in a while with what I have now tested (after I've
> assembled my notes). I've gone with Bruce's suggestion to (only)
> mount a tmpfs on /run when building in chroot - I think xry111 has
> identified the issue (bind mounts are not recursive).
>
More likely, it is the fact that in BLFS it is a symlink to
/run/shm. Anyway, here is what I did and the errors. Sorry, it is
long. I'll post my proposed changes as a follow-up.
I think that in the past I noted that /dev/shm existed in chroot,
and since I don't often build these packages in chroot I assumed
that part was OK.
The testing:
===========
For each package: mount a system at /mnt/lfs (host is 9.1, chroot is
LFS from 20200127 with BLFS from then and later)
bind /dev /proc /sys /sources /home
chroot
su - lfs
Attempt to build as user lfs.
ALL of these mozilla-derived packages failed.
On failure:
note the message
exit back to root (cannot su, not a tty)
mount -t tmpfs /run
su - lfs
Successful retry with DESTDIR install
review contents of /run
exit back to root
umount /run
review contents of /run
exit chroot
umount /mnt/lfs and everything mounted on it :
mount | grep lfs | awk '{ print $3 }' | tac | xargs umount
repeat for next package.
mozjs60:
-------
(I initially tried strace during the configure, but I could not find
anything useful in the enormous output.)
Failed (as they all did) while creating config.status -
Traceback (most recent call last):
File "../js/src/../../configure.py", line 127, in <module>
sys.exit(main(sys.argv))
File "../js/src/../../configure.py", line 34, in main
return config_status(config)
File "../js/src/../../configure.py", line 122, in config_status
return config_status(args=[], **encode(sanitized_config, encoding))
File "/home/lfs/mozjs-60.8.0/python/mozbuild/mozbuild/config_status.py", line
133, in config_status
reader = BuildReader(env)
File "/home/lfs/mozjs-60.8.0/python/mozbuild/mozbuild/frontend/reader.py",
line 868, in __init__
self._gyp_worker_pool = ProcessPoolExecutor(max_workers=max_workers)
File
"/home/lfs/mozjs-60.8.0/third_party/python/futures/concurrent/futures/process.py",
line 285, in __init__
EXTRA_QUEUED_CALLS)
File "/usr/lib/python2.7/multiprocessing/__init__.py", line 218, in Queue
return Queue(maxsize)
File "/usr/lib/python2.7/multiprocessing/queues.py", line 63, in __init__
self._rlock = Lock()
File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 147, in
__init__
SemLock.__init__(self, SEMAPHORE, 1, 1)
File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 75, in __init__
sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 38] Function not implemented
After successful build, /run was empty, but after I had umounted it,
while still in chroot I looked again : /run/mount and /run/shm
existed.
seamonkey:
---------
The traceback ends:
File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 75, in __init__
sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 38] Function not implemented
*** Fix above errors and then restart with\
"make -f client.mk build"
make[1]: *** [/home/lfs/seamonkey-2.53.1/client.mk:362: configure] Error 1
make[1]: Leaving directory '/home/lfs/seamonkey-2.53.1'
make: *** [client.mk:374:
/home/lfs/seamonkey-2.53.1/obj-x86_64-pc-linux-gnu/Makefile] Error 2
Looking at /run, empty both before umounting and afterwards
thunderbird:
-----------
0:18.73 File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 75,
in __init__
0:18.73 sl = self._semlock = _multiprocessing.SemLock(kind, value,
maxvalue)
0:18.73 OSError: [Errno 38] Function not implemented
0:18.79 *** Fix above errors and then restart with\
0:18.79 "./mach build"
0:18.79 make: *** [client.mk:115: configure] Error 1
NB, client.mk is invoked from ./mach.
Again. /run seemed to be empty even after unmounting.
firefox:
-------
0:12.67 File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 75,
in __init__
0:12.67 sl = self._semlock = _multiprocessing.SemLock(kind, value,
maxvalue)
0:12.67 OSError: [Errno 38] Function not implemented
with message about fixing, restart with ./mach build
[snipped, messages like thunderbird ]
After umount, /run contained /run/mount (only).
JS68:
----
File "/usr/lib/python3.8/multiprocessing/synchronize.py", line 57, in __init__
sl = self._semlock = _multiprocessing.SemLock(
OSError: [Errno 38] Function not implemented
Again, after umount /run contained /run/mount (only).
Tested, but does NOT require this - node-js:
===========================================
When I first encountered this problem (years ago, in firefox) for
some reason I thought it would be a good idea to rebuild node-js
although that had not failed to configure. But instead I have now
confirmed that it builds successfully in chroot without a tmpfs on
/run. My limited understanding of python multiprocessing is that
it tests at runtime, therefore a normal run after everything has
been built will not be affected.
To follow: planned Note copy member.
ĸen
--
When alle is ſayed and all is done, ye must chooſe your faces wisely,
for soon enouff ye will be playing with fyre."
The Nice and Accurate Prophecies of Agnes Nutter, Prophecy 5004
--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page