Continuing from #46 which doesn't seem to be the culprit here:
VLC is one of the projects I've tried that fail to build when using rlibtool as a drop-in replacement for libtool. If I were to guess I'd say that the logic gets confused by the fact that VLC has an internal static library (libcompat.a), and starts to expect a dependency file for a hypothetical static version of a normal shared library of which I'm not even certain that VLC supports building.
rlibtool
libtool
It's huge, but I'm attaching an entire build log (done after doing a regular build with libtool followed by a make clean). <img alt="vlc2-build.log" src="/cross/slibtool/issue/raw/files/b431902fe3c7844815c9e5fcd24f677fa0e9ff96af0406ea858dbd241f5ef18f-vlc2-build.log" />
make clean
The venom is at the tail:
/opt/local/bin/rlibtool --tag=CC --mode=link ccache /opt/local/bin/clang-mp-5.0 -O3 -march=native -g -mdynamic-no -pic -arch x86_64 -D_INTL_REDIRECT_MACROS -I/Volumes/VMs/MPbuild/_Volumes_Debian_MP9_site-ports_multimedia_VLC2/VLC2/ work/vlc-2.2.8/contrib/include -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -Werror-implicit-function-declaration -pipe -fvisibility=hidden -O3 -fno-math-errno -funsafe-math-optimizations -funroll-loops -fomit-frame-pointer -avoid-version -module -export-symbols-regex ^vlc_entry -shrext .dylib -no-undefined ../compat/libcompat.la ../src/libvlccore.la -L/opt/local/lib -Wl,-headerpad_max_install_names -L/opt/local/lib/samba3 -arch x86_64 -Wl,-headerpad_max_install_names -L/Volumes/VMs/MPbuild/_Volumes_Debian_MP9_site-ports_multimedia_VLC2/VLC2/work/vlc-2.2.8/contrib/lib -o libattachment_plugin.la -rpath /opt/local/libexec/vlc2/lib/vlc/plugins/access access/attachment.lo rlibtool: lconf: {.name="libtool"}. rlibtool: fdcwd: {.fdcwd=AT_FDCWD, .realpath="/Volumes/VMs/MPbuild/_Volumes_Debian_MP9_site-ports_multimedia_VLC2/VLC2/work/vlc-2.2.8/modules"}. rlibtool: lconf: fstatat(AT_FDCWD,".",...) = 0 {.st_dev = 16777224, .st_ino = 2570501}. rlibtool: lconf: openat(AT_FDCWD,"libtool",O_RDONLY,0) = -1 [ENOENT]. rlibtool: lconf: openat(AT_FDCWD,"../",O_DIRECTORY,0) = 6. rlibtool: lconf: fstat(6,...) = 0 {.st_dev = 16777224, .st_ino = 2569145}. rlibtool: lconf: openat(6,"libtool",O_RDONLY,0) = 7. rlibtool: lconf: found "libtool". rlibtool: link: ln -s libattachment_plugin.dylib.def .libs/libattachment_plugin.dylib.def.default rlibtool: link: ln -s libattachment_plugin.dylib.def.default .libs/libattachment_plugin.dylib.def.host rlibtool: link: ln -s /dev/null .libs/libattachment_plugin.a.disabled rlibtool: link: ln -s libattachment_plugin.la .libs/libattachment_plugin.la.shrext.dylib rlibtool: link: ln -s libattachment_plugin.la.shrext.dylib .libs/libattachment_plugin.la.shrext rlibtool: error logged in slbt_get_deps_meta(), line 128: path not found: ../src/.libs/libvlccore.a.slibtool.deps. rlibtool: < returned to > slbt_exec_link_create_library(), line 1452. rlibtool: < returned to > slbt_exec_link(), line 2164. make[4]: *** [libattachment_plugin.la] Error 2
sidebar: why does slbt_exec_link_adjust_argument_vector() emit --whole-archive when fwholearchive is false?
slbt_exec_link_adjust_argument_vector()
--whole-archive
fwholearchive
Continuing from #46 which doesn't seem to be the culprit here: VLC is one of the projects I've tried that fail to build when using rlibtool as a drop-in replacement for libtool. If I were to guess I'd say that the logic gets confused by the fact that VLC has an internal static library (libcompat.a), and starts to expect a dependency file for a hypothetical static version of a normal shared library of which I'm not even certain that VLC supports building. It's huge, but I'm attaching an entire build log (done after doing a regular build with libtool followed by a make clean). <img alt="vlc2-build.log" src="/cross/slibtool/issue/raw/files/b431902fe3c7844815c9e5fcd24f677fa0e9ff96af0406ea858dbd241f5ef18f-vlc2-build.log" /> The venom is at the tail: /opt/local/bin/rlibtool --tag=CC --mode=link ccache /opt/local/bin/clang-mp-5.0 -O3 -march=native -g -mdynamic-no -pic -arch x86_64 -D_INTL_REDIRECT_MACROS -I/Volumes/VMs/MPbuild/_Volumes_Debian_MP9_site-ports_multimedia_VLC2/VLC2/ work/vlc-2.2.8/contrib/include -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -Werror-implicit-function-declaration -pipe -fvisibility=hidden -O3 -fno-math-errno -funsafe-math-optimizations -funroll-loops -fomit-frame-pointer -avoid-version -module -export-symbols-regex ^vlc_entry -shrext .dylib -no-undefined ../compat/libcompat.la ../src/libvlccore.la -L/opt/local/lib -Wl,-headerpad_max_install_names -L/opt/local/lib/samba3 -arch x86_64 -Wl,-headerpad_max_install_names -L/Volumes/VMs/MPbuild/_Volumes_Debian_MP9_site-ports_multimedia_VLC2/VLC2/work/vlc-2.2.8/contrib/lib -o libattachment_plugin.la -rpath /opt/local/libexec/vlc2/lib/vlc/plugins/access access/attachment.lo rlibtool: lconf: {.name="libtool"}. rlibtool: fdcwd: {.fdcwd=AT_FDCWD, .realpath="/Volumes/VMs/MPbuild/_Volumes_Debian_MP9_site-ports_multimedia_VLC2/VLC2/work/vlc-2.2.8/modules"}. rlibtool: lconf: fstatat(AT_FDCWD,".",...) = 0 {.st_dev = 16777224, .st_ino = 2570501}. rlibtool: lconf: openat(AT_FDCWD,"libtool",O_RDONLY,0) = -1 [ENOENT]. rlibtool: lconf: openat(AT_FDCWD,"../",O_DIRECTORY,0) = 6. rlibtool: lconf: fstat(6,...) = 0 {.st_dev = 16777224, .st_ino = 2569145}. rlibtool: lconf: openat(6,"libtool",O_RDONLY,0) = 7. rlibtool: lconf: found "libtool". rlibtool: link: ln -s libattachment_plugin.dylib.def .libs/libattachment_plugin.dylib.def.default rlibtool: link: ln -s libattachment_plugin.dylib.def.default .libs/libattachment_plugin.dylib.def.host rlibtool: link: ln -s /dev/null .libs/libattachment_plugin.a.disabled rlibtool: link: ln -s libattachment_plugin.la .libs/libattachment_plugin.la.shrext.dylib rlibtool: link: ln -s libattachment_plugin.la.shrext.dylib .libs/libattachment_plugin.la.shrext rlibtool: error logged in slbt_get_deps_meta(), line 128: path not found: ../src/.libs/libvlccore.a.slibtool.deps. rlibtool: < returned to > slbt_exec_link_create_library(), line 1452. rlibtool: < returned to > slbt_exec_link(), line 2164. make[4]: *** [libattachment_plugin.la] Error 2
That's kind of interesting. Can you please paste the output of:
$ ls -lia /Volumes/VMs/MPbuild/_Volumes_Debian_MP9_site-ports_multimedia_VLC2/VLC2/work/vlc-2.2.8/src
ls -lia /Volumes/VMs/MPbuild/_Volumes_Debian_MP9_site-ports_multimedia_VLC2/VLC2/work/vlc-2.2.8/src
The function-internal fwholearchive variable detects whether the command already contains an "active" -Wl,--whole-archive. When it is false, that means we need to add it; when it's true, that means it is already there and so we don't.
-Wl,--whole-archive
false
true
Ah, yes. And you're only doing that when the entire archive has to be pulled in (e.g. when creating a shared library from it)? ;) It could be tricky to adapt this to Apple's syntax but I guess I don't need to look beyond the presence of either "-all_load" or "-force_load" (without its argument) since you don't check if the archive being pulled in whole by the command is indeed the same as you'd be pulling in.
"-all_load"
"-force_load"
I'll paste the requested output later, but I can affirm that the file indeed isn't there. From memory, there is a file indicating that building the static version of the library is disabled.
That's kind of interesting. Can you please paste the output of: $ ls -lia /Volumes/VMs/MPbuild/_Volumes_Debian_MP9_site-ports_multimedia_VLC2/VLC2/work/vlc-2.2.8/src
total 120 2570504 drwxr-xr-x 22 bertin admin 1462 Feb 12 14:48 . 2569145 drwxr-xr-x 21 bertin admin 1972 Feb 12 14:48 .. 2582540 drwxr-xr-x 2 bertin admin 238 Feb 12 14:48 .deps 6326539 drwxr-xr-x 2 bertin admin 612 Feb 12 14:48 .libs 2583660 -rw-r--r-- 1 bertin admin 130485 Oct 27 2020 Makefile 2583661 -rw-r--r-- 1 bertin admin 14403 Nov 21 2017 Makefile.am 2583662 -rw-r--r-- 1 bertin admin 120325 Oct 27 2020 Makefile.in 2582542 drwxr-xr-x 3 bertin admin 238 Oct 27 2020 android 2582543 drwxr-xr-x 4 bertin admin 544 Feb 12 14:48 audio_output 2583663 -rwxr-xr-x 1 bertin admin 560 Jun 14 2014 check_headers 2582544 drwxr-xr-x 4 bertin admin 782 Feb 12 14:48 config 2582545 drwxr-xr-x 4 bertin admin 510 Feb 12 14:48 darwin 2582546 drwxr-xr-x 4 bertin admin 306 Feb 12 14:48 extras 2582547 drwxr-xr-x 4 bertin admin 2244 Feb 12 14:48 input 2582548 drwxr-xr-x 4 bertin admin 306 Feb 12 14:48 interface 2583664 -rw-r--r-- 1 bertin admin 119284 Apr 13 2015 libvlc-module.c 6326551 -rw-r--r-- 1 bertin admin 138 Feb 12 14:48 libvlc-module.lo 2583666 -rw-r--r-- 1 bertin admin 21151 Nov 22 2015 libvlc.c 2583667 -rw-r--r-- 1 bertin admin 6914 Nov 16 2014 libvlc.h 6326545 -rw-r--r-- 1 bertin admin 124 Feb 12 14:48 libvlc.lo 2583669 -rw-r--r-- 1 bertin admin 953 Mar 8 2017 libvlc_win32_rc.rc.in 6327375 -rw-r--r-- 1 bertin admin 450 Feb 12 14:48 libvlccore.la 2583671 -rw-r--r-- 1 bertin admin 11935 Nov 16 2014 libvlccore.sym 2582549 drwxr-xr-x 4 bertin admin 2380 Feb 12 14:48 misc 2583672 -rw-r--r-- 1 bertin admin 10344 Nov 16 2014 missing.c 6326557 -rw-r--r-- 1 bertin admin 126 Feb 12 14:48 missing.lo 2582550 drwxr-xr-x 4 bertin admin 544 Feb 12 14:48 modules 2582552 drwxr-xr-x 4 bertin admin 646 Feb 12 14:48 network 2582553 drwxr-xr-x 3 bertin admin 374 Oct 27 2020 os2 2582554 drwxr-xr-x 4 bertin admin 1190 Feb 12 14:48 playlist 2582555 drwxr-xr-x 4 bertin admin 680 Feb 12 14:48 posix 2583674 -rw-r--r-- 1 bertin admin 44 Mar 13 2021 revision.c 6326563 -rw-r--r-- 1 bertin admin 128 Feb 12 14:48 revision.lo 2583676 -rw-r--r-- 1 bertin admin 8 Mar 13 2021 revision.txt 2582556 drwxr-xr-x 4 bertin admin 476 Feb 12 14:48 stream_output 2582557 drwxr-xr-x 3 bertin admin 408 Oct 27 2020 test 2582558 drwxr-xr-x 4 bertin admin 612 Feb 12 14:48 text 2583677 -rw-r--r-- 1 bertin admin 2071 Jun 14 2014 version.c 6326569 -rw-r--r-- 1 bertin admin 126 Feb 12 14:48 version.lo 2582559 drwxr-xr-x 4 bertin admin 1462 Feb 12 14:48 video_output 6327385 -rw-r--r-- 1 bertin admin 718 Feb 12 14:48 vlc-plugin.pc 2583680 -rw-r--r-- 1 bertin admin 612 Jun 14 2014 vlc-plugin.pc.in 2582560 drwxr-xr-x 3 bertin admin 408 Oct 27 2020 win32
Bonus:
> find vlc-2.2.8/ -name "lib*.*" | xargs ll -trd | fgrep 'Feb 12' -rw-r--r-- 1 bertin admin 449 Feb 12 14:48 vlc-2.2.8//compat/libcompat.la lrwxr-xr-x 1 bertin admin 9 Feb 12 14:48 vlc-2.2.8//compat/.libs/libcompat.so.disabled -> /dev/null lrwxr-xr-x 1 bertin admin 24 Feb 12 14:48 vlc-2.2.8//compat/.libs/libcompat.so.def.host -> libcompat.so.def.default lrwxr-xr-x 1 bertin admin 16 Feb 12 14:48 vlc-2.2.8//compat/.libs/libcompat.so.def.default -> libcompat.so.def lrwxr-xr-x 1 bertin admin 9 Feb 12 14:48 vlc-2.2.8//compat/.libs/libcompat.so.def -> /dev/null lrwxr-xr-x 1 bertin admin 15 Feb 12 14:48 vlc-2.2.8//compat/.libs/libcompat.lai -> ../libcompat.la lrwxr-xr-x 1 bertin admin 15 Feb 12 14:48 vlc-2.2.8//compat/.libs/libcompat.la -> ../libcompat.la -rw-r--r-- 1 bertin admin 143 Feb 12 14:48 vlc-2.2.8//compat/.libs/libcompat.a.slibtool.deps -rw-r--r-- 1 bertin admin 24184 Feb 12 14:48 vlc-2.2.8//compat/.libs/libcompat.a -rw-r--r-- 1 bertin admin 124 Feb 12 14:48 vlc-2.2.8//src/libvlc.lo -rw-r--r-- 1 bertin admin 138 Feb 12 14:48 vlc-2.2.8//src/libvlc-module.lo -rw-r--r-- 1 bertin admin 39148 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlc.o -rw-r--r-- 1 bertin admin 119664 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlc-module.o -rw-r--r-- 1 bertin admin 18634 Feb 12 14:48 vlc-2.2.8//src/.deps/libvlc.Plo -rw-r--r-- 1 bertin admin 15876 Feb 12 14:48 vlc-2.2.8//src/.deps/libvlc-module.Plo -rw-r--r-- 1 bertin admin 127 Feb 12 14:48 vlc-2.2.8//src/extras/libc.lo -rw-r--r-- 1 bertin admin 11332 Feb 12 14:48 vlc-2.2.8//src/extras/.libs/libc.o -rw-r--r-- 1 bertin admin 15306 Feb 12 14:48 vlc-2.2.8//src/extras/.deps/libc.Plo lrwxr-xr-x 1 bertin admin 27 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlccore.so.slibtool.rpath -> /opt/local/libexec/vlc2/lib lrwxr-xr-x 1 bertin admin 25 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlccore.so.def.host -> libvlccore.so.def.default lrwxr-xr-x 1 bertin admin 17 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlccore.so.def.default -> libvlccore.so.def lrwxr-xr-x 1 bertin admin 9 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlccore.a.disabled -> /dev/null -rw-r--r-- 1 bertin admin 450 Feb 12 14:48 vlc-2.2.8//src/libvlccore.la -rw-r--r-- 1 bertin admin 396 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlccore.so.slibtool.deps lrwxr-xr-x 1 bertin admin 9 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlccore.so.def -> /dev/null -rwxr-xr-x 1 bertin admin 1018816 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlccore.so.8.0.1 lrwxr-xr-x 1 bertin admin 19 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlccore.so.8 -> libvlccore.so.8.0.1 lrwxr-xr-x 1 bertin admin 19 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlccore.so -> libvlccore.so.8.0.1 lrwxr-xr-x 1 bertin admin 16 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlccore.lai -> ../libvlccore.la lrwxr-xr-x 1 bertin admin 16 Feb 12 14:48 vlc-2.2.8//src/.libs/libvlccore.la -> ../libvlccore.la lrwxr-xr-x 1 bertin admin 23 Feb 12 14:48 vlc-2.2.8//modules/.libs/libattachment_plugin.la.shrext.dylib -> libattachment_plugin.la lrwxr-xr-x 1 bertin admin 36 Feb 12 14:48 vlc-2.2.8//modules/.libs/libattachment_plugin.la.shrext -> libattachment_plugin.la.shrext.dylib -rw-r--r-- 1 bertin admin 286 Feb 12 14:48 vlc-2.2.8//modules/.libs/libattachment_plugin.dylib.slibtool.deps lrwxr-xr-x 1 bertin admin 38 Feb 12 14:48 vlc-2.2.8//modules/.libs/libattachment_plugin.dylib.def.host -> libattachment_plugin.dylib.def.default lrwxr-xr-x 1 bertin admin 30 Feb 12 14:48 vlc-2.2.8//modules/.libs/libattachment_plugin.dylib.def.default -> libattachment_plugin.dylib.def lrwxr-xr-x 1 bertin admin 9 Feb 12 14:48 vlc-2.2.8//modules/.libs/libattachment_plugin.a.disabled -> /dev/null
(2nd time a reply just disappears !@#$(&^W$%R()
Works, but I'll need to retype my description of the new regression >:(
Metadata Update from @RJVB: - Issue status updated to: Closed (was: Open)
(2nd time a reply just disappears !@#$(&^W$%R() Works, but I'll need to retype my description of the new regression >:(
Grrr, and I wasn't even in the right issue...
Metadata Update from @RJVB: - Issue status updated to: Open (was: Closed)
Happened to me too a couple of times ... for all I can tell tell, after being idle for that long the session will expire, and pagure doesn't seem to have a mechanism for restoring the draft after the user has signed in again. That being said, pagure has been working great for the community, so no biggie :=)
@RJVB Is this issue still current?
@RJVB -- to second @orbea, is still issue still current?
This issue has most likely already been fixed by several recent commits, the latest of which is b48cb77. Closing for now, but feel free to reopen as needed.
Metadata Update from @midipix: - Issue status updated to: Closed (was: Open)
Login to comment on this ticket.