summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>2001-10-29 10:14:51 +0000
committerPeter Wemm <peter@FreeBSD.org>2001-10-29 10:14:51 +0000
commit16ef3f735a4803becef5e3e39dca4bafe320af87 (patch)
tree9183984587640d8245f4107a92726068860181ef /lib
parent14a55adf3628d7fa359a37f14bb7bf59f6cec53f (diff)
Notes
Diffstat (limited to 'lib')
-rw-r--r--lib/csu/ia64/crt1.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/csu/ia64/crt1.c b/lib/csu/ia64/crt1.c
index f8b02ab71e90..b12b4f31b723 100644
--- a/lib/csu/ia64/crt1.c
+++ b/lib/csu/ia64/crt1.c
@@ -70,7 +70,14 @@ _start(char **ap,
char **argv;
char **env;
- __asm __volatile("movl gp=_GLOBAL_OFFSET_TABLE_");
+ /* Calculate gp */
+ __asm __volatile(" \
+ movl gp=@gprel(1f) ; \
+ ;; ; \
+ 1: mov r14=ip ; \
+ ;; ; \
+ sub gp=r14,gp ; \
+ ;; ");
argc = * (long *) ap;
argv = ap + 1;