Opened 3 years ago

Closed 3 years ago

Last modified 14 months ago

#46897 closed defect (fixed)

llvm-3.7 @3.7-r229298 fails to build with Xcode 4.6.3's clang-425.0.28

Reported by: ryandesign (Ryan Schmidt) Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.3.3
Keywords: Cc: larryv (Lawrence Velázquez)
Port: llvm-3.7

Description

llvm-3.7 failed to build on Lion:

https://build.macports.org/builders/buildports-lion-x86_64/builds/27032

In file included from OrcMCJITReplacement.cpp:10:
In file included from /opt/local/var/macports/build/_opt_mports_dports_lang_llvm-3.7/llvm-3.7/work/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h:20:
/opt/local/var/macports/build/_opt_mports_dports_lang_llvm-3.7/llvm-3.7/work/trunk/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h:110:67: error: only virtual member functions can be marked 'override'
    bool provides(StringRef Name, bool ExportedSymbolsOnly) const override {
                                                                  ^~~~~~~~
llvm[3]: Compiling ValueEnumerator.cpp for Release+Debug+Asserts build
if  /usr/bin/clang++ -I/opt/local/var/macports/build/_opt_mports_dports_lang_llvm-3.7/llvm-3.7/work/trunk/include -I/opt/local/var/macports/build/_opt_mports_dports_lang_llvm-3.7/llvm-3.7/work/trunk/lib/Bitcode/Writer  -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O3  -g -std=c++11 -fvisibility-inlines-hidden -fno-exceptions -fno-common -Wcast-qual -pipe -Os -arch x86_64 -stdlib=libc++ -I/opt/local/include -m64 -pedantic -Wno-long-long -Wall -W -Wno-unused-parameter -Wwrite-strings  -Wcovered-switch-default -Wno-uninitialized  -Wno-missing-field-initializers -Wno-comment -c -MMD -MP -MF "/opt/local/var/macports/build/_opt_mports_dports_lang_llvm-3.7/llvm-3.7/work/trunk/lib/Bitcode/Writer/Release+Debug+Asserts/ValueEnumerator.d.tmp" -MT "/opt/local/var/macports/build/_opt_mports_dports_lang_llvm-3.7/llvm-3.7/work/trunk/lib/Bitcode/Writer/Release+Debug+Asserts/ValueEnumerator.o" -MT "/opt/local/var/macports/build/_opt_mports_dports_lang_llvm-3.7/llvm-3.7/work/trunk/lib/Bitcode/Writer/Release+Debug+Asserts/ValueEnumerator.d" ValueEnumerator.cpp -o /opt/local/var/macports/build/_opt_mports_dports_lang_llvm-3.7/llvm-3.7/work/trunk/lib/Bitcode/Writer/Release+Debug+Asserts/ValueEnumerator.o ; \
	        then /bin/mv -f "/opt/local/var/macports/build/_opt_mports_dports_lang_llvm-3.7/llvm-3.7/work/trunk/lib/Bitcode/Writer/Release+Debug+Asserts/ValueEnumerator.d.tmp" "/opt/local/var/macports/build/_opt_mports_dports_lang_llvm-3.7/llvm-3.7/work/trunk/lib/Bitcode/Writer/Release+Debug+Asserts/ValueEnumerator.d"; else /bin/rm "/opt/local/var/macports/build/_opt_mports_dports_lang_llvm-3.7/llvm-3.7/work/trunk/lib/Bitcode/Writer/Release+Debug+Asserts/ValueEnumerator.d.tmp"; exit 1; fi
1 error generated.
make[3]: *** [/opt/local/var/macports/build/_opt_mports_dports_lang_llvm-3.7/llvm-3.7/work/trunk/lib/ExecutionEngine/Orc/Release+Debug+Asserts/OrcMCJITReplacement.o] Error 1

Change History (6)

comment:1 Changed 3 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Yeah, it's a bug in Xcode 4.6.3's clang. Figuring out what to do about it.

comment:2 Changed 3 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Discussing which way we want to go in http://llvm.org/bugs/show_bug.cgi?id=22619

comment:3 Changed 3 years ago by jeremyhu (Jeremy Huddleston Sequoia)

  • Status changed from new to assigned
  • Summary changed from llvm-3.7 @3.7-r229298: error: only virtual member functions can be marked 'override' to llvm-3.7 @3.7-r229298 fails to build with Xcode 4.6.3's clang-425.0.28

comment:4 Changed 3 years ago by jeremyhu (Jeremy Huddleston Sequoia)

  • Resolution set to fixed
  • Status changed from assigned to closed

r133060 to deal with this for now via blacklisting.

comment:5 Changed 3 years ago by ryandesign (Ryan Schmidt)

Thanks!

comment:6 Changed 14 months ago by scottm@…

Anecdote related to this blacklisting: On 10.7 with Xcode 4.6.3, configured to use C++11, I was unable to install any compiler, because ctools required at least llvm38, which in turn required at least clang-3.4, which required cctools, and so on. Discovering this ticket and the llvm.org link was helpful, as I realized I could just remove the blacklist and the override specifiers in the LazyEmittingLayer.h source, and it compiled without issue.

larryv had requested (on irc) that I create a ticket, and I still can, but having discovered this as the root of my issue, this seemed a better fit.

Perhaps there could be a bootstrap variant that whitelists clang 425 and patches LazyEmittingLayer.h?

Note: See TracTickets for help on using tickets.