[llvm-dev] Issues with the precompiled LLVM 12 for macOS

72 views
Skip to first unread message

Alex Denisov via llvm-dev

unread,
Jun 29, 2021, 3:39:57 AM6/29/21
to llvm-dev
Hey folks,

I just wanted to send you a heads up that there is an issue with the precompiled LLVM package for macOS.
The LLVMConfig.cmake has a very specific path hardcoded in it:

set_target_properties(LLVMSupport PROPERTIES
INTERFACE_LINK_LIBRARIES "m;ZLIB::ZLIB;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/lib/libcurses.tbd;LLVMDemangle"
)

Any build that depends on LLVMSupport fails unless there is this very specific macOS SDK present.

The workaround is rather straightforward:

find_package(LLVM REQUIRED CONFIG)

if (APPLE)
if (LLVM_VERSION_MAJOR EQUAL 12)
set_target_properties(LLVMSupport PROPERTIES
INTERFACE_LINK_LIBRARIES "z;curses;m;LLVMDemangle")
endif()
endif()

It never happened before at least since the version 3.9, so I guess an automated check might be an overkill.
But I'm curious how can we prevent this from happening again?

Cheers,
Alex.
_______________________________________________
LLVM Developers mailing list
llvm...@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

Andrzej Warzynski via llvm-dev

unread,
Jun 29, 2021, 3:59:22 PM6/29/21
to Alex Denisov, llvm-dev
Hi Alex,

Wouldn't this be configured by a person/project providing these packages
for macOS? AFAIK, this is not hard-coded in LLVM itself, is it?

-Andrzej

Alex Denisov via llvm-dev

unread,
Jun 30, 2021, 4:21:38 AM6/30/21
to Andrzej Warzynski, llvm-dev
Hi Andrzej,

It is certainly not hardcoded in LLVM itself.
I assume there is some validation step for a package before submission?
I'm wondering if this validation can be extended to, say, grep for "Xcode.app" or something :)

(cc'ed Tom Stellard as the release manager)

Cheers,
Alex.

Tobias Hieta via llvm-dev

unread,
Jun 30, 2021, 4:53:22 AM6/30/21
to Alex Denisov, llvm-dev
Hello,

I am the release tester that build the macOS builds. This file is
generated from the cmake build system in LLVM, a quick grep in the
source seems to indicate that it happens here:
llvm/cmake/modules/CMakeLists.txt

I am unfamiliar with using LLVM libraries with the config file as you
describe - I would suggest you try to patch the file above and try to
get the result you are looking for and then submit a patch.

The script I use to build the release is in
llvm/utils/release/test-release.sh, I am not sure if any other
validation is done except running the unit-tests.

Thanks,
Tobias

Reply all
Reply to author
Forward
0 new messages