[4.0.0 Release] Release Candidate 1 source and binaries available

Source, binaries and docs for LLVM-4.0.0-rc1 are now available at
http://www.llvm.org/pre-releases/4.0.0/#rc1

Please try it out, run tests, build your favourite projects and file
bugs about anything that doesn't work and needs to be fixed before the
release, marking them as blockers of http://llvm.org/pr31622.

Thanks,
Hans

Hello,

I’ve switched a project from LLVM 3.9.0 to LLVM 4.0.0 RC1 and I’m seeing a ton of these:

ld: warning: direct access in function ‘llvm::initializeExternalAAWrapperPassPass(llvm::PassRegistry&)’ from file ‘/Users/…/Projets/clang+llvm-4.0.0-rc1-x86_64-apple-darwin/lib/libLLVMAnalysis.a(AliasAnalysis.cpp.o)’ to global weak symbol ‘void std::__1::__call_once_proxy<std::__1::tuple<void* (&)(llvm::PassRegistry&), std::__1::reference_wrapperllvm::PassRegistry&&> >(void*)’ from file ‘/Users/…/Library/Developer/Xcode/DerivedData/fcd-aagtzwcwgbftbkcrfnkqbgvqpfbm/Build/Intermediates/…/Objects-normal/x86_64/foo.o’ means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.

I don’t think that I’ve changed debug settings very much between the two releases. Has something changed in LLVM’s build settings?

I’m testing the macOS release.

Félix

Hmm, I'm not sure what that means.

+Mehdi for Mac and Marshall for libc++. Does this make any sense to you?

- Hans

Hi,

There has been a change in the libc++ header about __call_once_proxy visibility, I suspect this is not a clean build?

Otherwise it means that your foo.o didn’t use the same libc++ headers as the one used to build libLLVMAnalysis.a.

Well, to be clear, there are 200ish occurrences of it from a clean build. I’m building with the libc++ version that ships with Xcode 8.2.1. With it, I could build my project against LLVM 3.9 without issues.

Should I be building with a different libc++?

Félix

Félix, can you file a bug about this as a blocker of
http://llvm.org/pr31622 ? Even if it turns out to be a build setup
problem, it would be good to track it there.

Thanks,
Hans

I don’t think it is build setup problem: it is likely an incompatible change made in libc++. I haven’t had a chance to catch Justin yet to talk about it but possible this afternoon.

Félix: feel free to CC me on the PR if you file it.

Thanks,

Green on Debian for all archs:
https://buildd.debian.org/status/package.php?p=llvm-toolchain-4.0

Please note that I don't fail the builds when the testsuites are not green.

Sylvestre