* 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;
 |