aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/i386
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2006-06-05 14:59:33 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2006-06-05 14:59:33 +0000
commit3d5fa0356edbc4f37f4df2123a705e13ebd3e1e9 (patch)
treeecdab8f5a9ef3762d32dc37c02e101461ee586f5 /lib/libc/i386
parente257c20ec11903098245cf935676b1794955ffb3 (diff)
downloadsrc-3d5fa0356edbc4f37f4df2123a705e13ebd3e1e9.tar.gz
src-3d5fa0356edbc4f37f4df2123a705e13ebd3e1e9.zip
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
Notes
Notes: svn path=/head/; revision=159270
Diffstat (limited to 'lib/libc/i386')
-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 91a06b863657..a990035929b6 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