On 12 August 2015 at 01:58, Laszlo Ersek <ler...@redhat.com> wrote: > On 08/10/15 12:27, Ard Biesheuvel wrote: >> The DEBUG build of the Shell exceeds 1 MB in size, which means that >> it cannot be built using the tiny code model. So force the use of >> the code model in this case. > > You forgot the word "small". Can be fixed up at commit time. >
OK >> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org> >> --- >> ArmVirtPkg/ArmVirt.dsc.inc | 9 +++++++++ >> 1 file changed, 9 insertions(+) >> >> diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc >> index 7bba6eba05a8..1ff126b2f6dc 100644 >> --- a/ArmVirtPkg/ArmVirt.dsc.inc >> +++ b/ArmVirtPkg/ArmVirt.dsc.inc >> @@ -406,4 +406,13 @@ [Components.common] >> gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF >> gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE >> gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000 >> + >> + <BuildOptions> >> + # >> + # The DEBUG target of the Shell module may well end up being over 1 MB >> + # in size, which exceeds the range of the AArch64 tiny code model. So >> + # override the code model to 'small' in this case. >> + # >> + GCC:DEBUG_*_AARCH64_CC_FLAGS = -mcmodel=small >> + GCC:DEBUG_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x1000 >> } >> > > I hope all this finesse is going to work with gcc-4.8! :) > GCC48 is my primary development toolchain, so that should be fine. For the record, I also tested with the new CLANG35 toolchain, which doesn't support the tiny code model, but happily accepts it as a command line parameter if it is superseded with 'small' later. I.e., after applying 2/2, we will pass -mcmodel=tiny ... -mcmodel=small to Clang, without any ill effects. > Reviewed-by: Laszlo Ersek <ler...@redhat.com> Thanks, Ard. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel