diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2006-06-05 14:59:33 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2006-06-05 14:59:33 +0000 |
commit | 3d5fa0356edbc4f37f4df2123a705e13ebd3e1e9 (patch) | |
tree | ecdab8f5a9ef3762d32dc37c02e101461ee586f5 /lib/libc/i386 | |
parent | e257c20ec11903098245cf935676b1794955ffb3 (diff) | |
download | src-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.S | 5 |
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 |