mirror of https://github.com/acidanthera/audk.git
BaseTools/GenFw: remove ARM and RVCT references from ELF64 code
ARM and RVCT apply to 32-bit code only, so remove any references to them (including the workaround for the linker) from the 64-bit version of ElfConvert.c Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18539 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
36c64c664b
commit
0c960e86c2
|
@ -334,12 +334,8 @@ ScanSections64 (
|
|||
if ((shdr->sh_addr & (shdr->sh_addralign - 1)) == 0) {
|
||||
// if the section address is aligned we must align PE/COFF
|
||||
mCoffOffset = (UINT32) ((mCoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1));
|
||||
} else if ((shdr->sh_addr % shdr->sh_addralign) != (mCoffOffset % shdr->sh_addralign)) {
|
||||
// ARM RVCT tools have behavior outside of the ELF specification to try
|
||||
// and make images smaller. If sh_addr is not aligned to sh_addralign
|
||||
// then the section needs to preserve sh_addr MOD sh_addralign.
|
||||
// Normally doing nothing here works great.
|
||||
Error (NULL, 0, 3000, "Invalid", "Unsupported section alignment.");
|
||||
} else {
|
||||
Error (NULL, 0, 3000, "Invalid", "Section address not aligned to its own alignment.");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -369,10 +365,7 @@ ScanSections64 (
|
|||
}
|
||||
|
||||
mDebugOffset = DebugRvaAlign(mCoffOffset);
|
||||
|
||||
if (mEhdr->e_machine != EM_ARM) {
|
||||
mCoffOffset = CoffAlign(mCoffOffset);
|
||||
}
|
||||
mCoffOffset = CoffAlign(mCoffOffset);
|
||||
|
||||
if (SectionCount > 1 && mOutImageType == FW_EFI_IMAGE) {
|
||||
Warning (NULL, 0, 0, NULL, "Mulitple sections in %s are merged into 1 text section. Source level debug might not work correctly.", mInImageName);
|
||||
|
@ -392,12 +385,8 @@ ScanSections64 (
|
|||
if ((shdr->sh_addr & (shdr->sh_addralign - 1)) == 0) {
|
||||
// if the section address is aligned we must align PE/COFF
|
||||
mCoffOffset = (UINT32) ((mCoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1));
|
||||
} else if ((shdr->sh_addr % shdr->sh_addralign) != (mCoffOffset % shdr->sh_addralign)) {
|
||||
// ARM RVCT tools have behavior outside of the ELF specification to try
|
||||
// and make images smaller. If sh_addr is not aligned to sh_addralign
|
||||
// then the section needs to preserve sh_addr MOD sh_addralign.
|
||||
// Normally doing nothing here works great.
|
||||
Error (NULL, 0, 3000, "Invalid", "Unsupported section alignment.");
|
||||
} else {
|
||||
Error (NULL, 0, 3000, "Invalid", "Section address not aligned to its own alignment.");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -448,12 +437,8 @@ ScanSections64 (
|
|||
if ((shdr->sh_addr & (shdr->sh_addralign - 1)) == 0) {
|
||||
// if the section address is aligned we must align PE/COFF
|
||||
mCoffOffset = (UINT32) ((mCoffOffset + shdr->sh_addralign - 1) & ~(shdr->sh_addralign - 1));
|
||||
} else if ((shdr->sh_addr % shdr->sh_addralign) != (mCoffOffset % shdr->sh_addralign)) {
|
||||
// ARM RVCT tools have behavior outside of the ELF specification to try
|
||||
// and make images smaller. If sh_addr is not aligned to sh_addralign
|
||||
// then the section needs to preserve sh_addr MOD sh_addralign.
|
||||
// Normally doing nothing here works great.
|
||||
Error (NULL, 0, 3000, "Invalid", "Unsupported section alignment.");
|
||||
} else {
|
||||
Error (NULL, 0, 3000, "Invalid", "Section address not aligned to its own alignment.");
|
||||
}
|
||||
}
|
||||
if (shdr->sh_size != 0) {
|
||||
|
|
Loading…
Reference in New Issue