diff options
author | florian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2007-01-06 20:27:59 +0000 |
---|---|---|
committer | florian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2007-01-06 20:27:59 +0000 |
commit | d300666cad8e6f9838746372c57c0233f88e2136 (patch) | |
tree | 6d3e8d5786d2097a9d24776568e9bbafffa6a293 /compiler/aasmbase.pas | |
parent | 7bebdeb5842f3bd28e152ae31e73977125864711 (diff) | |
download | fpc-d300666cad8e6f9838746372c57c0233f88e2136.tar.gz |
* fixed library creating on x86_64-linux
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@5828 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/aasmbase.pas')
-rw-r--r-- | compiler/aasmbase.pas | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/compiler/aasmbase.pas b/compiler/aasmbase.pas index 84455a4069..352f8ac844 100644 --- a/compiler/aasmbase.pas +++ b/compiler/aasmbase.pas @@ -39,7 +39,14 @@ interface type TAsmsymbind=(AB_NONE,AB_EXTERNAL,AB_COMMON,AB_LOCAL,AB_GLOBAL); - TAsmsymtype=(AT_NONE,AT_FUNCTION,AT_DATA,AT_SECTION,AT_LABEL); + TAsmsymtype=( + AT_NONE,AT_FUNCTION,AT_DATA,AT_SECTION,AT_LABEL, + { + the address of this code label is taken somewhere in the code + so it must be taken care of it when creating pic + } + AT_ADDR + ); { is the label only there for getting an DataOffset (e.g. for i/o checks -> alt_addr) or is it a jump target (alt_jump), for debug @@ -298,7 +305,10 @@ implementation constructor TAsmLabel.Createlocal(AList:TFPHashObjectList;nr:longint;ltyp:TAsmLabelType); begin - inherited Create(AList,target_asm.labelprefix+asmlabeltypeprefix[ltyp]+tostr(nr),AB_LOCAL,AT_LABEL); + if ltyp=alt_addr then + inherited Create(AList,target_asm.labelprefix+asmlabeltypeprefix[ltyp]+tostr(nr),AB_LOCAL,AT_ADDR) + else + inherited Create(AList,target_asm.labelprefix+asmlabeltypeprefix[ltyp]+tostr(nr),AB_LOCAL,AT_LABEL); labelnr:=nr; labeltype:=ltyp; is_set:=false; |