Revision: 3700 Author: eliot Date: 2016-05-05 17:00:29 -0700 (Thu, 05 May 2016) Log Message: ----------- Add determining of the Clang version to the Mac OS X makefiles and use it to use the right name for the code model depending on clang version 6.0 or 7.0.0. Annoyingly clang writes its version info to /dev/tty instead of stdout so ver determined by ls of directory in Xcode. Sigh.
Modified Paths: -------------- branches/Cog/build.macos32x86/common/Makefile.flags branches/Cog/build.macos32x86/common/Makefile.rules branches/Cog/build.macos64x64/common/Makefile.flags branches/Cog/build.macos64x64/common/Makefile.rules
Modified: branches/Cog/build.macos32x86/common/Makefile.flags =================================================================== --- branches/Cog/build.macos32x86/common/Makefile.flags 2016-05-05 22:28:56 UTC (rev 3699) +++ branches/Cog/build.macos32x86/common/Makefile.flags 2016-05-06 00:00:29 UTC (rev 3700) @@ -13,13 +13,18 @@
# N.B. ARC isn't supported by the os-x 32-bit legacy Objective-C runtime kernel. # ARC is supported only on 64-bits, and then only for the 10.7 SDK and later. +ifeq ($(CCVERSION),6.0) + OBJC_CODE_MODEL := -fno-objc-arc +else + OBJC_CODE_MODEL := -fobjc-weak +endif CFLAGS:=$(CFLAGS) -DBUILD_FOR_OSX=1 \ -arch $(TARGET_ARCH) \ -mmacosx-version-min=$(TARGET_VERSION_MIN) -msse4.2 \ -fvisibility=default -fwrapv \ -fmacro-backtrace-limit=0 -fdiagnostics-show-note-include-stack \ -fmessage-length=0 -fpascal-strings -fasm-blocks -fstrict-aliasing \ - -fobjc-weak \ + $(OBJC_CODE_MODEL) \ -isysroot $(SDK) \ -include $(PLATDIR)/iOS/vm/SqueakPureObjc_Prefix.pch
Modified: branches/Cog/build.macos32x86/common/Makefile.rules =================================================================== --- branches/Cog/build.macos32x86/common/Makefile.rules 2016-05-05 22:28:56 UTC (rev 3699) +++ branches/Cog/build.macos32x86/common/Makefile.rules 2016-05-06 00:00:29 UTC (rev 3700) @@ -4,8 +4,13 @@ # See http://make.mad-scientist.net/papers/advanced-auto-dependency-generation # for an explanation of the dependency management scheme.
+XCODETOOLCHAINS := /Applications/Xcode.app/Contents/Developer/Toolchains +XCODETOOLCHAIN := $(XCODETOOLCHAINS)/XcodeDefault.xctoolchain + # /usr/bin/clang, a.k.a. /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang CC := clang +# convoluted, but clang -version writes to /dev/tty, /not/ stdout :-( +CCVERSION = $(shell ls $(XCODETOOLCHAIN)/usr/lib/clang) LD := clang LDCXX := clang++ # For linking c++ bundles
Modified: branches/Cog/build.macos64x64/common/Makefile.flags =================================================================== --- branches/Cog/build.macos64x64/common/Makefile.flags 2016-05-05 22:28:56 UTC (rev 3699) +++ branches/Cog/build.macos64x64/common/Makefile.flags 2016-05-06 00:00:29 UTC (rev 3700) @@ -13,13 +13,14 @@
# N.B. ARC isn't supported by the os-x 32-bit legacy Objective-C runtime kernel. # ARC is supported only on 64-bits, and then only for the 10.7 SDK and later. +OBJC_CODE_MODEL := -fobjc-arc CFLAGS:=$(CFLAGS) -DBUILD_FOR_OSX=1 \ -arch $(TARGET_ARCH) \ -mmacosx-version-min=$(TARGET_VERSION_MIN) -msse4.2 \ -fvisibility=default -fwrapv \ -fmacro-backtrace-limit=0 -fdiagnostics-show-note-include-stack \ -fmessage-length=0 -fpascal-strings -fasm-blocks -fstrict-aliasing \ - -fobjc-arc \ + $(OBJC_CODE_MODEL) \ -isysroot $(SDK) \ -include $(PLATDIR)/iOS/vm/SqueakPureObjc_Prefix.pch
Modified: branches/Cog/build.macos64x64/common/Makefile.rules =================================================================== --- branches/Cog/build.macos64x64/common/Makefile.rules 2016-05-05 22:28:56 UTC (rev 3699) +++ branches/Cog/build.macos64x64/common/Makefile.rules 2016-05-06 00:00:29 UTC (rev 3700) @@ -4,8 +4,13 @@ # See http://make.mad-scientist.net/papers/advanced-auto-dependency-generation # for an explanation of the dependency management scheme.
+XCODETOOLCHAINS := /Applications/Xcode.app/Contents/Developer/Toolchains +XCODETOOLCHAIN := $(XCODETOOLCHAINS)/XcodeDefault.xctoolchain + # /usr/bin/clang, a.k.a. /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang CC := clang +# convoluted, but clang -version writes to /dev/tty, /not/ stdout :-( +CCVERSION = $(shell ls $(XCODETOOLCHAIN)/usr/lib/clang) LD := clang LDCXX := clang++ # For linking c++ bundles
On Thu, May 05, 2016 at 05:00:30PM -0700, commits@squeakvm.org wrote:
Annoyingly clang writes its version info to /dev/tty instead of stdout so ver determined by ls of directory in Xcode. Sigh.
Ick - really?!? gcc prints the version info to stderr, which makes some kind of sense. Is clang doing it differently?
Dave
vm-dev@lists.squeakfoundation.org