#58850 closed defect (worksforme)
VLC @3.0.7 fails due to "write error" -- fixed by disabling parallel building
Reported by: | kencu (Ken) | Owned by: | RJVB (René Bertin) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | ||
Port: | vlc |
Description
During the build of VLC on my 10.14 MacPro many-core machine, I repeatedly was getting this error:
libtool: link: /usr/bin/grep -E -e "^vlc_entry" ".libs/libmotion_plugin.exp" > ".libs/libmotion_plugin.expT" libtool: link: ( cd ".libs" && rm -f "libi420_nv12_plugin.la" && ln -s "../libi420_nv12_plugin.la" "libi420_nv12_plugin.la" ) libtool: link: mv -f ".libs/libmotion_plugin.expT" ".libs/libmotion_plugin.exp" libtool: link: ( cd ".libs" && rm -f "libhttps_plugin.la" && ln -s "../libhttps_plugin.la" "libhttps_plugin.la" ) libtool: link: sed -e 's|^|_|' < .libs/libmotion_plugin.exp > .libs/libmotion_plugin-symbols.expsym libtool: link: /usr/bin/clang -o .libs/libmotion_plugin.dylib -bundle control/.libs/motion.o -Wl,-force_load,./.libs/libvlc_motion.a ../compat/.libs/libcompat.a -L/opt/local/lib -L/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_multimedia_VLC/VLC/work/vlc-3.0.7.1/contrib/lib ../src/.libs/libvlccore.dylib -lintl -lidn -liconv -lm -Os -arch x86_64 -O3 -fstack-protector-strong -Wl,-framework -Wl,IOKit -Wl,-framework -Wl,CoreFoundation -Wl,-headerpad_max_install_names -Wl,-syslibroot -Wl,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -arch x86_64 -Wl,-headerpad_max_install_names -Wl,-exported_symbols_list,.libs/libmotion_plugin-symbols.expsym libtool: link: ( cd ".libs" && rm -f "librtp_plugin.la" && ln -s "../librtp_plugin.la" "librtp_plugin.la" ) libtool: link: ( cd ".libs" && rm -f "libi420_10_p010_plugin.la" && ln -s "../libi420_10_p010_plugin.la" "libi420_10_p010_plugin.la" ) libtool: link: ( cd ".libs" && rm -f "libmotion_plugin.la" && ln -s "../libmotion_plugin.la" "libmotion_plugin.la" ) make[4]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_multimedia_VLC/VLC/work/vlc-3.0.7.1/modules' make[4]: write error make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_multimedia_VLC/VLC/work/vlc-3.0.7.1/modules' make[2]: *** [all] Error 2 make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_multimedia_VLC/VLC/work/vlc-3.0.7.1/modules' Making all in lib
It disappeared when I added
use_parallel_build no
Attachments (1)
Change History (4)
Changed 5 years ago by kencu (Ken)
Attachment: | vlc-fail-parallel-enabled.log added |
---|
comment:1 Changed 5 years ago by RJVB (René Bertin)
comment:2 Changed 5 years ago by kencu (Ken)
Resolution: | → worksforme |
---|---|
Status: | assigned → closed |
this seems to work for the vast majority of users.
comment:3 Changed 5 years ago by RJVB (René Bertin)
Does it continue NOT to work for you? Have you ever tried to figure out from what amount of parallelism onwards (build.jobs=N) the problem occurs (or rather, how many parallel jobs you can use without running into problems)?
If so, would you be interested in trying with the binary replacement I mentioned (slibtool)? That should now work.
FWIW, VLC only uses libtool for the linking steps (via a rather complicated mechanism), so there is little to be gained from using it in terms of performance - but "builds" vs. "fails to build" would be an infinite gain in that department ;)
EDIT: I tried building with build.jobs=32 and that worked fine. That was on Linux though; will try the same on my Mac when I get the chance.
Interesting, a locking issue in libtool? Reminds me that I'm testing a binary drop-in replacement for that script; I should try it with VLC (evidently there are other advantages to using a compiled alternative).
Anyway, I've never seen this on my lowly 4-core machines. Could you please test with build.jobs=4, or if "many" means "much" more than 4 cores, could you try to reduce the job count until your issue disappears? VLC is a large enough project not to disable parallel building just because it fails with (too) "many cores".