[asan] re-enable __tls_get_addr interceptor with a proper fix (use __attribute__((tls_model(initial-exec))))
llvm-svn: 200463
This commit is contained in:
		
							parent
							
								
									409d26ac5e
								
							
						
					
					
						commit
						b22298af9a
					
				| 
						 | 
				
			
			@ -1,5 +1,3 @@
 | 
			
		|||
// Currently broken...
 | 
			
		||||
// XFAIL: *
 | 
			
		||||
// REQUIRES: asan-64-bits
 | 
			
		||||
// Stress test dynamic TLS + dlopen + threads.
 | 
			
		||||
//
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -177,6 +177,6 @@
 | 
			
		|||
#define SANITIZER_INTERCEPT_PTHREAD_COND SI_NOT_WINDOWS
 | 
			
		||||
#define SANITIZER_INTERCEPT_PTHREAD_SETNAME_NP SI_LINUX_NOT_ANDROID
 | 
			
		||||
 | 
			
		||||
#define SANITIZER_INTERCEPT_TLS_GET_ADDR 0  // SI_LINUX_NOT_ANDROID
 | 
			
		||||
#define SANITIZER_INTERCEPT_TLS_GET_ADDR SI_LINUX_NOT_ANDROID
 | 
			
		||||
 | 
			
		||||
#endif  // #ifndef SANITIZER_PLATFORM_INTERCEPTORS_H
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,8 +33,8 @@ struct Glibc_2_19_tls_header {
 | 
			
		|||
  uptr start;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// This must be static TLS, i.e. the run-time should be build with
 | 
			
		||||
// -ftls-model=initial-exec or equivalent.
 | 
			
		||||
// This must be static TLS
 | 
			
		||||
__attribute__((tls_model("initial-exec")))
 | 
			
		||||
static __thread DTLS dtls;
 | 
			
		||||
 | 
			
		||||
// Make sure we properly destroy the DTLS objects:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue