Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#63330 closed defect (duplicate)

cctools @949.0.1_1 +llvmdev: otool does not work properly, due to incorrectly passed '-macho' option to llvm-objdump, causing some libraries to be built with @rpath references

Reported by: cave-canem Owned by: kencu (Ken)
Priority: Normal Milestone:
Component: ports Version: 2.6.99
Keywords: Cc: jeremyhu (Jeremy Huddleston Sequoia)
Port: cctools, ld64

Description (last modified by cave-canem)

The ffmpeg port builds successfully, but a runtime error occurs:

ffmpeg -version
dyld: Library not loaded: @rpath/libdav1d.5.dylib
  Referenced from: /opt/MacPorts/bin/ffmpeg
  Reason: image not found
Trace/BPT trap: 5
port -v installed dav1d
The following ports are currently installed:
  dav1d @0.9.1_0 (active) platform='darwin 13' archs='x86_64' date='2021-08-01T12:39:53+0300
sudo find -x / -name "libdav1d.5.dylib" -print
Password:
/opt/MacPorts/lib/libdav1d.5.dylib

That being said, ffmpeg @ 4.4_0 works without any problems:

ffmpeg -version
ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
built with clang version 10.0.1
configuration: --prefix=/opt/MacPorts --enable-swscale --enable-avfilter --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-librsvg --enable-libtheora --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libsoxr --enable-libspeex --enable-libass --enable-libbluray --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-libjack --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-indev=jack --enable-opencl --disable-outdev=xv --enable-audiotoolbox --enable-videotoolbox --enable-sdl2 --disable-securetransport --mandir=/opt/MacPorts/share/man --enable-shared --enable-pthreads --cc=/opt/MacPorts/bin/clang --enable-libdav1d --arch=x86_64 --enable-x86asm --enable-librtmp --enable-nonfree --enable-libfdk-aac
libavutil      56. 70.100 / 56. 70.100
libavcodec     58.134.100 / 58.134.100
libavformat    58. 76.100 / 58. 76.100
libavdevice    58. 13.100 / 58. 13.100
libavfilter     7.110.100 /  7.110.100
libavresample   4.  0.  0 /  4.  0.  0
libswscale      5.  9.100 /  5.  9.100
libswresample   3.  9.100 /  3.  9.100
port -v installed active and ffmpeg
The following ports are currently installed:
  ffmpeg @4.4_0+librtmp+nonfree+x11-gpl2 (active) platform='darwin 13' archs='x86_64' date='2021-05-25T12:28:51+0300'

Attachments (1)

dav1d_main.log.tar.xz (9.4 KB) - added by cave-canem 3 years ago.
dav1d_main.log.tar.xz

Download all attachments as: .zip

Change History (18)

comment:1 Changed 3 years ago by cave-canem

Description: modified (diff)

comment:2 Changed 3 years ago by cave-canem

Description: modified (diff)

comment:3 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: jeremyhu ctreleaven added; dbevans removed
Keywords: mavericks sierra added; Mavericks Sierra removed
Owner: set to dbevans
Port: dav1d added
Status: newassigned
Summary: Runtime error ffmpeg @4.4_2ffmpeg @4.4_2: dyld: Library not loaded: @rpath/libdav1d.5.dylib

Although it does not relate to this issue, if you are really running MacPorts 2.6.99, please run sudo port selfupdate to upgrade to 2.7.1.

comment:4 Changed 3 years ago by kencu (Ken)

could you show us what your dav1d library looks like? Here is mine:

$ otool -L /opt/local/lib/libdav1d.5.dylib
/opt/local/lib/libdav1d.5.dylib:
	/opt/local/lib/libdav1d.5.dylib (compatibility version 5.0.0, current version 5.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)

my ffmpeg binary has proper links, with no @rpath references:

$ otool -L /opt/local/bin/ffmpeg
/opt/local/bin/ffmpeg:
	/opt/local/lib/libavdevice.58.dylib (compatibility version 58.0.0, current version 58.13.100)
	/opt/local/lib/libavfilter.7.dylib (compatibility version 7.0.0, current version 7.110.100)
	/opt/local/lib/libavformat.58.dylib (compatibility version 58.0.0, current version 58.76.100)
	/opt/local/lib/libavcodec.58.dylib (compatibility version 58.0.0, current version 58.134.100)
	/opt/local/lib/libavresample.4.dylib (compatibility version 4.0.0, current version 4.0.0)
	/opt/local/lib/libpostproc.55.dylib (compatibility version 55.0.0, current version 55.9.100)
	/opt/local/lib/libswresample.3.dylib (compatibility version 3.0.0, current version 3.9.100)
	/opt/local/lib/libswscale.5.dylib (compatibility version 5.0.0, current version 5.9.100)
	/opt/local/lib/libavutil.56.dylib (compatibility version 56.0.0, current version 56.70.100)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1455.255.0)
	/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 492.0.0)
	/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
	/System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
	/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0)
	/System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1161.21.5)
	/opt/local/lib/libSDL2-2.0.0.dylib (compatibility version 15.0.0, current version 15.0.0)
	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
	/opt/local/lib/libfribidi.0.dylib (compatibility version 5.0.0, current version 5.0.0)
	/opt/local/lib/libass.9.dylib (compatibility version 11.0.0, current version 11.2.0)
	/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage (compatibility version 1.0.1, current version 5.0.0)
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1561.61.100)
	/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0)
	/opt/local/lib/libfontconfig.1.dylib (compatibility version 14.0.0, current version 14.0.0)
	/opt/local/lib/libfreetype.6.dylib (compatibility version 24.0.0, current version 24.4.0)
	/opt/local/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.8)
	/opt/local/lib/libmodplug.1.dylib (compatibility version 2.0.0, current version 2.0.0)
	/opt/local/lib/libbluray.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
	/opt/local/lib/libgnutls.30.dylib (compatibility version 59.0.0, current version 59.2.0)
	/opt/local/lib/libvpx.6.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/local/lib/libiconv.2.dylib (compatibility version 9.0.0, current version 9.1.0)
	/opt/local/lib/liblzma.5.dylib (compatibility version 8.0.0, current version 8.5.0)
	/opt/local/lib/libdav1d.5.dylib (compatibility version 5.0.0, current version 5.0.0)
	/opt/local/lib/librsvg-2.2.dylib (compatibility version 50.0.0, current version 50.0.0)
	/opt/local/lib/libgio-2.0.0.dylib (compatibility version 5801.0.0, current version 5801.3.0)
	/opt/local/lib/libgdk_pixbuf-2.0.0.dylib (compatibility version 4201.0.0, current version 4201.2.0)
	/opt/local/lib/libgobject-2.0.0.dylib (compatibility version 5801.0.0, current version 5801.3.0)
	/opt/local/lib/libglib-2.0.0.dylib (compatibility version 5801.0.0, current version 5801.3.0)
	/opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.5.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1455.255.0)
	/opt/local/lib/libcairo.2.dylib (compatibility version 11603.0.0, current version 11603.0.0)
	/opt/local/lib/libmp3lame.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/local/lib/libopenjp2.7.dylib (compatibility version 7.0.0, current version 2.4.0)
	/opt/local/lib/libopus.0.dylib (compatibility version 9.0.0, current version 9.0.0)
	/opt/local/lib/libspeex.1.dylib (compatibility version 7.0.0, current version 7.1.0)
	/opt/local/lib/libtheoraenc.1.dylib (compatibility version 3.0.0, current version 3.2.0)
	/opt/local/lib/libtheoradec.1.dylib (compatibility version 3.0.0, current version 3.4.0)
	/opt/local/lib/libogg.0.dylib (compatibility version 9.0.0, current version 9.4.0)
	/opt/local/lib/libvorbis.0.dylib (compatibility version 5.0.0, current version 5.9.0)
	/opt/local/lib/libvorbisenc.2.dylib (compatibility version 3.0.0, current version 3.12.0)
	/opt/local/lib/libx264.157.dylib (compatibility version 0.0.0, current version 0.0.0)
	/opt/local/lib/libx265.192.dylib (compatibility version 192.0.0, current version 192.0.0)
	/System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 822.37.0)
	/opt/local/lib/libsoxr.0.dylib (compatibility version 0.0.0, current version 0.1.2)

comment:5 Changed 3 years ago by cave-canem

/usr/bin/otool -L /opt/MacPorts/lib/libdav1d.5.dylib
/opt/MacPorts/lib/libdav1d.5.dylib:
	@rpath/libdav1d.5.dylib (compatibility version 5.0.0, current version 5.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
/usr/bin/otool -L /opt/MacPorts/bin/ffmpeg
/opt/MacPorts/bin/ffmpeg:
	/opt/MacPorts/lib/libMacportsLegacySupport.dylib (compatibility version 1.0.0, current version 1.0.3)
	/opt/MacPorts/lib/libavdevice.58.dylib (compatibility version 58.0.0, current version 58.13.100)
	/opt/MacPorts/lib/libavfilter.7.dylib (compatibility version 7.0.0, current version 7.110.100)
	/opt/MacPorts/lib/libavformat.58.dylib (compatibility version 58.0.0, current version 58.76.100)
	/opt/MacPorts/lib/libavcodec.58.dylib (compatibility version 58.0.0, current version 58.134.100)
	/opt/MacPorts/lib/libavresample.4.dylib (compatibility version 4.0.0, current version 4.0.0)
	/opt/MacPorts/lib/libswresample.3.dylib (compatibility version 3.0.0, current version 3.9.100)
	/opt/MacPorts/lib/libswscale.5.dylib (compatibility version 5.0.0, current version 5.9.100)
	/opt/MacPorts/lib/libavutil.56.dylib (compatibility version 56.0.0, current version 56.70.100)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1056.17.0)
	/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 492.0.0)
	/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
	/System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
	/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.8.0)
	/System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 600.0.0)
	/opt/MacPorts/lib/libxcb.1.dylib (compatibility version 3.0.0, current version 3.0.0)
	/opt/MacPorts/lib/libxcb-shm.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/MacPorts/lib/libxcb-shape.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/MacPorts/lib/libxcb-xfixes.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/MacPorts/lib/libSDL2-2.0.0.dylib (compatibility version 15.0.0, current version 15.0.0)
	/opt/MacPorts/lib/libfribidi.0.dylib (compatibility version 5.0.0, current version 5.0.0)
	/opt/MacPorts/lib/libass.9.dylib (compatibility version 11.0.0, current version 11.2.0)
	/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0)
	/opt/MacPorts/lib/libfontconfig.1.dylib (compatibility version 14.0.0, current version 14.0.0)
	/opt/MacPorts/lib/libfreetype.6.dylib (compatibility version 24.0.0, current version 24.4.0)
	/opt/MacPorts/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.8)
	/opt/MacPorts/lib/libmodplug.1.dylib (compatibility version 2.0.0, current version 2.0.0)
	/opt/MacPorts/lib/libbluray.2.dylib (compatibility version 7.0.0, current version 7.0.0)
	/opt/MacPorts/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
	/opt/MacPorts/lib/libgnutls.30.dylib (compatibility version 59.0.0, current version 59.2.0)
	/opt/MacPorts/lib/librtmp.1.dylib (compatibility version 0.0.0, current version 0.0.0)
	/opt/MacPorts/lib/libgmp.10.dylib (compatibility version 15.0.0, current version 15.1.0)
	/opt/MacPorts/lib/libhogweed.6.dylib (compatibility version 6.0.0, current version 6.4.0)
	/opt/MacPorts/lib/libnettle.8.dylib (compatibility version 8.0.0, current version 8.4.0)
	/opt/MacPorts/lib/libvpx.6.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/MacPorts/lib/libiconv.2.dylib (compatibility version 9.0.0, current version 9.1.0)
	/opt/MacPorts/lib/liblzma.5.dylib (compatibility version 8.0.0, current version 8.5.0)
	@rpath/libdav1d.5.dylib (compatibility version 5.0.0, current version 5.0.0)
	/opt/MacPorts/lib/librsvg-2.2.dylib (compatibility version 50.0.0, current version 50.0.0)
	/opt/MacPorts/lib/libgio-2.0.0.dylib (compatibility version 5801.0.0, current version 5801.3.0)
	/opt/MacPorts/lib/libgdk_pixbuf-2.0.0.dylib (compatibility version 4201.0.0, current version 4201.2.0)
	/opt/MacPorts/lib/libgobject-2.0.0.dylib (compatibility version 5801.0.0, current version 5801.3.0)
	/opt/MacPorts/lib/libglib-2.0.0.dylib (compatibility version 5801.0.0, current version 5801.3.0)
	/opt/MacPorts/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.5.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.17.0)
	/opt/MacPorts/lib/libcairo.2.dylib (compatibility version 11603.0.0, current version 11603.0.0)
	/opt/MacPorts/lib/libfdk-aac.2.dylib (compatibility version 3.0.0, current version 3.2.0)
	/opt/MacPorts/lib/libmp3lame.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/opt/MacPorts/lib/libopenjp2.7.dylib (compatibility version 7.0.0, current version 2.4.0)
	/opt/MacPorts/lib/libopus.0.dylib (compatibility version 9.0.0, current version 9.0.0)
	/opt/MacPorts/lib/libspeex.1.dylib (compatibility version 7.0.0, current version 7.1.0)
	/opt/MacPorts/lib/libtheoraenc.1.dylib (compatibility version 3.0.0, current version 3.2.0)
	/opt/MacPorts/lib/libtheoradec.1.dylib (compatibility version 3.0.0, current version 3.4.0)
	/opt/MacPorts/lib/libogg.0.dylib (compatibility version 9.0.0, current version 9.4.0)
	/opt/MacPorts/lib/libvorbis.0.dylib (compatibility version 5.0.0, current version 5.9.0)
	/opt/MacPorts/lib/libvorbisenc.2.dylib (compatibility version 3.0.0, current version 3.12.0)
	/System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 59.0.0)
	/opt/MacPorts/lib/libsoxr.0.dylib (compatibility version 0.0.0, current version 0.1.2)
	/opt/MacPorts/lib/libXv.1.dylib (compatibility version 2.0.0, current version 2.0.0)
	/opt/MacPorts/lib/libX11.6.dylib (compatibility version 11.0.0, current version 11.0.0)
	/opt/MacPorts/lib/libXext.6.dylib (compatibility version 11.0.0, current version 11.0.0)

comment:6 Changed 3 years ago by kencu (Ken)

so force a rebuild of dav1d please, and if you get a proper no-rpath id for it, force a rebuild of ffmpeg to pick that up.

if you get @rpath in dav1d again, please report back as that is what needs to be sorted out.

nothing to do with ffmpeg itself it seems.

comment:7 Changed 3 years ago by cave-canem

Hello Ken!

I seem to have found a bug (Heisenbug).

I built dav1d with mp-clang-devel (clang 13.0.0) and cctools @ 949.0.1_1 +llvmdev.

So, the point is cctools @ 949.0.1_1 +llvmdev:

which -a otool
/opt/MacPorts/bin/otool
/usr/bin/otool
ls -l /opt/MacPorts/bin/otool
lrwxr-xr-x  1 root  wheel  10 Jul 12 20:38 /opt/MacPorts/bin/otool -> llvm-otool
otool -L /opt/MacPorts/lib/libdav1d.5.dylib
llvm-objdump: Unknown command line argument '-macho'.  Try: '/opt/MacPorts/libexec/llvm-devel/bin/llvm-objdump --help'
llvm-objdump: Did you mean '-h'?
llvm-objdump: Unknown command line argument '-dylibs-used'.  Try: '/opt/MacPorts/libexec/llvm-devel/bin/llvm-objdump --help'
llvm-objdump: Did you mean '--dylibs-used'?
llvm-objdump: Unknown command line argument '-non-verbose'.  Try: '/opt/MacPorts/libexec/llvm-devel/bin/llvm-objdump --help'
llvm-objdump: Did you mean '--non-verbose'?
/usr/bin/otool -L /opt/MacPorts/lib/libdav1d.5.dylib
/opt/MacPorts/lib/libdav1d.5.dylib:
	@rpath/libdav1d.5.dylib (compatibility version 5.0.0, current version 5.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

If you select mp-clang-devel and cctools @ 949.0.1_1 +llvm10 when building libdav1d, then:

otool -L /opt/MacPorts/lib/libdav1d.5.dylib
/opt/MacPorts/lib/libdav1d.5.dylib:
	/opt/MacPorts/lib/libdav1d.5.dylib (compatibility version 5.0.0, current version 5.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

and everything is being built correctly.

comment:8 Changed 3 years ago by ctreleaven (Craig Treleaven)

@cave-canem, is there some particular reason you are using a compiler not specified in the port?

The build logs for dav1d 0.9.1 are available for now. The main.log for the OSX 10.9 builder is at https://build.macports.org/builders/ports-10.9_x86_64-builder/builds/155679/steps/install-port/logs/main.log

The configure phase starts with:

:notice:configure --->  Configuring dav1d
:debug:configure Preferred compilers: clang macports-clang-9.0 macports-clang-8.0 macports-clang-7.0 macports-clang-6.0 macports-clang-5.0 macports-clang-12 macports-clang-11 macports-clang-10 macports-clang-3.7 macports-clang-3.4
:debug:configure Using compiler 'MacPorts Clang 9.0'
:debug:configure Executing org.macports.configure (dav1d)
:debug:configure Environment: 
:debug:configure CC='/opt/local/bin/clang-mp-9.0'

When linking the libarary, it does include the directive '-install_name @rpath/libdav1d.5.dylib'. Unfortunately, I'm unable to find build logs for dav1d 0.9.0 to see if this has changed.

On the 10.9 builder, meson throws the following WARNING/error:

:info:build [113/114] /opt/local/Library/Frameworks/Python.framework/Versions/3.9/bin/meson --internal symbolextractor /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_dav1d/dav1d/work/build src/libdav1d.5.dylib src/libdav1d.5.dylib src/libdav1d.5.dylib.p/libdav1d.5.dylib.symbols 
:info:build WARNING: ['nm'] does not work. Relinking will always happen on source changes.
:info:build error: /Library/Developer/CommandLineTools/usr/bin/nm: invalid argument --
:info:build Usage: /Library/Developer/CommandLineTools/usr/bin/nm [-agnopruUmxjlfAP[s segname sectname] [-] [-t format] [[-arch <arch_flag>] ...] [file ...]

The 10.14 build log does not have such a report. I don't know much about meson internals but I would guess this is where the difference occurs. I'll check for this error on the 10.10, 10.11, etc builders.

comment:9 Changed 3 years ago by ctreleaven (Craig Treleaven)

The build logs for 10.6 through 10.9 all report the above warning/error related to nm; no such reports are in the 10.10 through 10.12 builds. All the affected builds use:

:debug:configure Using compiler 'MacPorts Clang 9.0'
:info:configure C compiler for the host machine: /opt/local/bin/clang-mp-9.0 (clang 9.0.1 "clang version 9.0.1 ")
:info:configure C linker for the host machine: /opt/local/bin/clang-mp-9.0 ld64 127.2

The installation stats for dav1d and ffmpeg both show a non-trivial number of installs on systems that are apparently affected. But there have been no other reports of failures. I don't have access to older systems to see if ffmpeg actually fails or not.

I suppose this could also be a newly introduced problem in meson, as well. I note that meson was updated to 0.58.1 a couple of months ago.

I'm not seeing an obvious way to fix dav1d. Please let me know if I'm missing something.

Last edited 3 years ago by ctreleaven (Craig Treleaven) (previous) (diff)

comment:10 Changed 3 years ago by cave-canem

Hello Craig Treleaven!

Yes, there are reasons (there are several of them):

  1. I hate to walk in formation.
  1. I am inexperienced, I am learning.
  1. Compilers of newer versions give more compact (optimized) code.

P.S.

In attachment detailed log the libdav1d building using mp-clang-devel and cctools @ 949.0.1_1 +llvm10

P.P.S

port -v installed meson
The following ports are currently installed:
  meson @0.58.1_0 (active) platform='darwin 13' archs='noarch' date='2021-06-30T18:59:52+0300'

Changed 3 years ago by cave-canem

Attachment: dav1d_main.log.tar.xz added

dav1d_main.log.tar.xz

comment:11 Changed 3 years ago by kencu (Ken)

Yes, the command line options accepted by llvm changed in version 11. That is exactly why we default to llvm10 in cctools, and why I removed llvm11+ as possible options for cctools:

$ port info cctools
cctools @949.0.1_1 (devel)
Variants:             [+]llvm10, llvm50, llvm60, llvm70, llvm80, llvm90,
                      llvmdev, xcode

however, I guess I didn't think about llvmdev when I did that, so I should remove llvmdev as an option too!

comment:12 Changed 3 years ago by ctreleaven (Craig Treleaven)

Interesting. You get quite different warnings from your set up:

:info:build [110/115] /opt/MacPorts/Library/Frameworks/Python.framework/Versions/3.9/bin/meson --internal symbolextractor /opt/MacPorts/var/macports/build/_opt_macports-ports_multimedia_dav1d/dav1d/work/build src/libdav1d.5.dylib src/libdav1d.5.dylib src/libdav1d.5.dylib.p/libdav1d.5.dylib.symbols 
:info:build WARNING: ['otool'] does not work. Relinking will always happen on source changes.
:info:build llvm-objdump: Unknown command line argument '-macho'.  Try: '/opt/MacPorts/libexec/llvm-devel/bin/llvm-objdump --help'
:info:build llvm-objdump: Did you mean '-h'?
:info:build llvm-objdump: Unknown command line argument '-private-headers'.  Try: '/opt/MacPorts/libexec/llvm-devel/bin/llvm-objdump --help'
:info:build llvm-objdump: Did you mean '--private-headers'?
:info:build llvm-objdump: Unknown command line argument '-non-verbose'.  Try: '/opt/MacPorts/libexec/llvm-devel/bin/llvm-objdump --help'
:info:build llvm-objdump: Did you mean '--non-verbose'?

I suppose I could use install_name_tool to overwrite any @rpath entries. Seems like a kludge, though.

comment:13 Changed 3 years ago by kencu (Ken)

I recall now that I left the cctools +llvmdev option available so that intrepid explorers like me could try that out (it's a devel version after all) and see where the errors and issues might arise.

So I'll leave it in the cctools port.

For this, you need to use cctools +llvm10, which is the well-trodden default path.

I would not think that putting individual fixes into ports using install_name_tool to work around this would make any sense.

In due course, cctools will be updated to a newer version that calls the newer llvm-objdump with the proper flags. That is the solution to the this, in the long run. I could have patched otool to send the right flags, but I did not because other llvm11 issues were also likely I though.

Last edited 3 years ago by kencu (Ken) (previous) (diff)

comment:14 Changed 3 years ago by kencu (Ken)

Cc: cave-canem ctreleaven removed
Keywords: mavericks sierra removed
Owner: changed from dbevans to kencu
Port: cctools ld64 added; ffmpeg dav1d removed
Summary: ffmpeg @4.4_2: dyld: Library not loaded: @rpath/libdav1d.5.dylibcctools @949.0.1_1 +llvmdev: otool does not work properly, causing some libraries to be built with @rpath references

comment:15 Changed 3 years ago by kencu (Ken)

Summary: cctools @949.0.1_1 +llvmdev: otool does not work properly, causing some libraries to be built with @rpath referencescctools @949.0.1_1 +llvmdev: otool does not work properly,"otool -L" does not work properly, due to incorrectly passed '-macho' option to llvm-objdump, causing some libraries to be built with @rpath references

comment:16 Changed 3 years ago by kencu (Ken)

Summary: cctools @949.0.1_1 +llvmdev: otool does not work properly,"otool -L" does not work properly, due to incorrectly passed '-macho' option to llvm-objdump, causing some libraries to be built with @rpath referencescctools @949.0.1_1 +llvmdev: otool does not work properly, due to incorrectly passed '-macho' option to llvm-objdump, causing some libraries to be built with @rpath references

comment:17 Changed 3 years ago by kencu (Ken)

Resolution: duplicate
Status: assignedclosed

same issue as #63448

Last edited 3 years ago by kencu (Ken) (previous) (diff)
Note: See TracTickets for help on using tickets.