Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Ard Biesheuvel 24d610e677 BaseTools/GenFw: allow AArch64 tiny and small code model relocations
The AArch64 small C model makes extensive use of ADRP/ADD and
ADRP/{LDR,STR} pairs to emit PC-relative symbol references with
a +/- 4 GB range. Since the relocation pair splits the relative
offset into a relative page offset and an absolute offset into
a 4 KB page, we need to take extra care to ensure that the target
of the relocation preserves its alignment relative to a 4 KB
alignment boundary.

Also, due to a problem with the --emit-relocs GNU ld option, where
it does not recalculate the addends for section relative relocations,
the only way to guarantee correct code is by requiring the relative
section offset to be equal in the ELF and PE/COFF versions of the
binary. This affects both the 'tiny' and 'small' GCC code models.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Tested-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18197 6f19259b-4bc3-4df7-8a09-765794883524
2015-08-10 07:55:18 +00:00
AppPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
ArmPkg ArmPkg/GenericWatchdogDxe: add missing VOID* cast 2015-08-10 07:54:47 +00:00
ArmPlatformPkg ArmPlatformPkg/FVP: use 'auto' alignment and FIXED placement for XIP modules 2015-08-10 07:55:10 +00:00
ArmVirtPkg ArmVirtPkg: set default for PcdSmbiosDocRev 2015-08-06 10:14:07 +00:00
BaseTools BaseTools/GenFw: allow AArch64 tiny and small code model relocations 2015-08-10 07:55:18 +00:00
BeagleBoardPkg ArmPlatformPkg: Remove Linux specific boot path 2015-07-14 14:37:57 +00:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg CorebootModulePkg: Get power management register addresses. 2015-07-01 09:41:58 +00:00
CorebootPayloadPkg CorebootPayloadPkgIa32: Don't specify X64 architecture 2015-07-27 06:43:29 +00:00
CryptoPkg CryptoPkg: remove redundant parentheses 2015-07-14 02:57:38 +00:00
DuetPkg DuetPkg: Use the new PCDs defined in MdePkg. 2015-05-06 03:26:49 +00:00
EdkCompatibilityPkg EdkCompatibilityPkg: Remove gZeroGuid def in FrameworkHiiOnUefiHiiThunk 2015-07-07 03:05:18 +00:00
EdkShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkShellPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmbeddedPkg EmbeddedPkg/Lan9118Dxe: Ignore spurious RXE errors 2015-07-16 11:24:42 +00:00
EmulatorPkg EmulatorPkg: Update comment for PcdDefaultTerminalType 2015-07-16 08:50:15 +00:00
FatBinPkg FatBinPkg: Update ARM and AArch64 binaries 2015-02-27 17:27:42 +00:00
IntelFrameworkModulePkg LegacyBootMaintUi: Update copyright info, cover old code existed in old BdsDxe driver. 2015-08-05 07:08:02 +00:00
IntelFrameworkPkg IntelFrameworkPkg FrameworkUefiLib: Fix wrong DestMax passed to StrCpyS() 2015-08-05 02:55:05 +00:00
IntelFspPkg IntelFspPkg: Remove the const condition if statement to refine the code. 2015-08-03 02:59:55 +00:00
IntelFspWrapperPkg FspNotifyDxe need handle >4G memory. 2015-07-28 07:26:57 +00:00
MdeModulePkg MdeModulePkg DxeIpl: Fix IA32 build failure with GCC 5.1.1 2015-08-07 23:53:53 +00:00
MdePkg MdePkg UefiLib: Fix wrong DestMax passed to StrCpyS() 2015-08-05 02:55:40 +00:00
NetworkPkg NetworkPkg: Fix assert caused by wrong parameter in AsciiStrCpyS() 2015-08-05 03:25:20 +00:00
Nt32Pkg Nt32Pkg: Platform BDS should test the untested memory 2015-08-06 08:39:30 +00:00
Omap35xxPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
OptionRomPkg OptionRomPkg: Remove redundant included header file defintion in Ax88772.h and Ax88772b.h files 2015-07-08 02:56:54 +00:00
OvmfPkg OvmfPkg: SmbiosVersionLib: recognize SMBIOS 3.x entry point 2015-08-06 10:14:12 +00:00
PcAtChipsetPkg PcAtChipsetPkg/PciHostBridgeDxe/PciRootBridgeIo.c: rewrap code, strip trailing ws 2015-07-14 12:01:30 +00:00
PerformancePkg PerformancePkg Dp_App: Fix ASSERT in GetNameFromHandle 2015-07-13 01:24:44 +00:00
SecurityPkg SecurityPkg: Update coding style 2015-08-06 08:17:54 +00:00
ShellBinPkg ShellBinPkg: Ia32/X64 Shell binary update. 2015-08-07 06:25:28 +00:00
ShellPkg ShellPkg: Add function comments and refine code format to follow EDKII coding style. 2015-08-07 05:42:02 +00:00
SourceLevelDebugPkg SourceLevelDebugPkg: Add missing PCD usage information in UNI files. 2015-07-28 01:52:33 +00:00
StdLib StdLib: Add support for AArch64 2015-07-30 09:51:04 +00:00
StdLibPrivateInternalFiles */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
UefiCpuPkg UefiCpuPkg CpuDxe: Sync up the settings of Execute Disable to APs 2015-08-08 00:00:36 +00:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg Vlv2TbltDevicePkg: Sync the branch changes to trunk. 2015-08-05 07:26:45 +00:00
Vlv2TbltDevicePkg Vlv2TbltDevicePkg: Sync the branch changes to trunk. 2015-08-04 02:55:02 +00:00
.gitignore EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
BuildNotes2.txt Update to new SVN URL in readme.txt 2013-06-08 05:26:39 +00:00
Edk2Setup.bat Edk2: Update Edk2Setup.bat 2015-06-16 07:23:45 +00:00
Maintainers.txt Maintainers.txt: Add Daryl's new email address 2015-07-26 08:06:05 +00:00
edksetup.bat Update edksetup.bat to support Microsoft Visual Studio 2013 when building the Nt32Pkg emulation platform (enabled using the --nt32 flag). 2014-10-30 17:09:25 +00:00
edksetup.sh edksetup.sh: Ensure that WORKSPACE points to the top of an edk2 checkout 2014-07-28 17:37:40 +00:00