[FFmpeg-devel] commits ecee6af8bd and 4ac869ca2a break build for macOS

Christopher Degawa ccom at randomderp.com
Tue Dec 21 08:04:53 EET 2021


On Mon, Dec 20, 2021 at 7:53 PM Aman Karmani <ffmpeg at tmm1.net> wrote:

>
>
> On Mon, Dec 20, 2021 at 5:48 PM Christopher Degawa <ccom at randomderp.com>
> wrote:
>
>>
>>
>> On Mon, Dec 20, 2021 at 7:21 PM Aman Karmani <ffmpeg at tmm1.net> wrote:
>>
>>>
>>>
>>> On Mon, Dec 20, 2021 at 5:03 PM Helmut K. C. Tessarek <
>>> tessarek at evermeet.cx> wrote:
>>>
>>>> -----BEGIN PGP SIGNED MESSAGE-----
>>>> Hash: SHA512
>>>>
>>>> On 2021-12-20 19:11, Christopher Degawa wrote:
>>>> > So I've exported "LIBRARY_PATH" to
>>>>
>>>> I'm sorry to say, this is a workaround but hardly a solution.
>>>>
>>>
>>> No one said this is the solution. We are just trying to figure out what
>>> is going on, and this added information is very helpful in that effort.
>>>
>>>
>>>> Before these 2 commits all worked perfectly. Now it doesn't. Tweaking
>>>> the
>>>> build env is not a solution.
>>>> Next time someone commits something, are we supposed to tweak it again?
>>>> Where does it end?
>>>>
>>>
>>> I'm not sure what your point is. If you are having trouble with those
>>> commits, then you can use an older version?
>>>
>>> Or you can compile with `./configure --disable-metal` to disable the new
>>> feature.
>>>
>>> Obviously the code worked on both my and Ridley's computers. If it
>>> didn't work, we wouldn't have committed it.
>>>
>>> Once we figure out why some computers are using the wrong metal binary,
>>> then we can fix it and commit the fix to master as well.
>>>
>>
>>
>> Digging a bit into xcrun itself, looking at
>> https://real-world-systems.com/docs/xcrun.1.html, it says
>>
>> > The SDK which will be searched defaults to the most recent available
>> SDK
>>
>> and
>>
>> xcodebuild -version -sdk | head
>> iPhoneOS14.3.sdk - iOS 14.3 (iphoneos14.3)
>> SDKVersion: 14.3
>> Path:
>> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.3.sdk
>> PlatformVersion: 14.3
>>
>> Which I'm guessing might be the reason, but still doesn't really make
>> logical sense and running
>>
>> xcrun --verbose metal -v
>> ...
>> xcrun: note: SDKROOT =
>> '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'
>> ...
>> xcrun: note: lookup resolved in
>> '/var/folders/yf/4yc0fdvx7zv1t17w41kxmr0r0000gn/T/xcrun_db' :
>> '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/metal'
>> Apple LLVM version 31001.43 (metalfe-31001.43)
>> Target: air64-apple-darwin19.6.0
>> Thread model: posix
>> InstalledDir:
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/metal/ios/bin
>>
>> which also, doesn't make sense.
>>
>> exporting SDKROOT to `macosx` does make it show
>>
>> xcrun: note: SDKROOT =
>> '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk'
>>
>> xcrun: note: lookup resolved in
>> '/var/folders/yf/4yc0fdvx7zv1t17w41kxmr0r0000gn/T/xcrun_db' :
>> '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/metal'
>> Apple LLVM version 31001.143 (metalfe-31001.143)
>> Target: air64-apple-darwin19.6.0
>> Thread model: posix
>> InstalledDir:
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/metal/macos/bin
>>
>> so, I'm not sure what conclusion to bring from this.
>>
>
> Thanks for digging in and documenting this behavior.
>
> It seems like a bug in Xcode to me. Perhaps it's fixed in newer XC, which
> is why we're not seeing it?
>
> It may be worth filing a radar either way.
>
>

As an additional note, just spun up a new mac1.metal instance with macOS
10.15 to see if I could compile ffmpeg with nothing in the system other
than build tools and I am getting an error of

xcrun: error: unable to find utility "metal", not a developer tool or in
PATH

and realized that I can't even run xcodebuild because

xcodebuild --version
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer
directory '/Library/Developer/CommandLineTools' is a command line tools
instance


It might be better to first check if `$metalcc --version` even runs first
before enabling or even checking if metal works


More information about the ffmpeg-devel mailing list