summaryrefslogtreecommitdiff
path: root/src/thread/i386
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-08-03 19:57:46 -0400
committerRich Felker <dalias@aerifal.cx>2011-08-03 19:57:46 -0400
commit5f37fc132a8f41994f37b6712feb2d4fd34c2be0 (patch)
treeaaaa1a58cb009684d183ee7cb21b805c540f6a3e /src/thread/i386
parent56385dd5feb4292183c48f62355e1ce4d796957e (diff)
downloadmusl-5f37fc132a8f41994f37b6712feb2d4fd34c2be0.tar.gz
further debloat cancellation handlers
cleanup push and pop are also no-ops if pthread_exit is not reachable. this can make a big difference for library code which needs to protect itself against cancellation, but which is unlikely to actually be used in programs with threads/cancellation.
Diffstat (limited to 'src/thread/i386')
-rw-r--r--src/thread/i386/cancellation.s (renamed from src/thread/i386/cancellation2.s)16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/thread/i386/cancellation2.s b/src/thread/i386/cancellation.s
index beeffb91..75dc6091 100644
--- a/src/thread/i386/cancellation2.s
+++ b/src/thread/i386/cancellation.s
@@ -3,7 +3,7 @@
.type __pthread_register_cancel,@function
__pthread_register_cancel:
pushl %eax
- call __pthread_register_cancel_3
+ call __pthread_do_register
popl %eax
ret
@@ -11,7 +11,7 @@ __pthread_register_cancel:
.type __pthread_unregister_cancel,@function
__pthread_unregister_cancel:
pushl %eax
- call __pthread_unregister_cancel_3
+ call __pthread_do_unregister
popl %eax
ret
@@ -19,6 +19,16 @@ __pthread_unregister_cancel:
.type __pthread_unwind_next,@function
__pthread_unwind_next:
pushl %eax
- call __pthread_unwind_next_3
+ call __pthread_do_unwind
popl %eax
+__pthread_do_unwind:
+__pthread_do_register:
+__pthread_do_unregister:
ret
+
+.weak __pthread_do_unwind
+.weak __pthread_do_register
+.weak __pthread_do_unregister
+.type __pthread_do_unwind,@function
+.type __pthread_do_register,@function
+.type __pthread_do_unregister,@function