[MacPorts] #71481: portaudio @20240308-88ab584e +universal Undefined symbols for architecture x86_64

MacPorts noreply at macports.org
Mon Dec 16 13:57:27 UTC 2024


#71481: portaudio @20240308-88ab584e +universal Undefined symbols for architecture
x86_64
------------------------+----------------------
  Reporter:  adamscott  |      Owner:  ra1nb0w
      Type:  defect     |     Status:  assigned
  Priority:  Normal     |  Milestone:
 Component:  ports      |    Version:  2.10.5
Resolution:             |   Keywords:  sequoia
      Port:  portaudio  |
------------------------+----------------------

Comment (by adamscott):

 you'd have to examine those objects in the build folder to see if they
 really are fat objects -- and if they are, try running that step manually
 with the added arch flags perhaps.

 Only `.libs/libportaudiocpp.0.dylib-master.o` seems to be arm64 only.

 {{{
 ❯ file .libs/libportaudiocpp.0.dylib-master.o  .libs/BlockingStream.o
 .libs/CallbackInterface.o .libs/CallbackStream.o
 .libs/CFunCallbackStream.o .libs/CppFunCallbackStream.o .libs/Device.o
 .libs/DirectionSpecificStreamParameters.o .libs/Exception.o
 .libs/HostApi.o .libs/InterfaceCallbackStream.o
 .libs/MemFunCallbackStream.o .libs/Stream.o .libs/StreamParameters.o
 .libs/System.o .libs/SystemDeviceIterator.o .libs/SystemHostApiIterator.o
 .libs/libportaudiocpp.0.dylib-master.o:    Mach-O 64-bit object arm64
 .libs/BlockingStream.o:                    Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/BlockingStream.o (for architecture x86_64):       Mach-O 64-bit
 object x86_64
 .libs/BlockingStream.o (for architecture arm64):        Mach-O 64-bit
 object arm64
 .libs/CallbackInterface.o:                 Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/CallbackInterface.o (for architecture x86_64):    Mach-O 64-bit
 object x86_64
 .libs/CallbackInterface.o (for architecture arm64):     Mach-O 64-bit
 object arm64
 .libs/CallbackStream.o:                    Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/CallbackStream.o (for architecture x86_64):       Mach-O 64-bit
 object x86_64
 .libs/CallbackStream.o (for architecture arm64):        Mach-O 64-bit
 object arm64
 .libs/CFunCallbackStream.o:                Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/CFunCallbackStream.o (for architecture x86_64):   Mach-O 64-bit
 object x86_64
 .libs/CFunCallbackStream.o (for architecture arm64):    Mach-O 64-bit
 object arm64
 .libs/CppFunCallbackStream.o:              Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/CppFunCallbackStream.o (for architecture x86_64): Mach-O 64-bit
 object x86_64
 .libs/CppFunCallbackStream.o (for architecture arm64):  Mach-O 64-bit
 object arm64
 .libs/Device.o:                            Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/Device.o (for architecture x86_64):       Mach-O 64-bit object
 x86_64
 .libs/Device.o (for architecture arm64):        Mach-O 64-bit object arm64
 .libs/DirectionSpecificStreamParameters.o: Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/DirectionSpecificStreamParameters.o (for architecture x86_64):
 Mach-O 64-bit object x86_64
 .libs/DirectionSpecificStreamParameters.o (for architecture arm64):
 Mach-O 64-bit object arm64
 .libs/Exception.o:                         Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/Exception.o (for architecture x86_64):    Mach-O 64-bit object
 x86_64
 .libs/Exception.o (for architecture arm64):     Mach-O 64-bit object arm64
 .libs/HostApi.o:                           Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/HostApi.o (for architecture x86_64):      Mach-O 64-bit object
 x86_64
 .libs/HostApi.o (for architecture arm64):       Mach-O 64-bit object arm64
 .libs/InterfaceCallbackStream.o:           Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/InterfaceCallbackStream.o (for architecture x86_64):      Mach-O
 64-bit object x86_64
 .libs/InterfaceCallbackStream.o (for architecture arm64):       Mach-O
 64-bit object arm64
 .libs/MemFunCallbackStream.o:              Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/MemFunCallbackStream.o (for architecture x86_64): Mach-O 64-bit
 object x86_64
 .libs/MemFunCallbackStream.o (for architecture arm64):  Mach-O 64-bit
 object arm64
 .libs/Stream.o:                            Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/Stream.o (for architecture x86_64):       Mach-O 64-bit object
 x86_64
 .libs/Stream.o (for architecture arm64):        Mach-O 64-bit object arm64
 .libs/StreamParameters.o:                  Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/StreamParameters.o (for architecture x86_64):     Mach-O 64-bit
 object x86_64
 .libs/StreamParameters.o (for architecture arm64):      Mach-O 64-bit
 object arm64
 .libs/System.o:                            Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/System.o (for architecture x86_64):       Mach-O 64-bit object
 x86_64
 .libs/System.o (for architecture arm64):        Mach-O 64-bit object arm64
 .libs/SystemDeviceIterator.o:              Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/SystemDeviceIterator.o (for architecture x86_64): Mach-O 64-bit
 object x86_64
 .libs/SystemDeviceIterator.o (for architecture arm64):  Mach-O 64-bit
 object arm64
 .libs/SystemHostApiIterator.o:             Mach-O universal binary with 2
 architectures: [x86_64:Mach-O 64-bit object x86_64] [arm64:Mach-O 64-bit
 object arm64]
 .libs/SystemHostApiIterator.o (for architecture x86_64):        Mach-O
 64-bit object x86_64
 .libs/SystemHostApiIterator.o (for architecture arm64): Mach-O 64-bit
 object arm64
 }}}

 It seems that `.libs/libportaudiocpp.0.dylib-master.o` is related to
 `libportaudiocpp.la` in this build line:

 {{{
 :info:build /bin/sh ../libtool  --tag=CXX   --mode=link /usr/bin/clang++
 -pipe -Os -stdlib=libc++
 -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.sdk
 -arch arm64 -arch x86_64 -version-info 0:12:0 -no-undefined
 -L/opt/local/lib -Wl,-headerpad_max_install_names
 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.sdk
 -arch arm64 -arch x86_64 -o libportaudiocpp.la -rpath /opt/local/lib
 BlockingStream.lo CallbackInterface.lo CallbackStream.lo
 CFunCallbackStream.lo CppFunCallbackStream.lo Device.lo
 DirectionSpecificStreamParameters.lo Exception.lo HostApi.lo
 InterfaceCallbackStream.lo MemFunCallbackStream.lo Stream.lo
 StreamParameters.lo System.lo SystemDeviceIterator.lo
 SystemHostApiIterator.lo ../../../lib/libportaudio.la
 }}}

 Here's the content of `libportaudiocpp.la`:

 {{{
 # libportaudiocpp.la - a libtool library file
 # Generated by libtool (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1
 #
 # Please DO NOT delete this file!
 # It is necessary for linking the library.

 # The name that we can dlopen(3).
 dlname='libportaudiocpp.0.dylib'

 # Names of this library.
 library_names='libportaudiocpp.0.dylib libportaudiocpp.dylib'

 # The name of the static archive.
 old_library='libportaudiocpp.a'

 # Linker flags that can not go in dependency_libs.
 inherited_linker_flags='  -framework CoreAudio -framework AudioToolbox
 -framework AudioUnit -framework CoreFoundation -framework CoreServices'

 # Libraries that this one depends upon.
 dependency_libs=' -L/opt/local/lib
 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_portaudio/portaudio/work
 /portaudio-88ab584e7bf4358599744cd662cfbc978f41efbf/lib/libportaudio.la'

 # Names of additional weak libraries provided by this library
 weak_library_names=''

 # Version information for libportaudiocpp.
 current=0
 age=0
 revision=12

 # Is this an already installed library?
 installed=no

 # Should we warn about portability when linking against -modules?
 shouldnotlink=no

 # Files to dlopen/dlpreopen
 dlopen=''
 dlpreopen=''

 # Directory that this library needs to be installed in:
 libdir='/opt/local/lib'
 relink_command=""

 }}}

-- 
Ticket URL: <https://trac.macports.org/ticket/71481#comment:9>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list