user/mozjs: ImportError: This platform lacks a functioning sem_open implementation
Found on pmmx, maybe it applies to others.
Creating config.status
Traceback (most recent call last):
File "../../../configure.py", line 127, in <module>
sys.exit(main(sys.argv))
File "../../../configure.py", line 34, in main
return config_status(config)
File "../../../configure.py", line 122, in config_status
return config_status(args=[], **encode(sanitized_config, encoding))
File "/root/packages/user/mozjs/src/mozjs-60.5.2/python/mozbuild/mozbuild/config_status.py", line 133, in config_status
reader = BuildReader(env)
File "/root/packages/user/mozjs/src/mozjs-60.5.2/python/mozbuild/mozbuild/frontend/reader.py", line 868, in __init__
self._gyp_worker_pool = ProcessPoolExecutor(max_workers=max_workers)
File "/root/packages/user/mozjs/src/mozjs-60.5.2/third_party/python/futures/concurrent/futures/process.py", line 285, in __init__
EXTRA_QUEUED_CALLS)
File "/root/packages/user/mozjs/src/python/lib/python2.7/multiprocessing/__init__.py", line 217, in Queue
from multiprocessing.queues import Queue
File "/root/packages/user/mozjs/src/mozjs-60.5.2/build/mach_bootstrap.py", line 369, in __call__
module = self._original_import(name, globals, locals, fromlist, level)
File "/root/packages/user/mozjs/src/python/lib/python2.7/multiprocessing/queues.py", line 48, in <module>
from .synchronize import Lock, BoundedSemaphore, Semaphore, Condition
File "/root/packages/user/mozjs/src/mozjs-60.5.2/build/mach_bootstrap.py", line 369, in __call__
module = self._original_import(name, globals, locals, fromlist, level)
File "/root/packages/user/mozjs/src/python/lib/python2.7/multiprocessing/synchronize.py", line 59, in <module>
" function, see issue 3770.")
ImportError: This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770.
>>> ERROR: mozjs: build failed
Note that the environment is set up like this:
KEEP=/foo
-
k=pmmx
(the rootfs is/foo/pmmx/
) uidgid=1000:300
PROG=$(sed \
-e "s/__USER__/${BUSR}/g" \
-e "s@__PKGS__@/${PKGS##*/}@g" \
);
for k in ${ARCH}; do
uidgid=$(grep ${BUSR} "${KEEP}/${k}/etc/passwd" \
| cut -d: -f3,4 \
);
mount -B /dev "${KEEP}/${k}/dev";
mount -t proc none "${KEEP}/${k}/proc";
chroot \
--userspec=${uidgid} \
"${KEEP}/${k}" \
sh -c "cd; ${PROG}" \
;
umount "${KEEP}/${k}/proc";
umount "${KEEP}/${k}/dev";
done