[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#64129] [PATCH] gnu: clang-runtime-15: Fix address sanitizer support
From: |
Tobias Kortkamp |
Subject: |
[bug#64129] [PATCH] gnu: clang-runtime-15: Fix address sanitizer support |
Date: |
Sat, 17 Jun 2023 15:31:56 +0200 |
$ guix shell clang-toolchain@15 -- clang -o test -fsanitize=address test.c
ld: cannot find
/gnu/store/i429h17s15g48ir9vl1bzp3cv39l5pib-clang-runtime-15.0.7/lib/linux/libclang_rt.asan_static-x86_64.a:
No such file or directory
ld: cannot find
/gnu/store/i429h17s15g48ir9vl1bzp3cv39l5pib-clang-runtime-15.0.7/lib/linux/libclang_rt.asan-x86_64.a:
No such file or directory
clang-15: error: linker command failed with exit code 1 (use -v to see
invocation)
* gnu/packages/llvm.scm (clang-runtime-15): Fix address sanitizer
support by bringing back the static libraries.
---
Hi,
I'm unable to compile programs with -fsanitize=address with
clang-toolchain@15:
#+name test.c
#+begin_src c
int main() { return 0; }
#+end_src
#+begin_quote
$ guix describe
Generation 46 Jun 12 2023 09:12:12 (current)
guix dffaf42
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: dffaf42e5eac3822bd6b44e9749fc8e5f48fb99c
$ guix shell clang-toolchain -- clang -o test -fsanitize=address test.c
ld: cannot find
/gnu/store/i429h17s15g48ir9vl1bzp3cv39l5pib-clang-runtime-15.0.7/lib/linux/libclang_rt.asan_static-x86_64.a:
No such file or directory
ld: cannot find
/gnu/store/i429h17s15g48ir9vl1bzp3cv39l5pib-clang-runtime-15.0.7/lib/linux/libclang_rt.asan-x86_64.a:
No such file or directory
clang-15: error: linker command failed with exit code 1 (use -v to see
invocation)
#+end_quote
Similar with -shared-libsan:
#+begin_quote
$ guix shell clang-toolchain -- clang -o test -shared-libsan -fsanitize=address
test.c
ld: cannot find
/gnu/store/i429h17s15g48ir9vl1bzp3cv39l5pib-clang-runtime-15.0.7/lib/linux/libclang_rt.asan-preinit-x86_64.a:
No such file or directory
ld: cannot find
/gnu/store/i429h17s15g48ir9vl1bzp3cv39l5pib-clang-runtime-15.0.7/lib/linux/libclang_rt.asan_static-x86_64.a:
No such file or directory
clang-15: error: linker command failed with exit code 1 (use -v to see
invocation)
#+end_quote
With clang-toolchain@14 everything works fine.
Unless I'm missing some magic flag in the clang command, I'm guessing
that the reason for this is the following bad phase in the
clang-runtime-15 package which is missing in clang-runtime-14:
#+begin_src scheme
(add-after 'install 'delete-static-libraries
;; Reduce size from 33 MiB to 7.4 MiB.
(lambda _
(for-each delete-file
(find-files #$output "\\.a(\\.syms)?$"))))
#+end_src
If I remove it then the toolchain works fine again. The phase needs to
removed or fixed to not outright delete all static libraries. The
patch just removes it since that's easiest.
Best regards,
Tobias
gnu/packages/llvm.scm | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index f59c8e9592..9764552a62 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -699,12 +699,7 @@ (define-public clang-runtime-15
#~(modify-phases #$phases
(add-after 'unpack 'change-directory
(lambda _
- (chdir "compiler-rt")))
- (add-after 'install 'delete-static-libraries
- ;; Reduce size from 33 MiB to 7.4 MiB.
- (lambda _
- (for-each delete-file
- (find-files #$output "\\.a(\\.syms)?$"))))))))
+ (chdir "compiler-rt")))))))
(native-inputs
(modify-inputs (package-native-inputs template)
(prepend gcc-12))) ;libfuzzer fails to build with GCC 11
base-commit: 52f2980fa3feaf6e59b9e5144391faf8feb52a87
--
2.40.1
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug#64129] [PATCH] gnu: clang-runtime-15: Fix address sanitizer support,
Tobias Kortkamp <=