Wed Oct 24 21:12:59 2018 UTC ()
clang: enable __float128 on netbsd/x86

While it is debatable whether we want to have this definition upstream,
this is very necessary in the package for the purpose of building
www/firefox once it is updated to 63.0.

This is because netbsd's base libstdc++ has some __float128 in headers
and otherwise we get fatal errors in clang builds, or in firefox's case,
when generating bindings for Rust via clang.

PR toolchain/53679
Bump PKGREVISION.


(maya)
diff -r1.44 -r1.45 pkgsrc/lang/clang/Makefile
diff -r1.53 -r1.54 pkgsrc/lang/clang/distinfo
diff -r1.1 -r1.2 pkgsrc/lang/clang/patches/patch-lib_Basic_Targets_OSTargets.h

cvs diff -r1.44 -r1.45 pkgsrc/lang/clang/Makefile (expand / switch to unified diff)

--- pkgsrc/lang/clang/Makefile 2017/03/17 22:38:17 1.44
+++ pkgsrc/lang/clang/Makefile 2018/10/24 21:12:59 1.45
@@ -1,12 +1,13 @@ @@ -1,12 +1,13 @@
1# $NetBSD: Makefile,v 1.44 2017/03/17 22:38:17 adam Exp $ 1# $NetBSD: Makefile,v 1.45 2018/10/24 21:12:59 maya Exp $
2 2
3PKGNAME= ${DISTNAME:S/.src//:S/cfe/clang/} 3PKGNAME= ${DISTNAME:S/.src//:S/cfe/clang/}
 4PKGREVISION= 1
4PYTHON_FOR_BUILD_ONLY= yes 5PYTHON_FOR_BUILD_ONLY= yes
5 6
6CMAKE_ARGS+= -DCLANG_ENABLE_STATIC_ANALYZER=OFF 7CMAKE_ARGS+= -DCLANG_ENABLE_STATIC_ANALYZER=OFF
7 8
8# There are some contrib utilities written in python here. 9# There are some contrib utilities written in python here.
9# We don't want to add a python runtime dependency for that. 10# We don't want to add a python runtime dependency for that.
10CHECK_INTERPRETER_SKIP+= share/clang/* 11CHECK_INTERPRETER_SKIP+= share/clang/*
11 12
12.include "../../lang/clang/Makefile.common" 13.include "../../lang/clang/Makefile.common"

cvs diff -r1.53 -r1.54 pkgsrc/lang/clang/distinfo (expand / switch to unified diff)

--- pkgsrc/lang/clang/distinfo 2018/08/09 14:56:41 1.53
+++ pkgsrc/lang/clang/distinfo 2018/10/24 21:12:59 1.54
@@ -1,10 +1,10 @@ @@ -1,10 +1,10 @@
1$NetBSD: distinfo,v 1.53 2018/08/09 14:56:41 jperkin Exp $ 1$NetBSD: distinfo,v 1.54 2018/10/24 21:12:59 maya Exp $
2 2
3SHA1 (cfe-6.0.1.src.tar.xz) = d93d8f3e3d7eb549ac58507383f7fcbdd78804d7 3SHA1 (cfe-6.0.1.src.tar.xz) = d93d8f3e3d7eb549ac58507383f7fcbdd78804d7
4RMD160 (cfe-6.0.1.src.tar.xz) = c280cd2037b19f9bd733944b765f9ca23b35e0a4 4RMD160 (cfe-6.0.1.src.tar.xz) = c280cd2037b19f9bd733944b765f9ca23b35e0a4
5SHA512 (cfe-6.0.1.src.tar.xz) = f64ba9290059f6e36fee41c8f32bf483609d31c291fcd2f77d41fecfdf3c8233a5e23b93a1c73fed03683823bd6e72757ed993dd32527de3d5f2b7a64bb031b9 5SHA512 (cfe-6.0.1.src.tar.xz) = f64ba9290059f6e36fee41c8f32bf483609d31c291fcd2f77d41fecfdf3c8233a5e23b93a1c73fed03683823bd6e72757ed993dd32527de3d5f2b7a64bb031b9
6Size (cfe-6.0.1.src.tar.xz) = 11905772 bytes 6Size (cfe-6.0.1.src.tar.xz) = 11905772 bytes
7SHA1 (patch-lib_Basic_Targets_OSTargets.h) = 73043149874a79bc7f048eb854832381939a1397 7SHA1 (patch-lib_Basic_Targets_OSTargets.h) = a8a710720e67c778cf5d4e30e3bb41d9aaf7c9d4
8SHA1 (patch-lib_Driver_ToolChains_Solaris.cpp) = 7cf1d43b50e7a0bf0842f2265b0449b0fea44007 8SHA1 (patch-lib_Driver_ToolChains_Solaris.cpp) = 7cf1d43b50e7a0bf0842f2265b0449b0fea44007
9SHA1 (patch-lib_Driver_ToolChains_Solaris.h) = 13849df72a4b719bbb6109ab1d1abf2e7b97014f 9SHA1 (patch-lib_Driver_ToolChains_Solaris.h) = 13849df72a4b719bbb6109ab1d1abf2e7b97014f
10SHA1 (patch-lib_Frontend_InitHeaderSearch.cpp) = 924cb81bd8e2eb07c3577e25c1b1d4f405e9360f 10SHA1 (patch-lib_Frontend_InitHeaderSearch.cpp) = 924cb81bd8e2eb07c3577e25c1b1d4f405e9360f

cvs diff -r1.1 -r1.2 pkgsrc/lang/clang/patches/patch-lib_Basic_Targets_OSTargets.h (expand / switch to unified diff)

--- pkgsrc/lang/clang/patches/patch-lib_Basic_Targets_OSTargets.h 2018/08/09 14:56:41 1.1
+++ pkgsrc/lang/clang/patches/patch-lib_Basic_Targets_OSTargets.h 2018/10/24 21:12:59 1.2
@@ -1,20 +1,45 @@ @@ -1,20 +1,45 @@
1$NetBSD: patch-lib_Basic_Targets_OSTargets.h,v 1.1 2018/08/09 14:56:41 jperkin Exp $ 1$NetBSD: patch-lib_Basic_Targets_OSTargets.h,v 1.2 2018/10/24 21:12:59 maya Exp $
2 2
3Sync SunOS default defines with a working reality. 3Sync SunOS default defines with a working reality.
 4NetBSD __float128, needed to build anything with base libstdc++
 5which assumes __float128.
4 6
5--- lib/Basic/Targets/OSTargets.h.orig 2018-01-04 07:43:41.000000000 +0000 7--- lib/Basic/Targets/OSTargets.h.orig 2018-01-04 07:43:41.000000000 +0000
6+++ lib/Basic/Targets/OSTargets.h 8+++ lib/Basic/Targets/OSTargets.h
7@@ -531,20 +531,16 @@ protected: 9@@ -358,12 +358,22 @@ protected:
 10 Builder.defineMacro("__ELF__");
 11 if (Opts.POSIXThreads)
 12 Builder.defineMacro("_REENTRANT");
 13+ if (this->HasFloat128)
 14+ Builder.defineMacro("__FLOAT128__");
 15 }
 16
 17 public:
 18 NetBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
 19 : OSTargetInfo<Target>(Triple, Opts) {
 20 this->MCountName = "_mcount";
 21+ switch (Triple.getArch()) {
 22+ default:
 23+ break;
 24+ case llvm::Triple::x86:
 25+ case llvm::Triple::x86_64:
 26+ this->HasFloat128 = true;
 27+ break;
 28+ }
 29 }
 30 };
 31
 32@@ -531,20 +541,16 @@ protected:
8 Builder.defineMacro("__ELF__"); 33 Builder.defineMacro("__ELF__");
9 Builder.defineMacro("__svr4__"); 34 Builder.defineMacro("__svr4__");
10 Builder.defineMacro("__SVR4"); 35 Builder.defineMacro("__SVR4");
11- // Solaris headers require _XOPEN_SOURCE to be set to 600 for C99 and 36- // Solaris headers require _XOPEN_SOURCE to be set to 600 for C99 and
12- // newer, but to 500 for everything else. feature_test.h has a check to 37- // newer, but to 500 for everything else. feature_test.h has a check to
13- // ensure that you are not using C99 with an old version of X/Open or C89 38- // ensure that you are not using C99 with an old version of X/Open or C89
14- // with a new version. 39- // with a new version.
15- if (Opts.C99) 40- if (Opts.C99)
16+ // Compatibility with GCC to satisfy <sys/feature_tests.h> requirements. 41+ // Compatibility with GCC to satisfy <sys/feature_tests.h> requirements.
17+ if (Opts.CPlusPlus) { 42+ if (Opts.CPlusPlus) {
18+ Builder.defineMacro("__STDC_VERSION__", "199901L"); 43+ Builder.defineMacro("__STDC_VERSION__", "199901L");
19 Builder.defineMacro("_XOPEN_SOURCE", "600"); 44 Builder.defineMacro("_XOPEN_SOURCE", "600");
20- else 45- else