mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-26 22:38:07 -05:00
6b26f9152c
* gnu/packages/patches/clang-runtime-asan-build-fixes.patch, gnu/packages/patches/clang-runtime-esan-build-fixes.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/llvm.scm (clang-runtime-from-llvm): Add 'patches' parameter and honor it. (clang-runtime): Pass patch list. (clang-runtime-3.9.1, clang-runtime-3.7, clang-runtime-3.6) (clang-runtime-3.5): Likewise.
19 lines
1,000 B
Diff
19 lines
1,000 B
Diff
Fix esan compilation against glibc 2.26:
|
||
|
||
/tmp/guix-build-clang-runtime-3.9.1.drv-0/compiler-rt-3.9.1.src/lib/esan/esan_sideline_linux.cpp: In static member function ‘static int __esan::SidelineThread::runSideline(void*)’:
|
||
/tmp/guix-build-clang-runtime-3.9.1.drv-0/compiler-rt-3.9.1.src/lib/esan/esan_sideline_linux.cpp:73:22: error: aggregate ‘__esan::SidelineThread::runSideline(void*)::sigaltstack SigAltStack’ has incomplete type and cannot be defined
|
||
|
||
Patch from <https://github.com/google/sanitizers/issues/822>.
|
||
|
||
index d04f5909d..bc272dfe4 100644
|
||
--- a/lib/esan/esan_sideline_linux.cpp
|
||
+++ b/lib/esan/esan_sideline_linux.cpp
|
||
@@ -70,7 +70,7 @@ int SidelineThread::runSideline(void *Arg) {
|
||
|
||
// Set up a signal handler on an alternate stack for safety.
|
||
InternalScopedBuffer<char> StackMap(SigAltStackSize);
|
||
- struct sigaltstack SigAltStack;
|
||
+ stack_t SigAltStack;
|
||
SigAltStack.ss_sp = StackMap.data();
|
||
SigAltStack.ss_size = SigAltStackSize;
|
||
SigAltStack.ss_flags = 0;
|