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

Ridley Combs rcombs at rcombs.me
Tue Dec 21 09:39:48 EET 2021



> On Dec 21, 2021, at 00:04, Christopher Degawa <ccom at randomderp.com> wrote:
> 
> On Mon, Dec 20, 2021 at 7:53 PM Aman Karmani <ffmpeg at tmm1.net <mailto: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

Huh, TIL that the metal compiler doesn't exist without Xcode, but the metal framework does! Wacky. Anyway, this patch oughtta fix that (does more or less as you suggested); if this is all fine on your end, I'll go ahead and split this up into a few commits and send them to the list: https://gist.github.com/44e6575fbd4d84c016e63d8ddb1fb52e <https://gist.github.com/44e6575fbd4d84c016e63d8ddb1fb52e>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org <mailto:ffmpeg-devel at ffmpeg.org>
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org <mailto:ffmpeg-devel-request at ffmpeg.org> with subject "unsubscribe".



More information about the ffmpeg-devel mailing list