summaryrefslogtreecommitdiff
path: root/devel/linuxthreads/files/ldwrap
diff options
context:
space:
mode:
Diffstat (limited to 'devel/linuxthreads/files/ldwrap')
-rw-r--r--devel/linuxthreads/files/ldwrap117
1 files changed, 117 insertions, 0 deletions
diff --git a/devel/linuxthreads/files/ldwrap b/devel/linuxthreads/files/ldwrap
new file mode 100644
index 000000000000..9415c7dac375
--- /dev/null
+++ b/devel/linuxthreads/files/ldwrap
@@ -0,0 +1,117 @@
+#!/bin/sh -e
+#
+# Gross hack. Wrapper for ld that renames various functions to avoid
+# conflicts between linuxthreads and native threads
+#
+echo "[ldwrap $@]"
+if test "$1" = "-o" -a "$2" != "wraputhread.o.tmp" -a "$2" != "wraputhread.Po.tmp" -a "$2" != "wraputhread.So.tmp"
+then
+ target=$2
+ shift
+ shift
+ ld -o $target.tmp "$@"
+objcopy \
+--redefine-sym _pthread_cleanup_pop=linuxthreads__pthread_cleanup_pop \
+--redefine-sym _pthread_cleanup_pop_restore=linuxthreads__pthread_cleanup_pop_restore \
+--redefine-sym _pthread_cleanup_push=linuxthreads__pthread_cleanup_push \
+--redefine-sym _pthread_cleanup_push_defer=linuxthreads__pthread_cleanup_push_defer \
+--redefine-sym pthread_atfork=linuxthreads_pthread_atfork \
+--redefine-sym pthread_attr_destroy=linuxthreads_pthread_attr_destroy \
+--redefine-sym pthread_attr_getdetachstate=linuxthreads_pthread_attr_getdetachstate \
+--redefine-sym pthread_attr_getguardsize=linuxthreads_pthread_attr_getguardsize \
+--redefine-sym pthread_attr_getinheritsched=linuxthreads_pthread_attr_getinheritsched \
+--redefine-sym pthread_attr_getschedparam=linuxthreads_pthread_attr_getschedparam \
+--redefine-sym pthread_attr_getschedpolicy=linuxthreads_pthread_attr_getschedpolicy \
+--redefine-sym pthread_attr_getscope=linuxthreads_pthread_attr_getscope \
+--redefine-sym pthread_attr_getstack=linuxthreads_pthread_attr_getstack \
+--redefine-sym pthread_attr_getstackaddr=linuxthreads_pthread_attr_getstackaddr \
+--redefine-sym pthread_attr_getstacksize=linuxthreads_pthread_attr_getstacksize \
+--redefine-sym pthread_attr_init=linuxthreads_pthread_attr_init \
+--redefine-sym pthread_attr_setdetachstate=linuxthreads_pthread_attr_setdetachstate \
+--redefine-sym pthread_attr_setguardsize=linuxthreads_pthread_attr_setguardsize \
+--redefine-sym pthread_attr_setinheritsched=linuxthreads_pthread_attr_setinheritsched \
+--redefine-sym pthread_attr_setschedparam=linuxthreads_pthread_attr_setschedparam \
+--redefine-sym pthread_attr_setschedpolicy=linuxthreads_pthread_attr_setschedpolicy \
+--redefine-sym pthread_attr_setscope=linuxthreads_pthread_attr_setscope \
+--redefine-sym pthread_attr_setstack=linuxthreads_pthread_attr_setstack \
+--redefine-sym pthread_attr_setstackaddr=linuxthreads_pthread_attr_setstackaddr \
+--redefine-sym pthread_attr_setstacksize=linuxthreads_pthread_attr_setstacksize \
+--redefine-sym pthread_barrier_destroy=linuxthreads_pthread_barrier_destroy \
+--redefine-sym pthread_barrier_init=linuxthreads_pthread_barrier_init \
+--redefine-sym pthread_barrier_wait=linuxthreads_pthread_barrier_wait \
+--redefine-sym pthread_barrierattr_destroy=linuxthreads_pthread_barrierattr_destroy \
+--redefine-sym pthread_barrierattr_getpshared=linuxthreads_pthread_barrierattr_getpshared \
+--redefine-sym pthread_barrierattr_init=linuxthreads_pthread_barrierattr_init \
+--redefine-sym pthread_barrierattr_setpshared=linuxthreads_pthread_barrierattr_setpshared \
+--redefine-sym pthread_cancel=linuxthreads_pthread_cancel \
+--redefine-sym pthread_cond_broadcast=linuxthreads_pthread_cond_broadcast \
+--redefine-sym pthread_cond_destroy=linuxthreads_pthread_cond_destroy \
+--redefine-sym pthread_cond_init=linuxthreads_pthread_cond_init \
+--redefine-sym pthread_cond_signal=linuxthreads_pthread_cond_signal \
+--redefine-sym pthread_cond_timedwait=linuxthreads_pthread_cond_timedwait \
+--redefine-sym pthread_cond_wait=linuxthreads_pthread_cond_wait \
+--redefine-sym pthread_condattr_destroy=linuxthreads_pthread_condattr_destroy \
+--redefine-sym pthread_condattr_getpshared=linuxthreads_pthread_condattr_getpshared \
+--redefine-sym pthread_condattr_init=linuxthreads_pthread_condattr_init \
+--redefine-sym pthread_condattr_setpshared=linuxthreads_pthread_condattr_setpshared \
+--redefine-sym pthread_create=linuxthreads_pthread_create \
+--redefine-sym pthread_detach=linuxthreads_pthread_detach \
+--redefine-sym pthread_equal=linuxthreads_pthread_equal \
+--redefine-sym pthread_exit=linuxthreads_pthread_exit \
+--redefine-sym pthread_getattr_np=linuxthreads_pthread_getattr_np \
+--redefine-sym pthread_getconcurrency=linuxthreads_pthread_getconcurrency \
+--redefine-sym pthread_getcpuclockid=linuxthreads_pthread_getcpuclockid \
+--redefine-sym pthread_getschedparam=linuxthreads_pthread_getschedparam \
+--redefine-sym pthread_getspecific=linuxthreads_pthread_getspecific \
+--redefine-sym pthread_join=linuxthreads_pthread_join \
+--redefine-sym pthread_key_create=linuxthreads_pthread_key_create \
+--redefine-sym pthread_key_delete=linuxthreads_pthread_key_delete \
+--redefine-sym pthread_kill=linuxthreads_pthread_kill \
+--redefine-sym pthread_kill_other_threads_np=linuxthreads_pthread_kill_other_threads_np \
+--redefine-sym pthread_mutex_destroy=linuxthreads_pthread_mutex_destroy \
+--redefine-sym pthread_mutex_init=linuxthreads_pthread_mutex_init \
+--redefine-sym pthread_mutex_lock=linuxthreads_pthread_mutex_lock \
+--redefine-sym pthread_mutex_timedlock=linuxthreads_pthread_mutex_timedlock \
+--redefine-sym pthread_mutex_trylock=linuxthreads_pthread_mutex_trylock \
+--redefine-sym pthread_mutex_unlock=linuxthreads_pthread_mutex_unlock \
+--redefine-sym pthread_mutexattr_destroy=linuxthreads_pthread_mutexattr_destroy \
+--redefine-sym pthread_mutexattr_getpshared=linuxthreads_pthread_mutexattr_getpshared \
+--redefine-sym pthread_mutexattr_gettype=linuxthreads_pthread_mutexattr_gettype \
+--redefine-sym pthread_mutexattr_init=linuxthreads_pthread_mutexattr_init \
+--redefine-sym pthread_mutexattr_setpshared=linuxthreads_pthread_mutexattr_setpshared \
+--redefine-sym pthread_mutexattr_settype=linuxthreads_pthread_mutexattr_settype \
+--redefine-sym pthread_once=linuxthreads_pthread_once \
+--redefine-sym pthread_rwlock_destroy=linuxthreads_pthread_rwlock_destroy \
+--redefine-sym pthread_rwlock_init=linuxthreads_pthread_rwlock_init \
+--redefine-sym pthread_rwlock_rdlock=linuxthreads_pthread_rwlock_rdlock \
+--redefine-sym pthread_rwlock_timedrdlock=linuxthreads_pthread_rwlock_timedrdlock \
+--redefine-sym pthread_rwlock_timedwrlock=linuxthreads_pthread_rwlock_timedwrlock \
+--redefine-sym pthread_rwlock_tryrdlock=linuxthreads_pthread_rwlock_tryrdlock \
+--redefine-sym pthread_rwlock_trywrlock=linuxthreads_pthread_rwlock_trywrlock \
+--redefine-sym pthread_rwlock_unlock=linuxthreads_pthread_rwlock_unlock \
+--redefine-sym pthread_rwlock_wrlock=linuxthreads_pthread_rwlock_wrlock \
+--redefine-sym pthread_rwlockattr_destroy=linuxthreads_pthread_rwlockattr_destroy \
+--redefine-sym pthread_rwlockattr_getkind_np=linuxthreads_pthread_rwlockattr_getkind_np \
+--redefine-sym pthread_rwlockattr_getpshared=linuxthreads_pthread_rwlockattr_getpshared \
+--redefine-sym pthread_rwlockattr_init=linuxthreads_pthread_rwlockattr_init \
+--redefine-sym pthread_rwlockattr_setkind_np=linuxthreads_pthread_rwlockattr_setkind_np \
+--redefine-sym pthread_rwlockattr_setpshared=linuxthreads_pthread_rwlockattr_setpshared \
+--redefine-sym pthread_self=linuxthreads_pthread_self \
+--redefine-sym pthread_setcancelstate=linuxthreads_pthread_setcancelstate \
+--redefine-sym pthread_setcanceltype=linuxthreads_pthread_setcanceltype \
+--redefine-sym pthread_setconcurrency=linuxthreads_pthread_setconcurrency \
+--redefine-sym pthread_setschedparam=linuxthreads_pthread_setschedparam \
+--redefine-sym pthread_setspecific=linuxthreads_pthread_setspecific \
+--redefine-sym pthread_sigmask=linuxthreads_pthread_sigmask \
+--redefine-sym pthread_spin_destroy=linuxthreads_pthread_spin_destroy \
+--redefine-sym pthread_spin_init=linuxthreads_pthread_spin_init \
+--redefine-sym pthread_spin_lock=linuxthreads_pthread_spin_lock \
+--redefine-sym pthread_spin_trylock=linuxthreads_pthread_spin_trylock \
+--redefine-sym pthread_spin_unlock=linuxthreads_pthread_spin_unlock \
+--redefine-sym pthread_testcancel=linuxthreads_pthread_testcancel \
+--redefine-sym pthread_yield=linuxthreads_pthread_yield \
+$target.tmp $target
+ rm -f $target.tmp
+else
+ exec ld "$@"
+fi