소스 검색

move __abort_lock to its own file and drop pointless weak_alias trick

the dummy definition of __abort_lock in sigaction.c was performing
exactly the same role that putting the lock in its own source file
could and should have been used to achieve.

while we're moving it, give it a proper declaration.
Rich Felker 4 년 전
부모
커밋
3cd3de6189
4개의 변경된 파일5개의 추가작업 그리고 8개의 파일을 삭제
  1. 0 2
      src/exit/abort.c
  2. 3 0
      src/exit/abort_lock.c
  3. 2 0
      src/internal/pthread_impl.h
  4. 0 6
      src/signal/sigaction.c

+ 0 - 2
src/exit/abort.c

@@ -6,8 +6,6 @@
 #include "lock.h"
 #include "ksigaction.h"
 
-hidden volatile int __abort_lock[1];
-
 _Noreturn void abort(void)
 {
 	raise(SIGABRT);

+ 3 - 0
src/exit/abort_lock.c

@@ -0,0 +1,3 @@
+#include "pthread_impl.h"
+
+volatile int __abort_lock[1];

+ 2 - 0
src/internal/pthread_impl.h

@@ -196,6 +196,8 @@ hidden void __tl_sync(pthread_t);
 
 extern hidden volatile int __thread_list_lock;
 
+extern hidden volatile int __abort_lock[1];
+
 extern hidden unsigned __default_stacksize;
 extern hidden unsigned __default_guardsize;
 

+ 0 - 6
src/signal/sigaction.c

@@ -7,12 +7,6 @@
 #include "lock.h"
 #include "ksigaction.h"
 
-static volatile int dummy_lock[1] = { 0 };
-
-extern hidden volatile int __abort_lock[1];
-
-weak_alias(dummy_lock, __abort_lock);
-
 static int unmask_done;
 static unsigned long handler_set[_NSIG/(8*sizeof(long))];