diff --git a/gnu/local.mk b/gnu/local.mk index 0adc925015..12b04d2c2d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -955,6 +955,7 @@ dist_patch_DATA = \ %D%/packages/patches/clang-runtime-esan-build-fixes.patch \ %D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \ %D%/packages/patches/clang-runtime-3.5-libsanitizer-mode-field.patch \ + %D%/packages/patches/clang-runtime-3.7-fix-build-with-python3.patch \ %D%/packages/patches/clang-runtime-3.9-libsanitizer-mode-field.patch \ %D%/packages/patches/clang-runtime-3.8-libsanitizer-mode-field.patch \ %D%/packages/patches/classpath-aarch64-support.patch \ @@ -1452,6 +1453,7 @@ dist_patch_DATA = \ %D%/packages/patches/llhttp-bootstrap-CVE-2020-8287.patch \ %D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \ %D%/packages/patches/llvm-3.6-fix-build-with-gcc-10.patch \ + %D%/packages/patches/llvm-3.x.1-fix-build-with-gcc.patch \ %D%/packages/patches/llvm-8-fix-build-with-gcc-10.patch \ %D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch \ %D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch \ diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index f8320c4112..6b216ee78c 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -1036,7 +1036,8 @@ of programming tools as well as libraries with equivalent functionality.") (uri (llvm-uri "llvm" version)) (sha256 (base32 - "1ybmnid4pw2hxn12ax5qa5kl1ldfns0njg8533y3mzslvd5cx0kf")))))) + "1ybmnid4pw2hxn12ax5qa5kl1ldfns0njg8533y3mzslvd5cx0kf")) + (patches (search-patches "llvm-3.x.1-fix-build-with-gcc.patch")))))) (define-public clang-runtime-3.8 (clang-runtime-from-llvm @@ -1060,7 +1061,8 @@ of programming tools as well as libraries with equivalent functionality.") (uri (llvm-uri "llvm" version)) (sha256 (base32 - "1masakdp9g2dan1yrazg7md5am2vacbkb3nahb3dchpc1knr8xxy")))))) + "1masakdp9g2dan1yrazg7md5am2vacbkb3nahb3dchpc1knr8xxy")) + (patches (search-patches "llvm-3.x.1-fix-build-with-gcc.patch")))))) (define-public clang-runtime-3.7 (clang-runtime-from-llvm @@ -1068,7 +1070,8 @@ of programming tools as well as libraries with equivalent functionality.") "10c1mz2q4bdq9bqfgr3dirc6hz1h3sq8573srd5q5lr7m7j6jiwx" '("clang-runtime-asan-build-fixes.patch" "clang-runtime-3.8-libsanitizer-mode-field.patch" - "clang-3.5-libsanitizer-ustat-fix.patch"))) + "clang-3.5-libsanitizer-ustat-fix.patch" + "clang-runtime-3.7-fix-build-with-python3.patch"))) (define-public clang-3.7 (clang-from-llvm llvm-3.7 clang-runtime-3.7 diff --git a/gnu/packages/patches/clang-runtime-3.7-fix-build-with-python3.patch b/gnu/packages/patches/clang-runtime-3.7-fix-build-with-python3.patch new file mode 100644 index 0000000000..042f0e025a --- /dev/null +++ b/gnu/packages/patches/clang-runtime-3.7-fix-build-with-python3.patch @@ -0,0 +1,16 @@ +Patch based on changes from +https://github.com/llvm/llvm-project/commit/c1fde4fa943fd03a3d40bc5d32b9e0045fd29208 + +diff --git a/lib/sanitizer_common/scripts/gen_dynamic_list.py b/lib/sanitizer_common/scripts/gen_dynamic_list.py +index 5ea2ca1..d7bc287 100755 +--- a/lib/sanitizer_common/scripts/gen_dynamic_list.py ++++ b/lib/sanitizer_common/scripts/gen_dynamic_list.py +@@ -100,7 +100,7 @@ def main(argv): + print('global:') + result.sort() + for f in result: +- print(' ' + f.encode('utf-8') + ';') ++ print(u' %s;' % f) + if args.version_list: + print('local:') + print(' *;') diff --git a/gnu/packages/patches/llvm-3.x.1-fix-build-with-gcc.patch b/gnu/packages/patches/llvm-3.x.1-fix-build-with-gcc.patch new file mode 100644 index 0000000000..75236c4069 --- /dev/null +++ b/gnu/packages/patches/llvm-3.x.1-fix-build-with-gcc.patch @@ -0,0 +1,15 @@ +Patch from https://github.com/digego/extempore/issues/318 + +diff --git a/include/llvm/IR/ValueMap.h.orig b/include/llvm/IR/ValueMap.h +index ad518ac..d928f6a 100644 +--- a/include/llvm/IR/ValueMap.h ++++ b/include/llvm/IR/ValueMap.h +@@ -99,7 +99,7 @@ + explicit ValueMap(const ExtraData &Data, unsigned NumInitBuckets = 64) + : Map(NumInitBuckets), Data(Data) {} + +- bool hasMD() const { return MDMap; } ++ bool hasMD() const { return static_cast(MDMap); } + MDMapT &MD() { + if (!MDMap) + MDMap.reset(new MDMapT);