Module Name: src Committed By: joerg Date: Sat Feb 27 21:42:14 UTC 2016
Modified Files: src/doc: TODO.clang src/external/bsd/libc++/lib: Makefile src/external/bsd/llvm/lib/libLLVMSupport: Makefile Log Message: As workaround for limitations in Clang's atomic lowering on SPARC, require v8+ for those files that need C++11 atomics. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/doc/TODO.clang cvs rdiff -u -r1.8 -r1.9 src/external/bsd/libc++/lib/Makefile cvs rdiff -u -r1.30 -r1.31 src/external/bsd/llvm/lib/libLLVMSupport/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/doc/TODO.clang diff -u src/doc/TODO.clang:1.18 src/doc/TODO.clang:1.19 --- src/doc/TODO.clang:1.18 Sat Feb 27 18:50:39 2016 +++ src/doc/TODO.clang Sat Feb 27 21:42:14 2016 @@ -1,4 +1,4 @@ -$NetBSD: TODO.clang,v 1.18 2016/02/27 18:50:39 joerg Exp $ +$NetBSD: TODO.clang,v 1.19 2016/02/27 21:42:14 joerg Exp $ Hacks for the clang integration ------------------------------- @@ -14,3 +14,7 @@ macro (ab)use. src/tests/lib/libc/sync disables tests for atomics shorter than 32bit on SPARC64 due to missing codegen support. + +src/external/bsd/llvm/lib/libLLVMSupport and src/external/bsd/libc++/lib +explicitly require -Wa,-Av8plus at the moment, because atomic ops are +always lowered to CAS. Index: src/external/bsd/libc++/lib/Makefile diff -u src/external/bsd/libc++/lib/Makefile:1.8 src/external/bsd/libc++/lib/Makefile:1.9 --- src/external/bsd/libc++/lib/Makefile:1.8 Tue Jan 5 13:07:46 2016 +++ src/external/bsd/libc++/lib/Makefile Sat Feb 27 21:42:14 2016 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.8 2016/01/05 13:07:46 christos Exp $ +# $NetBSD: Makefile,v 1.9 2016/02/27 21:42:14 joerg Exp $ LIB= c++ WARNS= 4 @@ -46,4 +46,8 @@ CWARNFLAGS.clang+= -Wno-error=implicit-e LDFLAGS+= -Wl,-z,defs +.if ${MACHINE_ARCH} == "sparc" || ${COMMON_MACHINE_ARCH:U} == "sparc" +CXXFLAGS+= ${${ACTIVE_CC} == "clang":? -Wa,-Av8plus :} +.endif + .include <bsd.lib.mk> Index: src/external/bsd/llvm/lib/libLLVMSupport/Makefile diff -u src/external/bsd/llvm/lib/libLLVMSupport/Makefile:1.30 src/external/bsd/llvm/lib/libLLVMSupport/Makefile:1.31 --- src/external/bsd/llvm/lib/libLLVMSupport/Makefile:1.30 Thu Jan 29 20:41:36 2015 +++ src/external/bsd/llvm/lib/libLLVMSupport/Makefile Sat Feb 27 21:42:14 2016 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.30 2015/01/29 20:41:36 joerg Exp $ +# $NetBSD: Makefile,v 1.31 2016/02/27 21:42:14 joerg Exp $ LIB= LLVMSupport @@ -118,6 +118,10 @@ SRCS+= Host.inc \ CPPFLAGS.${src}+= -std=gnu99 .endfor +.if !defined(HOSTLIB) && ${MACHINE_ARCH} == "sparc" +COPTS.Atomic.cpp+= ${${ACTIVE_CC} == "clang":? -Wa,-Av8plus :} +.endif + .if defined(HOSTLIB) .include <bsd.hostlib.mk> .else