LLVM 18.1.0-rc1 tagged

Hi,

I’ve tagged the 18.1.0-rc1 release. Please test, upload binaries, and report issues to the issue tracker.

Windows binaries are ready. I didn’t run into any issues.

Hashes:

C:\src>certutil -hashfile llvm_package_18.1.0-rc1\build32\LLVM-18.1.0-rc1-win32.exe sha256
SHA256 hash of llvm_package_18.1.0-rc1\build32\LLVM-18.1.0-rc1-win32.exe:
2eee924a4070491f674dd980ac19c47094c7a29d4255fa9c91249018945e709b
CertUtil: -hashfile command completed successfully.

C:\src>certutil -hashfile llvm_package_18.1.0-rc1\build64\LLVM-18.1.0-rc1-win64.exe sha256
SHA256 hash of llvm_package_18.1.0-rc1\build64\LLVM-18.1.0-rc1-win64.exe:
3db9b1c44af69d9a22b32c4e41330603e5396392acbbcbf3ee83afce822d5d74
CertUtil: -hashfile command completed successfully.

These were built with llvm-project\llvm\utils\release\build_llvm_release.bat --x86 --x64 --version=18.1.0-rc1 using the script at llvmorg-18.1.0-rc1

It’s been a while since I did a macOS build, but for 18.1.0 I’m getting a failure while linking libomp.dylib:

FAILED: lib/libomp.dylib
: && /Users/dim/llvm/18.1.0/rc1/Phase2/Release/llvmCore-18.1.0-rc1.install/usr/local/bin/clang -fPIC -Werror=date-time -Werror=unguarded-availability-new -Wall
-Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough
 -Wcovered-switch-default -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -Wall -fcolor-diagnostics -Wcast-qual -Wformat-pedantic -Wimplicit-fallthrough -Wsign-compare -Wno-enum-constexpr-conversion -Wno-extra -Wno-pedantic -fno-semantic-interposition -fdata-sections -O3 -DNDEBUG -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk -mmacosx-version-min=13.6 -dynamiclib -Wl,-headerpad_max_install_names -current_version 5.0 -compatibility_version 5.0 -o lib/libomp.dylib -install_name @rpath/libomp.dylib projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_alloc.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_atomic.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_csupport.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_debug.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_itt.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_environment.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_error.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_global.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_i18n.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_io.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_runtime.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_settings.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_str.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_tasking.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_threadprivate.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_utility.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_barrier.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_wait_release.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_affinity.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_dispatch.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_lock.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_sched.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_collapse.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/z_Linux_util.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_gsupport.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/thirdparty/ittnotify/ittnotify_static.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_taskdeps.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_cancel.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_ftn_cdecl.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_ftn_extra.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/kmp_version.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/ompt-general.cpp.o projects/openmp/runtime/src/CMakeFiles/omp.dir/z_Linux_asm.S.o   && cd /Users/dim/llvm/18.1.0/rc1/Phase3/Release/llvmCore-18.1.0-rc1.obj/lib && /opt/homebrew/Cellar/cmake/3.28.2/bin/cmake -E create_symlink libomp.dylib libgomp.dylib && /opt/homebrew/Cellar/cmake/3.28.2/bin/cmake -E create_symlink libomp.dylib libiomp5.dylib
ld: Undefined symbols:
  ___divdc3, referenced from:
      ___kmpc_atomic_cmplx8_div in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx8_div in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div_cmplx8 in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div_cmplx8 in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx8_div_cpt in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx8_div_cpt in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx10_div_cpt in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx10_div_cpt in kmp_atomic.cpp.o
      ...
  ___divsc3, referenced from:
      ___kmpc_atomic_cmplx4_div in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div_cpt in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div_cpt in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div_cpt in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div_cpt in kmp_atomic.cpp.o
      ...
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I will have to investigate what this problem is, but if anybody here has a clue please let me know. :slight_smile:

For some reason, when linking libomp.dylib, the Phase2 built clang does not pass libclang_rt.osx.a on the linker command line. As opposed to Apple’s clang from Xcode, which does add libclang_rt.osx.a. I am unsure why there is a difference.

I’ve uploaded the Solaris/amd and Solaris/sparcv9 tarballs:

1a88e61eaf3a43f3d2254567aa72da1a660b2026580047ab1087153481e04311  clang+llvm-18.1.0-rc1-amd64-pc-solaris2.11.tar.xz
836be803ab121277d9412b5cdc9ca2dde2a9c4fc6957319b5b9a01dfbf8b4d5d  clang+llvm-18.1.0-rc1-sparcv9-sun-solaris2.11.tar.xz

Solaris/amd64 test results are unchanged from 17.0.6. However, Solaris/sparcv9 shows massive (about 30) regressions. The bulk and most worrysome ones are in in LLVM :: Transforms/SampleProfile and LLVM :: tools/llvm-profdata, which also don’t show up on the Solaris/sparcv9 buildbot. Need to investigate.

Linux/sparc64 is in progress, but the resource consumption (especially memory, flang in particular) seem to be getting worse and worse with every release. I had to reduce the parallelism to avoid this and restart the build since there’s no easy way to continue a partial build. This will take several days until the new build is done, unfortunately.

Commit 907ed77 is causing build failures on AIX since compiler-rt is not being built during Phase 1. I have a local fix that seems to be working (will update once the script is done running).

Are you cross-compiling? In any case, this is very likely related to this, and can be worked around by linking libomp to compiler-rt.

No, this is a native build on macOS. At least, I assume that is what the test-release.sh script does when I explicitly pass a target of arm64 :slight_smile:

Perhaps it’s not so much a cross-compilation issue, and more a question of which symbols the macOS SDK on arm64 provides. It seems that ___divdc3 isn’t there for some reason, but compiler-rt provides an implementation.

Linux PowerPC testing completed and uploaded, no regression found.

a2409c54be1e2d39c73599fd24beded0649ff33d  clang+llvm-18.1.0-rc1-powerpc64le-linux-rhel-8.8.tar.xz
1 Like

I have uploaded following releases:

➜  rc1 sha256sum LLVM-18.1.0-rc1-woa64.exe
fecaab31dd56c29a1b66d3be967e2991fdbd94197ad819e8a2dacd1a15761d63  LLVM-18.1.0-rc1-woa64.exe

➜  rc1 sha256sum clang+llvm-18.1.0-rc1-aarch64-linux-gnu.tar.xz
a63e47e6185d5c5d302416e749e5945788c7fa1d5b0702f01c59953c6d9bd786  clang+llvm-18.1.0-rc1-aarch64-linux-gnu.tar.xz

➜  rc1 sha256sum clang+llvm-18.1.0-rc1-armv7a-linux-gnueabihf.tar.gz
764fee665ee6701c2dd2f8c97e4060880569e565f9dfba06475fdfce10bca071  clang+llvm-18.1.0-rc1-armv7a-linux-gnueabihf.tar.gz

ninja check-all blocks on armv7a-linux-gnueabihf target due to libfuzzer tests build failure. I will file an issue for this. ninja check-llvm check-clang, check-lld and check-cxx run individually pass without failures.

Following tests failures found on aarch64-linux-gnu target:

Timed Out Tests (24):
  libFuzzer-aarch64-default-Linux :: value-profile-set.test
  libFuzzer-aarch64-libcxx-Linux :: value-profile-set.test
  libFuzzer-aarch64-static-libcxx-Linux :: value-profile-set.test
  lldb-api :: api/multithreaded/TestMultithreaded.py
  lldb-api :: commands/expression/import-std-module/array/TestArrayFromStdModule.py
  lldb-api :: commands/expression/import-std-module/basic/TestImportStdModule.py
  lldb-api :: commands/expression/import-std-module/conflicts/TestStdModuleWithConflicts.py
  lldb-api :: commands/expression/import-std-module/deque-basic/TestDequeFromStdModule.py
  lldb-api :: commands/expression/import-std-module/forward_list-dbg-info-content/TestDbgInfoContentForwardListFromStdModule.py
  lldb-api :: commands/expression/import-std-module/forward_list/TestForwardListFromStdModule.py
  lldb-api :: commands/expression/import-std-module/iterator/TestIteratorFromStdModule.py
  lldb-api :: commands/expression/import-std-module/list/TestListFromStdModule.py
  lldb-api :: commands/expression/import-std-module/non-module-type-separation/TestNonModuleTypeSeparation.py
  lldb-api :: commands/expression/import-std-module/retry-with-std-module/TestRetryWithStdModule.py
  lldb-api :: commands/expression/import-std-module/shared_ptr-dbg-info-content/TestSharedPtrDbgInfoContentFromStdModule.py
  lldb-api :: commands/expression/import-std-module/shared_ptr/TestSharedPtrFromStdModule.py
  lldb-api :: commands/expression/import-std-module/vector-of-vectors/TestVectorOfVectorsFromStdModule.py
  lldb-api :: commands/expression/import-std-module/weak_ptr-dbg-info-content/TestDbgInfoContentWeakPtrFromStdModule.py
  lldb-api :: commands/expression/import-std-module/weak_ptr/TestWeakPtrFromStdModule.py
  lldb-api :: commands/process/attach/TestProcessAttach.py
  lldb-api :: tools/lldb-server/TestLldbGdbServer.py
  llvm-libc++-shared.cfg.in :: std/experimental/simd/simd.reference/reference_assignment.pass.cpp
  llvm-libc++-shared.cfg.in :: std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.negbin/eval.pass.cpp
  llvm-libc++-shared.cfg.in :: std/utilities/variant/variant.visit/visit_return_type.pass.cpp

********************
Failed Tests (24):
  BOLT :: perf2bolt/perf_test.test
  libomptarget :: aarch64-unknown-linux-gnu :: mapping/target_derefence_array_pointrs.cpp
  libomptarget :: aarch64-unknown-linux-gnu-LTO :: mapping/target_derefence_array_pointrs.cpp
  lldb-api :: commands/expression/context-object/TestContextObject.py
  lldb-api :: commands/expression/import-std-module/deque-dbg-info-content/TestDbgInfoContentDequeFromStdModule.py
  lldb-api :: commands/expression/import-std-module/list-dbg-info-content/TestDbgInfoContentListFromStdModule.py
  lldb-api :: commands/expression/import-std-module/sysroot/TestStdModuleSysroot.py
  lldb-api :: commands/expression/import-std-module/vector-dbg-info-content/TestDbgInfoContentVectorFromStdModule.py
  lldb-api :: functionalities/asan/TestMemoryHistory.py
  lldb-api :: functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
  lldb-api :: functionalities/data-formatter/data-formatter-categories/TestDataFormatterCategories.py
  lldb-api :: functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
  lldb-api :: functionalities/data-formatter/data-formatter-python-synth/TestDataFormatterPythonSynth.py
  lldb-api :: functionalities/data-formatter/data-formatter-smart-array/TestDataFormatterSmartArray.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py
  lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py
  lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/unordered_map/TestDataFormatterLibccUnorderedMap.py
  lldb-api :: functionalities/data-formatter/data-formatter-synth/TestDataFormatterSynth.py
  lldb-api :: functionalities/gdb_remote_client/TestGDBRemoteClient.py
  lldb-api :: lang/c/global_variables/TestGlobalVariables.py
  lldb-api :: lang/cpp/class_static/TestStaticVariables.py
  lldb-api :: python_api/formatters/TestFormattersSBAPI.py
  lldb-api :: python_api/value/TestValueAPI.py
  lldb-shell :: SymbolFile/DWARF/x86/debug-types-dwo-cross-reference.cpp

Windows AArch64 shows no new regression since 17.0.6.

First I apologize if this is not the right place to post.
I tried to build on my MacBook Air M2 and am also stuck wit error at the end of Phase 2. But the error is different than the one previously mentionned.

[100%] Linking CXX executable ../../../../bin/clang
cd /tmp/llvm-project/llvm/utils/release/rc1/Phase2/Release/llvmCore-18.1.0-rc1.obj/tools/clang/tools/driver && /Applications/CMake.app/Contents/bin/cmake -E cmake_link_script CMakeFiles/clang.dir/link.txt --verbose=1
/tmp/llvm-project/llvm/utils/release/rc1/Phase1/Release/llvmCore-18.1.0-rc1.install/usr/local/bin/clang++  -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk -mmacosx-version-min=10.9 -Wl,-search_paths_first -Wl,-headerpad_max_install_names  -rdynamic CMakeFiles/clang.dir/driver.cpp.o CMakeFiles/clang.dir/cc1_main.cpp.o CMakeFiles/clang.dir/cc1as_main.cpp.o CMakeFiles/clang.dir/cc1gen_reproducer_main.cpp.o "CMakeFiles/clang.dir/clang-driver.cpp.o" -o ../../../../bin/clang-18  -Wl,-rpath,@loader_path/../lib ../../../../lib/libLLVMAArch64CodeGen.a ../../../../lib/libLLVMAArch64AsmParser.a ../../../../lib/libLLVMAArch64Desc.a ../../../../lib/libLLVMAArch64Disassembler.a ../../../../lib/libLLVMAArch64Info.a ../../../../lib/libLLVMAArch64Utils.a ../../../../lib/libLLVMAMDGPUCodeGen.a ../../../../lib/libLLVMAMDGPUAsmParser.a ../../../../lib/libLLVMAMDGPUDesc.a ../../../../lib/libLLVMAMDGPUDisassembler.a ../../../../lib/libLLVMAMDGPUInfo.a ../../../../lib/libLLVMAMDGPUUtils.a ../../../../lib/libLLVMARMCodeGen.a ../../../../lib/libLLVMARMAsmParser.a ../../../../lib/libLLVMARMDesc.a ../../../../lib/libLLVMARMDisassembler.a ../../../../lib/libLLVMARMInfo.a ../../../../lib/libLLVMARMUtils.a ../../../../lib/libLLVMAVRCodeGen.a ../../../../lib/libLLVMAVRAsmParser.a ../../../../lib/libLLVMAVRDesc.a ../../../../lib/libLLVMAVRDisassembler.a ../../../../lib/libLLVMAVRInfo.a ../../../../lib/libLLVMBPFCodeGen.a ../../../../lib/libLLVMBPFAsmParser.a ../../../../lib/libLLVMBPFDesc.a ../../../../lib/libLLVMBPFDisassembler.a ../../../../lib/libLLVMBPFInfo.a ../../../../lib/libLLVMHexagonCodeGen.a ../../../../lib/libLLVMHexagonAsmParser.a ../../../../lib/libLLVMHexagonDesc.a ../../../../lib/libLLVMHexagonDisassembler.a ../../../../lib/libLLVMHexagonInfo.a ../../../../lib/libLLVMLanaiCodeGen.a ../../../../lib/libLLVMLanaiAsmParser.a ../../../../lib/libLLVMLanaiDesc.a ../../../../lib/libLLVMLanaiDisassembler.a ../../../../lib/libLLVMLanaiInfo.a ../../../../lib/libLLVMLoongArchCodeGen.a ../../../../lib/libLLVMLoongArchAsmParser.a ../../../../lib/libLLVMLoongArchDesc.a ../../../../lib/libLLVMLoongArchDisassembler.a ../../../../lib/libLLVMLoongArchInfo.a ../../../../lib/libLLVMMipsCodeGen.a ../../../../lib/libLLVMMipsAsmParser.a ../../../../lib/libLLVMMipsDesc.a ../../../../lib/libLLVMMipsDisassembler.a ../../../../lib/libLLVMMipsInfo.a ../../../../lib/libLLVMMSP430CodeGen.a ../../../../lib/libLLVMMSP430AsmParser.a ../../../../lib/libLLVMMSP430Desc.a ../../../../lib/libLLVMMSP430Disassembler.a ../../../../lib/libLLVMMSP430Info.a ../../../../lib/libLLVMNVPTXCodeGen.a ../../../../lib/libLLVMNVPTXDesc.a ../../../../lib/libLLVMNVPTXInfo.a ../../../../lib/libLLVMPowerPCCodeGen.a ../../../../lib/libLLVMPowerPCAsmParser.a ../../../../lib/libLLVMPowerPCDesc.a ../../../../lib/libLLVMPowerPCDisassembler.a ../../../../lib/libLLVMPowerPCInfo.a ../../../../lib/libLLVMRISCVCodeGen.a ../../../../lib/libLLVMRISCVAsmParser.a ../../../../lib/libLLVMRISCVDesc.a ../../../../lib/libLLVMRISCVDisassembler.a ../../../../lib/libLLVMRISCVInfo.a ../../../../lib/libLLVMSparcCodeGen.a ../../../../lib/libLLVMSparcAsmParser.a ../../../../lib/libLLVMSparcDesc.a ../../../../lib/libLLVMSparcDisassembler.a ../../../../lib/libLLVMSparcInfo.a ../../../../lib/libLLVMSystemZCodeGen.a ../../../../lib/libLLVMSystemZAsmParser.a ../../../../lib/libLLVMSystemZDesc.a ../../../../lib/libLLVMSystemZDisassembler.a ../../../../lib/libLLVMSystemZInfo.a ../../../../lib/libLLVMVECodeGen.a ../../../../lib/libLLVMVEAsmParser.a ../../../../lib/libLLVMVEDesc.a ../../../../lib/libLLVMVEDisassembler.a ../../../../lib/libLLVMVEInfo.a ../../../../lib/libLLVMWebAssemblyCodeGen.a ../../../../lib/libLLVMWebAssemblyAsmParser.a ../../../../lib/libLLVMWebAssemblyDesc.a ../../../../lib/libLLVMWebAssemblyDisassembler.a ../../../../lib/libLLVMWebAssemblyInfo.a ../../../../lib/libLLVMWebAssemblyUtils.a ../../../../lib/libLLVMX86CodeGen.a ../../../../lib/libLLVMX86AsmParser.a ../../../../lib/libLLVMX86Desc.a ../../../../lib/libLLVMX86Disassembler.a ../../../../lib/libLLVMX86Info.a ../../../../lib/libLLVMXCoreCodeGen.a ../../../../lib/libLLVMXCoreDesc.a ../../../../lib/libLLVMXCoreDisassembler.a ../../../../lib/libLLVMXCoreInfo.a ../../../../lib/libLLVMAnalysis.a ../../../../lib/libLLVMCodeGen.a ../../../../lib/libLLVMCore.a ../../../../lib/libLLVMipo.a ../../../../lib/libLLVMAggressiveInstCombine.a ../../../../lib/libLLVMInstCombine.a ../../../../lib/libLLVMInstrumentation.a ../../../../lib/libLLVMMC.a ../../../../lib/libLLVMMCParser.a ../../../../lib/libLLVMObjCARCOpts.a ../../../../lib/libLLVMOption.a ../../../../lib/libLLVMScalarOpts.a ../../../../lib/libLLVMSupport.a ../../../../lib/libLLVMTargetParser.a ../../../../lib/libLLVMTransformUtils.a ../../../../lib/libLLVMVectorize.a ../../../../lib/libclangBasic.a ../../../../lib/libclangCodeGen.a ../../../../lib/libclangDriver.a ../../../../lib/libclangFrontend.a ../../../../lib/libclangFrontendTool.a ../../../../lib/libclangSerialization.a -Wl,-sectcreate,__TEXT,__info_plist,"/tmp/llvm-project/llvm/utils/release/rc1/Phase2/Release/llvmCore-18.1.0-rc1.obj/tools/clang/tools/driver/Info.plist" ../../../../lib/libLLVMAArch64Desc.a ../../../../lib/libLLVMAArch64Info.a ../../../../lib/libLLVMAArch64Utils.a ../../../../lib/libLLVMMIRParser.a ../../../../lib/libLLVMAMDGPUDesc.a ../../../../lib/libLLVMAMDGPUInfo.a ../../../../lib/libLLVMAMDGPUUtils.a ../../../../lib/libLLVMARMDesc.a ../../../../lib/libLLVMARMInfo.a ../../../../lib/libLLVMARMUtils.a ../../../../lib/libLLVMHexagonDesc.a ../../../../lib/libLLVMHexagonInfo.a ../../../../lib/libLLVMLanaiDesc.a ../../../../lib/libLLVMLanaiInfo.a ../../../../lib/libLLVMLoongArchDesc.a ../../../../lib/libLLVMLoongArchInfo.a ../../../../lib/libLLVMRISCVDesc.a ../../../../lib/libLLVMRISCVInfo.a ../../../../lib/libLLVMSystemZDesc.a ../../../../lib/libLLVMSystemZInfo.a ../../../../lib/libLLVMWebAssemblyDesc.a ../../../../lib/libLLVMWebAssemblyInfo.a ../../../../lib/libLLVMGlobalISel.a ../../../../lib/libLLVMAsmPrinter.a ../../../../lib/libLLVMSelectionDAG.a ../../../../lib/libLLVMMCDisassembler.a ../../../../lib/libclangCodeGen.a ../../../../lib/libLLVMCoverage.a ../../../../lib/libLLVMFrontendDriver.a ../../../../lib/libLLVMLTO.a ../../../../lib/libLLVMPasses.a ../../../../lib/libLLVMCodeGen.a ../../../../lib/libLLVMCodeGenTypes.a ../../../../lib/libLLVMObjCARCOpts.a ../../../../lib/libLLVMCFGuard.a ../../../../lib/libLLVMTarget.a ../../../../lib/libLLVMHipStdPar.a ../../../../lib/libLLVMIRPrinter.a ../../../../lib/libLLVMCoroutines.a ../../../../lib/libLLVMipo.a ../../../../lib/libLLVMInstrumentation.a ../../../../lib/libLLVMVectorize.a ../../../../lib/libLLVMBitWriter.a ../../../../lib/libLLVMLinker.a ../../../../lib/libLLVMExtensions.a ../../../../lib/libclangExtractAPI.a ../../../../lib/libclangRewriteFrontend.a ../../../../lib/libclangARCMigrate.a ../../../../lib/libclangStaticAnalyzerFrontend.a ../../../../lib/libclangStaticAnalyzerCheckers.a ../../../../lib/libclangStaticAnalyzerCore.a ../../../../lib/libclangCrossTU.a ../../../../lib/libclangIndex.a ../../../../lib/libclangFrontend.a ../../../../lib/libclangDriver.a ../../../../lib/libLLVMWindowsDriver.a ../../../../lib/libLLVMOption.a ../../../../lib/libclangParse.a ../../../../lib/libclangSerialization.a ../../../../lib/libclangSema.a ../../../../lib/libclangAnalysis.a ../../../../lib/libclangASTMatchers.a ../../../../lib/libLLVMFrontendHLSL.a ../../../../lib/libclangAPINotes.a ../../../../lib/libclangEdit.a ../../../../lib/libclangSupport.a ../../../../lib/libclangAST.a ../../../../lib/libclangFormat.a ../../../../lib/libclangToolingInclusions.a ../../../../lib/libclangToolingCore.a ../../../../lib/libclangRewrite.a ../../../../lib/libclangLex.a ../../../../lib/libclangBasic.a ../../../../lib/libLLVMFrontendOpenMP.a ../../../../lib/libLLVMScalarOpts.a ../../../../lib/libLLVMAggressiveInstCombine.a ../../../../lib/libLLVMInstCombine.a ../../../../lib/libLLVMFrontendOffloading.a ../../../../lib/libLLVMTransformUtils.a ../../../../lib/libLLVMAnalysis.a ../../../../lib/libLLVMProfileData.a ../../../../lib/libLLVMSymbolize.a ../../../../lib/libLLVMDebugInfoDWARF.a ../../../../lib/libLLVMDebugInfoPDB.a ../../../../lib/libLLVMDebugInfoMSF.a ../../../../lib/libLLVMDebugInfoBTF.a ../../../../lib/libLLVMObject.a ../../../../lib/libLLVMMCParser.a ../../../../lib/libLLVMMC.a ../../../../lib/libLLVMDebugInfoCodeView.a ../../../../lib/libLLVMIRReader.a ../../../../lib/libLLVMBitReader.a ../../../../lib/libLLVMAsmParser.a ../../../../lib/libLLVMTextAPI.a ../../../../lib/libLLVMCore.a ../../../../lib/libLLVMRemarks.a ../../../../lib/libLLVMBitstreamReader.a ../../../../lib/libLLVMBinaryFormat.a ../../../../lib/libLLVMTargetParser.a ../../../../lib/libLLVMSupport.a ../../../../lib/libLLVMDemangle.a -lm /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/lib/libz.tbd /opt/homebrew/lib/libzstd.dylib /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/lib/libcurses.tbd
ld: warning: ignoring duplicate libraries: '../../../../lib/libLLVMAArch64Desc.a', '../../../../lib/libLLVMAArch64Info.a', '../../../../lib/libLLVMAArch64Utils.a', '../../../../lib/libLLVMAMDGPUDesc.a', '../../../../lib/libLLVMAMDGPUInfo.a', '../../../../lib/libLLVMAMDGPUUtils.a', '../../../../lib/libLLVMARMDesc.a', '../../../../lib/libLLVMARMInfo.a', '../../../../lib/libLLVMARMUtils.a', '../../../../lib/libLLVMAggressiveInstCombine.a', '../../../../lib/libLLVMAnalysis.a', '../../../../lib/libLLVMCodeGen.a', '../../../../lib/libLLVMCore.a', '../../../../lib/libLLVMHexagonDesc.a', '../../../../lib/libLLVMHexagonInfo.a', '../../../../lib/libLLVMInstCombine.a', '../../../../lib/libLLVMInstrumentation.a', '../../../../lib/libLLVMLanaiDesc.a', '../../../../lib/libLLVMLanaiInfo.a', '../../../../lib/libLLVMLoongArchDesc.a', '../../../../lib/libLLVMLoongArchInfo.a', '../../../../lib/libLLVMMC.a', '../../../../lib/libLLVMMCParser.a', '../../../../lib/libLLVMObjCARCOpts.a', '../../../../lib/libLLVMOption.a', '../../../../lib/libLLVMRISCVDesc.a', '../../../../lib/libLLVMRISCVInfo.a', '../../../../lib/libLLVMScalarOpts.a', '../../../../lib/libLLVMSupport.a', '../../../../lib/libLLVMSystemZDesc.a', '../../../../lib/libLLVMSystemZInfo.a', '../../../../lib/libLLVMTargetParser.a', '../../../../lib/libLLVMTransformUtils.a', '../../../../lib/libLLVMVectorize.a', '../../../../lib/libLLVMWebAssemblyDesc.a', '../../../../lib/libLLVMWebAssemblyInfo.a', '../../../../lib/libLLVMipo.a', '../../../../lib/libclangBasic.a', '../../../../lib/libclangCodeGen.a', '../../../../lib/libclangDriver.a', '../../../../lib/libclangFrontend.a', '../../../../lib/libclangSerialization.a'
Undefined symbols for architecture arm64:
  "___isPlatformVersionAtLeast", referenced from:
      llvm::sys::fs::copy_file(llvm::Twine const&, llvm::Twine const&) in libLLVMSupport.a[136](Path.cpp.o)
ld: symbol(s) not found for architecture arm64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [bin/clang-18] Error 1
make[2]: *** [tools/clang/tools/driver/CMakeFiles/clang.dir/all] Error 2
make[1]: *** [tools/clang/tools/driver/CMakeFiles/clang.dir/rule] Error 2
make: *** [clang] Error 2

I used the following commands:

export MACOSX_DEPLOYMENT_TARGET=10.9
./test-release.sh \                                                           
     -release 18.1.0 \
     -rc 1 \
     -triple Arch64-apple-darwin23.4 \
     -no-compare-files

I aalso get the same error at end of Phase 2 with 18.1.2

As far as I can determine from searching around, the isPlatformVersionAtLeast function should be provided by the clang builtins library, which on macOS is libclang_rt.osx.a. If it fails like this at the end of Phase 2, you should probably try to execute the link command line with -v, to see what it tries to link in, exactly.

I’m looking again at the initial problems that I got, and it looks like a critical thing is that Phase 2 needs to build and install at least the builtins library (so libclang_rt.osx.a) to make building Phase 3 possible. I had adjusted the test-release.sh script’s configure_llvmCore() function for this, but found out that build_llvmCore() also needs to be adjusted, to actually install the builtins, or any other desired runtimes.

So the overview is:

  • Phase 1: only build the clang compiler binary, since nothing more should be needed to build follow-up phases. (It could be that even this phase needs to build at least the builtins library libclang_rt.osx.a, since code generated by the Phase 1 clang binary might refer to such builtin functions.)
  • Phase 2: only build and install the clang compiler binary, and all the requested runtimes. This is because Phase 3 will be built by Phase 2, and you would expect the Phase 3 compiler to be linked against its “own” libc++ and libunwind, not the system-provided one.
  • Phase 3: build and install everything, that is all the projects and runtimes the user asked for.

I made some adjustments to test-release.sh to install the runtimes during Phase 2, but for some reason, only the builtins libraries actually get installed. It completely skips the sanitizer libraries, libc++ and libc++abi!

Strangely enough, these do get built, and they are visible in the respective .obj dirs, but but ninja install seems to totally skip them. I have no idea why, it’s all CMake magic.

I tried without export MACOSX_DEPLOYMENT_TARGET=10.9, as indicated in How To Validate a New Release.

git clone --depth 1 --branch llvmorg-18.1.2 https://github.com/llvm/llvm-project.git llvm-project-tagged-18.1.2
cd llvm-project-tagged-18.1.2/llvm/utils/release

Then I edited test-release.sh to add options --system-site-packages --symlinks to create virtual environment. And run command:

./test-release.sh \
     -release 18.1.2 \
     -final \
     -triple Arch64-apple-darwin23.4 \
     -no-compare-files

Now I have both Phase 1 and Phase 2 completing. I get in Phase 3 the error you were having in Phase 2 with libomp.dylib:

[  3%] Linking C shared library ../../../../lib/libomp.dylib
cd /tmp/llvm-project-tagged-18.1.2/llvm/utils/release/final/Phase3/Release/llvmCore-18.1.2-final.obj/projects/openmp/runtime/src && /Applications/CMake.app/Contents/bin/cmake -E cmake_link_script CMakeFiles/omp.dir/link.txt --verbose=1
/tmp/llvm-project-tagged-18.1.2/llvm/utils/release/final/Phase2/Release/llvmCore-18.1.2-final.install/usr/local/bin/clang  -fPIC -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -Wall -fcolor-diagnostics -Wcast-qual -Wformat-pedantic -Wimplicit-fallthrough -Wsign-compare -Wno-enum-constexpr-conversion -Wno-extra -Wno-pedantic -fno-semantic-interposition -fdata-sections -O3 -DNDEBUG -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk -dynamiclib -Wl,-headerpad_max_install_names -current_version 5.0 -compatibility_version 5.0 -o ../../../../lib/libomp.dylib -install_name @rpath/libomp.dylib CMakeFiles/omp.dir/kmp_alloc.cpp.o CMakeFiles/omp.dir/kmp_atomic.cpp.o CMakeFiles/omp.dir/kmp_csupport.cpp.o CMakeFiles/omp.dir/kmp_debug.cpp.o CMakeFiles/omp.dir/kmp_itt.cpp.o CMakeFiles/omp.dir/kmp_environment.cpp.o CMakeFiles/omp.dir/kmp_error.cpp.o CMakeFiles/omp.dir/kmp_global.cpp.o CMakeFiles/omp.dir/kmp_i18n.cpp.o CMakeFiles/omp.dir/kmp_io.cpp.o CMakeFiles/omp.dir/kmp_runtime.cpp.o CMakeFiles/omp.dir/kmp_settings.cpp.o CMakeFiles/omp.dir/kmp_str.cpp.o CMakeFiles/omp.dir/kmp_tasking.cpp.o CMakeFiles/omp.dir/kmp_threadprivate.cpp.o CMakeFiles/omp.dir/kmp_utility.cpp.o CMakeFiles/omp.dir/kmp_barrier.cpp.o CMakeFiles/omp.dir/kmp_wait_release.cpp.o CMakeFiles/omp.dir/kmp_affinity.cpp.o CMakeFiles/omp.dir/kmp_dispatch.cpp.o CMakeFiles/omp.dir/kmp_lock.cpp.o CMakeFiles/omp.dir/kmp_sched.cpp.o CMakeFiles/omp.dir/kmp_collapse.cpp.o CMakeFiles/omp.dir/z_Linux_util.cpp.o CMakeFiles/omp.dir/kmp_gsupport.cpp.o CMakeFiles/omp.dir/thirdparty/ittnotify/ittnotify_static.cpp.o CMakeFiles/omp.dir/kmp_taskdeps.cpp.o CMakeFiles/omp.dir/kmp_cancel.cpp.o CMakeFiles/omp.dir/kmp_ftn_cdecl.cpp.o CMakeFiles/omp.dir/kmp_ftn_extra.cpp.o CMakeFiles/omp.dir/kmp_version.cpp.o "CMakeFiles/omp.dir/ompt-general.cpp.o" CMakeFiles/omp.dir/z_Linux_asm.S.o
Undefined symbols for architecture arm64:
  "___divdc3", referenced from:
      ___kmpc_atomic_cmplx8_div in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx8_div in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div_cmplx8 in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div_cmplx8 in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx8_div_cpt in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx8_div_cpt in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx10_div_cpt in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx10_div_cpt in kmp_atomic.cpp.o
      ...
  "___divsc3", referenced from:
      ___kmpc_atomic_cmplx4_div in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div_cpt in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div_cpt in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div_cpt in kmp_atomic.cpp.o
      ___kmpc_atomic_cmplx4_div_cpt in kmp_atomic.cpp.o
      ...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [lib/libomp.dylib] Error 1
make[1]: *** [projects/openmp/runtime/src/CMakeFiles/omp.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

My configuration

$ cmake --version
cmake version 3.29.0

CMake suite maintained and supported by Kitware (kitware.com/cmake).

$ python --version
Python 3.12.2

$ sw_vers
ProductName:		macOS
ProductVersion:		14.4
BuildVersion:		23E214

$ xcodebuild -version
Xcode 15.3
Build version 15E204a

You’re running into Cross-compiling libomp fails with missing symbol "___divdc3" · Issue #54596 · llvm/llvm-project · GitHub

Thanks! Thus have to wait until it’s solved in trunk and try to cherry pick the patch