At least OpenBSD implements PIC in the same way ELF does.

This commit is contained in:
Andy Polyakov 2003-01-09 16:06:09 +00:00
parent 416b19c6fc
commit 9d1b5614f9

View File

@ -566,13 +566,13 @@ sub main'picmeup
___ ___
push(@out,$tmp); push(@out,$tmp);
} }
elsif ($main'pic && $main'elf) elsif ($main'pic && ($main'elf || $main'aout))
{ {
push(@out,"\t.align\t8\n"); push(@out,"\t.align\t8\n");
&main'call(&main'label("PIC_me_up")); &main'call(&main'label("PIC_me_up"));
&main'set_label("PIC_me_up"); &main'set_label("PIC_me_up");
&main'blindpop($dst); &main'blindpop($dst);
&main'add($dst,"\$_GLOBAL_OFFSET_TABLE_+[.-" . &main'add($dst,"\$$under"."_GLOBAL_OFFSET_TABLE_+[.-".
&main'label("PIC_me_up") . "]"); &main'label("PIC_me_up") . "]");
&main'mov($dst,&main'DWP($sym."\@GOT",$dst)); &main'mov($dst,&main'DWP($sym."\@GOT",$dst));
} }