[MacPorts] #72367: openh264 @2.6.0 +universal won't compile in apple silicon (was: openh264 @ 2.6.0 +universal won't compile in apple silicon)

MacPorts noreply at macports.org
Sat Apr 19 03:42:02 UTC 2025


#72367: openh264 @2.6.0 +universal won't compile in apple silicon
-----------------------+-----------------------
  Reporter:  AlexVaq   |      Owner:  (none)
      Type:  defect    |     Status:  new
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:  2.10.5
Resolution:            |   Keywords:  universal
      Port:  openh264  |
-----------------------+-----------------------

Old description:

> Compilation fails since the compiler tries to compile specific assembler
> files for ARM64 as universal (with both -arch arm64 -arch x86_64 flags).
> Removing the -arch x86_64 flag allows meson to move forward with the
> compilation, but the linker fails complaining about missing symbols,
> since the x86_64 assembler files are never added to the build.
>
> A small piece of the log file, when the error happens (it's kilometric,
> since it complains for EVERY assembler mnemonic), including the command
> executed for compilation (notice both arch flags):
>
> info:build [12/175] /usr/bin/clang -Icodec/common/libcommon.a.p
> -Icodec/common -I../openh264-2.6.0/codec/common -Icodec/api/wels
> -I../openh264-2.6.0/codec/api/wels -I../openh264-2.6.0/codec/common/inc
> -I../openh264-2.6.0/codec/common/arm64 -I/opt/local/include
> -fdiagnostics-color=always -Wall -Winvalid-pch -O2 -g -DHAVE_NEON_AARCH64
> -pipe -Os
> -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.sdk
> -arch arm64 -arch x86_64
> -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.sdk
> -MD -MQ codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o -MF
> codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o.d -o
> codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o -c
> ../openh264-2.6.0/codec/common/arm64/copy_mb_aarch64_neon.S
>
> :info:build FAILED:
> codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o
>
> :info:build /usr/bin/clang -Icodec/common/libcommon.a.p -Icodec/common
> -I../openh264-2.6.0/codec/common -Icodec/api/wels
> -I../openh264-2.6.0/codec/api/wels -I../openh264-2.6.0/codec/common/inc
> -I../openh264-2.6.0/codec/common/arm64 -I/opt/local/include
> -fdiagnostics-color=always -Wall -Winvalid-pch -O2 -g -DHAVE_NEON_AARCH64
> -pipe -Os
> -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.sdk
> -arch arm64 -arch x86_64
> -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.sdk
> -MD -MQ codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o -MF
> codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o.d -o
> codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o -c
> ../openh264-2.6.0/codec/common/arm64/copy_mb_aarch64_neon.S
>
> :info:build <instantiation>:1:1: error: invalid instruction mnemonic
> 'sxtw'
>
> :info:build sxtw x1, w1
>
> :info:build ^~~~
>
> :info:build
> ../openh264-2.6.0/codec/common/arm64/copy_mb_aarch64_neon.S:110:5: note:
> while in macro instantiation
>
> :info:build     SIGN_EXTENSION x1,w1
>
> :info:build     ^
>
> :info:build <instantiation>:1:1: error: invalid instruction mnemonic
> 'sxtw'
>
> :info:build sxtw x3, w3
>
> :info:build ^~~~
>
> :info:build
> ../openh264-2.6.0/codec/common/arm64/copy_mb_aarch64_neon.S:111:5: note:
> while in macro instantiation
>
> :info:build     SIGN_EXTENSION x3,w3
>
> :info:build     ^
>
> :info:build <instantiation>:2:10: error: unknown token in expression
>
> :info:build     ld1 {v0.8b}, [x2], x3
>
> :info:build          ^
> ...

New description:

 Compilation fails since the compiler tries to compile specific assembler
 files for ARM64 as universal (with both -arch arm64 -arch x86_64 flags).
 Removing the -arch x86_64 flag allows meson to move forward with the
 compilation, but the linker fails complaining about missing symbols, since
 the x86_64 assembler files are never added to the build.

 A small piece of the log file, when the error happens (it's kilometric,
 since it complains for EVERY assembler mnemonic), including the command
 executed for compilation (notice both arch flags):

 {{{
 info:build [12/175] /usr/bin/clang -Icodec/common/libcommon.a.p
 -Icodec/common -I../openh264-2.6.0/codec/common -Icodec/api/wels
 -I../openh264-2.6.0/codec/api/wels -I../openh264-2.6.0/codec/common/inc
 -I../openh264-2.6.0/codec/common/arm64 -I/opt/local/include -fdiagnostics-
 color=always -Wall -Winvalid-pch -O2 -g -DHAVE_NEON_AARCH64 -pipe -Os
 -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.sdk
 -arch arm64 -arch x86_64
 -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.sdk
 -MD -MQ codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o -MF
 codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o.d -o
 codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o -c
 ../openh264-2.6.0/codec/common/arm64/copy_mb_aarch64_neon.S
 :info:build FAILED:
 codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o
 :info:build /usr/bin/clang -Icodec/common/libcommon.a.p -Icodec/common
 -I../openh264-2.6.0/codec/common -Icodec/api/wels
 -I../openh264-2.6.0/codec/api/wels -I../openh264-2.6.0/codec/common/inc
 -I../openh264-2.6.0/codec/common/arm64 -I/opt/local/include -fdiagnostics-
 color=always -Wall -Winvalid-pch -O2 -g -DHAVE_NEON_AARCH64 -pipe -Os
 -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.sdk
 -arch arm64 -arch x86_64
 -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.sdk
 -MD -MQ codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o -MF
 codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o.d -o
 codec/common/libcommon.a.p/arm64_copy_mb_aarch64_neon.S.o -c
 ../openh264-2.6.0/codec/common/arm64/copy_mb_aarch64_neon.S
 :info:build <instantiation>:1:1: error: invalid instruction mnemonic
 'sxtw'
 :info:build sxtw x1, w1
 :info:build ^~~~
 :info:build
 ../openh264-2.6.0/codec/common/arm64/copy_mb_aarch64_neon.S:110:5: note:
 while in macro instantiation
 :info:build     SIGN_EXTENSION x1,w1
 :info:build     ^
 :info:build <instantiation>:1:1: error: invalid instruction mnemonic
 'sxtw'
 :info:build sxtw x3, w3
 :info:build ^~~~
 :info:build
 ../openh264-2.6.0/codec/common/arm64/copy_mb_aarch64_neon.S:111:5: note:
 while in macro instantiation
 :info:build     SIGN_EXTENSION x3,w3
 :info:build     ^
 :info:build <instantiation>:2:10: error: unknown token in expression
 :info:build     ld1 {v0.8b}, [x2], x3
 :info:build          ^
 ...
 }}}

--

Comment (by ryandesign):

 Please attach the entire (compressed) main.log file.

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


More information about the macports-tickets mailing list