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.diff -r1.44 -r1.45 pkgsrc/lang/clang/Makefile
(maya)
@@ -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 | |||
3 | PKGNAME= ${DISTNAME:S/.src//:S/cfe/clang/} | 3 | PKGNAME= ${DISTNAME:S/.src//:S/cfe/clang/} | |
4 | PKGREVISION= 1 | |||
4 | PYTHON_FOR_BUILD_ONLY= yes | 5 | PYTHON_FOR_BUILD_ONLY= yes | |
5 | 6 | |||
6 | CMAKE_ARGS+= -DCLANG_ENABLE_STATIC_ANALYZER=OFF | 7 | CMAKE_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. | |
10 | CHECK_INTERPRETER_SKIP+= share/clang/* | 11 | CHECK_INTERPRETER_SKIP+= share/clang/* | |
11 | 12 | |||
12 | .include "../../lang/clang/Makefile.common" | 13 | .include "../../lang/clang/Makefile.common" |
@@ -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 | |||
3 | SHA1 (cfe-6.0.1.src.tar.xz) = d93d8f3e3d7eb549ac58507383f7fcbdd78804d7 | 3 | SHA1 (cfe-6.0.1.src.tar.xz) = d93d8f3e3d7eb549ac58507383f7fcbdd78804d7 | |
4 | RMD160 (cfe-6.0.1.src.tar.xz) = c280cd2037b19f9bd733944b765f9ca23b35e0a4 | 4 | RMD160 (cfe-6.0.1.src.tar.xz) = c280cd2037b19f9bd733944b765f9ca23b35e0a4 | |
5 | SHA512 (cfe-6.0.1.src.tar.xz) = f64ba9290059f6e36fee41c8f32bf483609d31c291fcd2f77d41fecfdf3c8233a5e23b93a1c73fed03683823bd6e72757ed993dd32527de3d5f2b7a64bb031b9 | 5 | SHA512 (cfe-6.0.1.src.tar.xz) = f64ba9290059f6e36fee41c8f32bf483609d31c291fcd2f77d41fecfdf3c8233a5e23b93a1c73fed03683823bd6e72757ed993dd32527de3d5f2b7a64bb031b9 | |
6 | Size (cfe-6.0.1.src.tar.xz) = 11905772 bytes | 6 | Size (cfe-6.0.1.src.tar.xz) = 11905772 bytes | |
7 | SHA1 (patch-lib_Basic_Targets_OSTargets.h) = 73043149874a79bc7f048eb854832381939a1397 | 7 | SHA1 (patch-lib_Basic_Targets_OSTargets.h) = a8a710720e67c778cf5d4e30e3bb41d9aaf7c9d4 | |
8 | SHA1 (patch-lib_Driver_ToolChains_Solaris.cpp) = 7cf1d43b50e7a0bf0842f2265b0449b0fea44007 | 8 | SHA1 (patch-lib_Driver_ToolChains_Solaris.cpp) = 7cf1d43b50e7a0bf0842f2265b0449b0fea44007 | |
9 | SHA1 (patch-lib_Driver_ToolChains_Solaris.h) = 13849df72a4b719bbb6109ab1d1abf2e7b97014f | 9 | SHA1 (patch-lib_Driver_ToolChains_Solaris.h) = 13849df72a4b719bbb6109ab1d1abf2e7b97014f | |
10 | SHA1 (patch-lib_Frontend_InitHeaderSearch.cpp) = 924cb81bd8e2eb07c3577e25c1b1d4f405e9360f | 10 | SHA1 (patch-lib_Frontend_InitHeaderSearch.cpp) = 924cb81bd8e2eb07c3577e25c1b1d4f405e9360f |
@@ -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 | |||
3 | Sync SunOS default defines with a working reality. | 3 | Sync SunOS default defines with a working reality. | |
4 | NetBSD __float128, needed to build anything with base libstdc++ | |||
5 | which 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 |