summaryrefslogtreecommitdiffstats
path: root/lib/libc/i386/gen
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2006-06-05 14:59:33 +0000
committerkib <kib@FreeBSD.org>2006-06-05 14:59:33 +0000
commit4de8a3e010f2074c16628b44962dffb43e78e92d (patch)
treeecdab8f5a9ef3762d32dc37c02e101461ee586f5 /lib/libc/i386/gen
parent4f317e157608e1b894810563738d4706ca17a07e (diff)
downloadFreeBSD-src-4de8a3e010f2074c16628b44962dffb43e78e92d.zip
FreeBSD-src-4de8a3e010f2074c16628b44962dffb43e78e92d.tar.gz
Replace absolute addressing in the call instructions with position-independend
calls. This eliminates TEXTREL from libc, making its text segment relocatable. PR: i386/85242 Approved by: kan (mentor) MFC after: 1 month
Diffstat (limited to 'lib/libc/i386/gen')
-rw-r--r--lib/libc/i386/gen/_ctx_start.S5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/libc/i386/gen/_ctx_start.S b/lib/libc/i386/gen/_ctx_start.S
index 91a06b8..a990035 100644
--- a/lib/libc/i386/gen/_ctx_start.S
+++ b/lib/libc/i386/gen/_ctx_start.S
@@ -41,10 +41,11 @@ __FBSDID("$FreeBSD$");
ENTRY(_ctx_start)
popl %eax /* get start function */
call *%eax /* call start function */
+ PIC_PROLOGUE
movl %esi, %esp /*
* setup stack for completion routine;
* ucp is now at top of stack
*/
- call _ctx_done /* should never return */
- call abort /* fubar */
+ call PIC_PLT(_ctx_done) /* should never return */
+ call PIC_PLT(abort) /* fubar */
ret
OpenPOWER on IntegriCloud