mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-09 19:08:15 +02:00
* It is incorrect to use var_align() in linker code: it depends on current_settings.alignment, which is valid only while compiling, not while linking. Replaced with size_2_align().
git-svn-id: trunk@25182 -
This commit is contained in:
parent
e7f6b06969
commit
5b6e50c9da
@ -2517,7 +2517,9 @@ implementation
|
||||
firstcommon:=false;
|
||||
end;
|
||||
internalObjData.setsection(commonObjSection);
|
||||
internalObjData.allocalign(var_align(objsym.size));
|
||||
{ TODO: support alignment of common symbols (ELF targets at least),
|
||||
increase commonObjSection.SecAlign if necessary here. }
|
||||
internalObjData.allocalign(used_align(size_2_align(objsym.size),0,commonObjSection.SecAlign));
|
||||
commonsym:=internalObjData.symboldefine(objsym.name,AB_GLOBAL,AT_DATA);
|
||||
commonsym.size:=objsym.size;
|
||||
internalObjData.alloc(objsym.size);
|
||||
|
@ -971,7 +971,7 @@ implementation
|
||||
end;
|
||||
AB_COMMON :
|
||||
begin
|
||||
elfsym.st_value:=var_align(objsym.size);
|
||||
elfsym.st_value:=size_2_align(objsym.size);
|
||||
elfsym.st_info:=STB_GLOBAL shl 4;
|
||||
elfsym.st_shndx:=SHN_COMMON;
|
||||
end;
|
||||
@ -2449,7 +2449,7 @@ implementation
|
||||
if exesym.ObjSymbol.size=0 then
|
||||
Comment(v_error,'Dynamic variable '+exesym.name+' has zero size');
|
||||
internalobjdata.setSection(dynbssobjsec);
|
||||
internalobjdata.allocalign(var_align(exesym.ObjSymbol.size));
|
||||
internalobjdata.allocalign(size_2_align(exesym.ObjSymbol.size));
|
||||
objsym:=internalobjdata.SymbolDefine(exesym.name,AB_GLOBAL,AT_DATA);
|
||||
objsym.size:=exesym.ObjSymbol.size;
|
||||
objsym.indsymbol:=exesym.ObjSymbol.indsymbol;
|
||||
|
Loading…
Reference in New Issue
Block a user