Attached.
Thanks .
On Fri, Feb 5, 2016 at 9:03 PM, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
Can you send me the output of 'readelf -a HelloWorld.dll'
On 5 February 2016 at 16:31, Ravikanth MVR ravikanth.mvr@broadcom.com wrote:
Ard,
Tried out again by downloading the edk2-master but the result was same.Please find below the snapshot.BTW,why this error-AARCH64 relative relocations require identical ELF and PE/COFF section offsets -comes up?
"gcc" -g -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -c -include
AutoGen.h
-fno-common -DSTRING_ARRAY_NAME=HelloWorldStrings -mcmodel=large -g -Os -fshort-wchar -fno-stack-protector -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -c -include AutoGen.h -fno-common -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char
-ffunction-sections
-fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address -fno-asynchronous-unwind-tables -Wno-unused-but-set-variable -o
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/OUTPUT/./AutoGen.obj
-I/home/edk2_new1/MyWorkSpace/MdeModulePkg/Application/HelloWorld
-I/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG
-I/home/edk2_new1/MyWorkSpace/MdePkg -I/home/edk2_new1/MyWorkSpace/MdePkg/Include -I/home/edk2_new1/MyWorkSpace/MdePkg/Include/AArch64 -I/home/edk2_new1/MyWorkSpace/MdeModulePkg -I/home/edk2_new1/MyWorkSpace/MdeModulePkg/Include
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/AutoGen.c
"ar" -cr
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/OUTPUT/HelloWorld.lib
@/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/OUTPUT/object_files.lst
"ld" -o
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
--emit-relocs -nostdlib --gc-sections -u _ModuleEntryPoint -e _ModuleEntryPoint -Map
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.map
-z common-page-size=0x20 --start-group
@/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/OUTPUT/static_library_files.lst
--end-group --script=/home/edk2_new1/MyWorkSpace/BaseTools/Scripts/GccBase.lds --defsym=PECOFF_HEADER_SIZE=0x228 "echo" objcopy not needed for
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
objcopy not needed for
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
cp -f
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.debug
echo --strip-unneeded -R .eh_frame
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
--strip-unneeded -R .eh_frame
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
echo
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
cp -f
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.debug
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64 "GenFw" -e UEFI_APPLICATION -o
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.efi
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
GenFw: ERROR 3000: Invalid WriteSections64():
/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
AARCH64 relative relocations require identical ELF and PE/COFF section offsets make: ***
[/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.efi]
Error 2
build.py... : error 7000: Failed to execute command make tbuild
[/home/edk2_new1/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld]
build.py... : error F002: Failed to build module
/home/edk2_new1/MyWorkSpace/MdeModulePkg/Application/HelloWorld/HelloWorld.inf
[AARCH64, GCC48, RELEASE]
- Failed -
Build end time: 07:27:21, Feb.05 2016 Build total time: 00:01:04
Thanks Ravi
On Fri, Feb 5, 2016 at 8:06 PM, Ravikanth MVR <
ravikanth.mvr@broadcom.com>
wrote:
Yes.I downloaded the package from https://github.com/tianocore/edk2.If
you
want me to again download the package and try,I would.
On Fri, Feb 5, 2016 at 8:01 PM, Ard Biesheuvel <
ard.biesheuvel@linaro.org>
wrote:
On 5 February 2016 at 15:30, Ravikanth MVR <ravikanth.mvr@broadcom.com
wrote:
Ard, We tried out the patch and we are not seeing the relocation errors anymore.But we are seeing a new error from WriteSection64()-"AARCH64 relative relocations require identical ELF and PE/COFF section offsets".Below is the complete snapshot of the error.
Are you using the latest EDK2?
cp -f
/home/edk2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
/home/edk2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.debug
echo --strip-unneeded -R .eh_frame
/home/edk2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
--strip-unneeded -R .eh_frame
/home/edk2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
echo
/home/edk2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
/home/edk2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
cp -f
/home/edk2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.debug
/home/edk2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64 "GenFw" -e UEFI_APPLICATION -o
/home/edk2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.efi
/home/edk2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
GenFw: ERROR 3000: Invalid WriteSections64():
/home/edk2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
AARCH64 relative relocations require identical ELF and PE/COFF
section
offsets make: ***
[/home/edk2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.efi]
Error 2
Thanks Ravi
On Fri, Feb 5, 2016 at 6:06 PM, Ravikanth MVR ravikanth.mvr@broadcom.com wrote:
Thanks Ard!Would try out and let you know the results.
On Fri, Feb 5, 2016 at 2:30 PM, Ard Biesheuvel ard.biesheuvel@linaro.org wrote: > > On 4 February 2016 at 20:41, Ravikanth MVR > ravikanth.mvr@broadcom.com > wrote: > > Ard, > > > > We built the EDK2 with target set to AARCH64 and GCC48 as the > > toolchain.Still we are same relocation errors as before.Below is > > the > > complete snapshot of the error and map file as well. > > > > Could you try the following patch (don't forget to rebuild > BaseTools/) > > diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c > b/BaseTools/Source/C/GenFw/Elf64Convert.c > index 90d80a22daf2..0a1329f0f668 100644 > --- a/BaseTools/Source/C/GenFw/Elf64Convert.c > +++ b/BaseTools/Source/C/GenFw/Elf64Convert.c > @@ -767,6 +767,9 @@ WriteSections64 ( > case R_AARCH64_LD_PREL_LO19: > case R_AARCH64_CALL26: > case R_AARCH64_JUMP26: > + case R_AARCH64_PREL64: > + case R_AARCH64_PREL32: > + case R_AARCH64_PREL16: > // > // The GCC toolchains (i.e., binutils) may corrupt > section > relative > // relocations when emitting relocation sections into > fully > linked > @@ -869,6 +872,11 @@ WriteRelocations64 ( > case R_AARCH64_JUMP26: > break; > > + case R_AARCH64_PREL64: > + case R_AARCH64_PREL32: > + case R_AARCH64_PREL16: > + break; > + > case R_AARCH64_ADR_PREL_PG_HI21: > case R_AARCH64_ADD_ABS_LO12_NC: > case R_AARCH64_LDST8_ABS_LO12_NC: > > -- > Ard. > > > > "gcc" -g -fshort-wchar -fno-strict-aliasing -Wall -Werror > > -Wno-array-bounds -ffunction-sections -fdata-sections -c -include > > AutoGen.h > > -DSTRING_ARRAY_NAME=HelloWorldStrings -g -Os -fshort-wchar > > -fno-strict-aliasing -fno-stack-protector -Wall -Werror > > -Wno-array-bounds -c > > -include AutoGen.h -mcmodel=large -mlittle-endian
-fno-short-enums
> > -save-temps -fverbose-asm -fsigned-char -ffunction-sections > > -fdata-sections > > -fomit-frame-pointer -fno-builtin -Wno-address > > -Wno-unused-but-set-variable > > -o > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/OUTPUT/./AutoGen.obj
> > -I/home/ekd2_new/MyWorkSpace/MdeModulePkg/Application/HelloWorld > > > > > >
-I/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG
> > -I/home/ekd2_new/MyWorkSpace/MdePkg > > -I/home/ekd2_new/MyWorkSpace/MdePkg/Include > > -I/home/ekd2_new/MyWorkSpace/MdePkg/Include/AArch64 > > -I/home/ekd2_new/MyWorkSpace/MdeModulePkg > > -I/home/ekd2_new/MyWorkSpace/MdeModulePkg/Include > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/AutoGen.c
> > "ar" -cr > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/OUTPUT/HelloWorld.lib
> > > > > >
@/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/OUTPUT/object_files.lst
> > "ld" -o > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> > -Ttext=0x0 --emit-relocs -nostdlib --gc-sections -u > > _ModuleEntryPoint > > -e > > _ModuleEntryPoint -Map > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.map
> > --start-group > > > > > >
@/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/OUTPUT/static_library_files.lst
> > --end-group > > "echo" objcopy not needed for > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> > objcopy not needed for > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> > cp -f > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.debug
> > echo --strip-unneeded -R .eh_frame > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> > --strip-unneeded -R .eh_frame > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> > echo > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> > cp -f > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.debug
> > /home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64 > > "GenFw" -e UEFI_APPLICATION -o > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.efi
> > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> > GenFw: ERROR 3000: Invalid > > WriteSections64(): > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> > unsupported ELF EM_AARCH64 relocation 0x105. > > GenFw: ERROR 3000: Invalid > > make: *** > > > > > >
[/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.efi]
> > Error 2 > > WriteRelocations64(): > > > > > >
/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> > unsupported ELF EM_AARCH64 relocation 0x105. > > > > > > build.py... > > : error 7000: Failed to execute command > > make all > > > > > >
[/home/ekd2_new/MyWorkSpace/Build/MdeModule/RELEASE_GCC48/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld]
> > > > - Failed - > > Build end time: 11:29:54, Feb.04 2016 > > Build total time: 00:00:09 > > > > Thanks > > Ravi > > > > On Wed, Feb 3, 2016 at 12:54 AM, Ravikanth MVR > > ravikanth.mvr@broadcom.com > > wrote: > >> > >> Ard, > >> > >> I tried building the EDK2 with the below configuration and ended > >> up > >> with > >> the same result as before.Would try out the scenario with > >> GCC4.9/GCC4.8 > >> compiler+Toolchain:GCC49/GCC48 and target set to AARCH64. Would > >> let > >> you know > >> the results. > >> > >> Thanks. > >> > >> On Tue, Feb 2, 2016 at 10:18 PM, Ravikanth MVR > >> ravikanth.mvr@broadcom.com wrote: > >>> > >>> Ard, > >>> Below is my configuration > >>> > >>> ACTIVE_PLATFORM = MdeModulePkg/MdeModulePkg.dsc > >>> TARGET = RELEASE > >>> TARGET_ARCH = AARCH64 > >>> TOOL_CHAIN_CONF = Conf/tools_def.txt > >>> TOOL_CHAIN_TAG = GCC49 > >>> > >>> And GCC5.0.0 compiler is being used to compile the code or you > >>> want > >>> me to > >>> use the GCC4.9 compiler to compile as well? > >>> > >>> Thanks. > >>> > >>> On Tue, Feb 2, 2016 at 8:56 PM, Ravikanth MVR > >>> ravikanth.mvr@broadcom.com wrote: > >>>> > >>>> OK got it!Would build AARCH64 with GCC48/GCC49 .Please correct > >>>> me if > >>>> I > >>>> am wrong. > >>>> > >>>> Thanks. > >>>> On Tue, Feb 2, 2016 at 8:54 PM, Ard Biesheuvel > >>>> ard.biesheuvel@linaro.org wrote: > >>>>> > >>>>> On 2 February 2016 at 16:23, Ravikanth MVR > >>>>> ravikanth.mvr@broadcom.com > >>>>> wrote: > >>>>> > Ard, > >>>>> > > >>>>> > I have been using GCC5.0.0(Experimental version). > >>>>> > > >>>>> > gcc (Cavium Inc. Version 1.0 build 297) 5.0.0 20141220 > >>>>> > (experimental) > >>>>> > > >>>>> > I would try with GCC49/48 and let you know. > >>>>> > > >>>>> > >>>>> I don't mean the actual compiler, I mean the toolchain > >>>>> definition > >>>>> in > >>>>> EDK2. You are using ARMGCC or ARMLINUXGCC, neither of which
are
> >>>>> suitable for building AArch64. You should use GCC48 or GCC49 > >>>>> instead > >>>>> > >>>>> -- > >>>>> Ard. > >>>>> > >>>>> > On Tue, Feb 2, 2016 at 4:40 PM, Ard Biesheuvel > >>>>> > ard.biesheuvel@linaro.org > >>>>> > wrote: > >>>>> >> > >>>>> >> It looks like you are using the wrong compiler. You should > >>>>> >> use > >>>>> >> GCC48 > >>>>> >> or GCC49 instead. > >>>>> >> > >>>>> >> > >>>>> >> On 2 February 2016 at 12:08, Ravikanth MVR > >>>>> >> ravikanth.mvr@broadcom.com > >>>>> >> wrote: > >>>>> >> > Thanks Ard!I followed the steps and I could find out
that
> >>>>> >> > NO > >>>>> >> > standard > >>>>> >> > library was included.Below is the list of libraries that > >>>>> >> > were > >>>>> >> > getting > >>>>> >> > included. > >>>>> >> > > >>>>> >> > UefiApplicationEntryPoint.lib(ApplicationEntryPoint.obj) > >>>>> >> > HelloWorld.lib(AutoGen.obj) > >>>>> >> > UefiDebugLibStdErr.lib(DebugLib.obj) > >>>>> >> >
UefiBootServicesTableLib.lib(UefiBootServicesTableLib.obj)
> >>>>> >> > > >>>>> >> > > >>>>> >> >
UefiRuntimeServicesTableLib.lib(UefiRuntimeServicesTableLib.obj)
> >>>>> >> > UefiLib.lib(UefiLib.obj) > >>>>> >> > > >>>>> >> > > >>>>> >> >
BaseDebugPrintErrorLevelLib.lib(BaseDebugPrintErrorLevelLib.obj)
> >>>>> >> > BasePrintLib.lib(PrintLib.obj) > >>>>> >> > BasePrintLib.lib(PrintLibInternal.obj) > >>>>> >> > BaseLib.lib(DivU64x32Remainder.obj) > >>>>> >> > BaseLib.lib(CpuDeadLoop.obj) > >>>>> >> > BaseLib.lib(String.obj) > >>>>> >> > BaseLib.lib(Unaligned.obj) > >>>>> >> > BaseLib.lib(Math64.obj) > >>>>> >> > > >>>>> >> > I have included .map file as well with this mail. > >>>>> >> > > >>>>> >> > Thanks. > >>>>> >> > > >>>>> >> > On Mon, Feb 1, 2016 at 1:24 PM, Ard Biesheuvel > >>>>> >> > ard.biesheuvel@linaro.org > >>>>> >> > wrote: > >>>>> >> >> > >>>>> >> >> On 1 February 2016 at 08:36, M.V.R. Ravikanth > >>>>> >> >> ravikanth.mvr@avagotech.com wrote: > >>>>> >> >> > Ard, > >>>>> >> >> > > >>>>> >> >> > I understand that we have to implement alternative
C++
> >>>>> >> >> > runtime > >>>>> >> >> > API > >>>>> >> >> > which > >>>>> >> >> > maps to new and delete in EDK2 i.e.,AllocatePool and > >>>>> >> >> > FreePool. > >>>>> >> >> > > >>>>> >> >> > I did implement alternative new and delete
API's,which
> >>>>> >> >> > uses > >>>>> >> >> > AllocatePool > >>>>> >> >> > and > >>>>> >> >> > FreePool,for OUR code and most of the relocation
errors
> >>>>> >> >> > had > >>>>> >> >> > gone.BUT > >>>>> >> >> > when > >>>>> >> >> > the CPP program(HelloWorld) under compilation doesn't > >>>>> >> >> > even > >>>>> >> >> > call > >>>>> >> >> > the > >>>>> >> >> > C++ > >>>>> >> >> > runtime API's,why are we seeing these errors?-This is > >>>>> >> >> > what > >>>>> >> >> > I am > >>>>> >> >> > trying > >>>>> >> >> > to > >>>>> >> >> > understand. > >>>>> >> >> > > >>>>> >> >> > >>>>> >> >> If you add a -Map xxx.map option to the linker command, > >>>>> >> >> you > >>>>> >> >> will > >>>>> >> >> get a > >>>>> >> >> map file that tells you exactly which object was
included
> >>>>> >> >> in > >>>>> >> >> the > >>>>> >> >> link, > >>>>> >> >> and why (iow, which symbol dependency it satisfies)
That
> >>>>> >> >> way, > >>>>> >> >> you > >>>>> >> >> will > >>>>> >> >> be able to figure out which standard library is
included,
> >>>>> >> >> and > >>>>> >> >> for > >>>>> >> >> which reason. > >>>>> >> >> > >>>>> >> >> > Thanks. > >>>>> >> >> > ________________________________ > >>>>> >> >> > From: Ard Biesheuvel > >>>>> >> >> > Sent: 01-02-2016 12:31 > >>>>> >> >> > To: M.V.R. Ravikanth > >>>>> >> >> > > >>>>> >> >> > Cc: Leif Lindholm; Daniel Samuelraj; Jianning Wang; > >>>>> >> >> > Linaro > >>>>> >> >> > UEFI > >>>>> >> >> > Mailman > >>>>> >> >> > List; Sadananda Murthy; Unnikrishnan P S > >>>>> >> >> > Subject: Re: [Linaro-uefi] Compiling CPP files ARM64 > >>>>> >> >> > > >>>>> >> >> > On 1 February 2016 at 07:51, M.V.R. Ravikanth > >>>>> >> >> > ravikanth.mvr@avagotech.com wrote: > >>>>> >> >> >> Ard, > >>>>> >> >> >> I would try to explain here, > >>>>> >> >> >> > >>>>> >> >> >> 1.Till now we have been compiling CPP programs in
UDK
> >>>>> >> >> >> with > >>>>> >> >> >> VS2005/VS2008 > >>>>> >> >> >> as > >>>>> >> >> >> toolchain and it worked well. > >>>>> >> >> >> > >>>>> >> >> >> 2.Now,we have a requirement to support AARCH64 > >>>>> >> >> >> architecture > >>>>> >> >> >> with > >>>>> >> >> >> ARMGCC > >>>>> >> >> >> as > >>>>> >> >> >> the toolchain.But when we tried to compile our CPP > >>>>> >> >> >> code/Sample > >>>>> >> >> >> HelloWorld > >>>>> >> >> >> application(HelloWorld.c is renamed to
HelloWorld.cpp)
> >>>>> >> >> >> with > >>>>> >> >> >> ARMGCC > >>>>> >> >> >> as > >>>>> >> >> >> toolchain,we were seeing relocation errors such as > >>>>> >> >> >> 0x105. > >>>>> >> >> >> > >>>>> >> >> >> 3.As advised by you,we tried compiling a sample > >>>>> >> >> >> HelloWorld > >>>>> >> >> >> CPP > >>>>> >> >> >> program > >>>>> >> >> >> under > >>>>> >> >> >> EDK2 and still we are seeing the same relocation > >>>>> >> >> >> errors. > >>>>> >> >> >> > >>>>> >> >> >> Questions: > >>>>> >> >> >> > >>>>> >> >> >> 1.If EDK2 doesn't support CPP code,what should we do > >>>>> >> >> >> to > >>>>> >> >> >> resolve the > >>>>> >> >> >> relocation errors we are observing? > >>>>> >> >> >> > >>>>> >> >> >> Please correct me,if I have missed something. > >>>>> >> >> >> > >>>>> >> >> > > >>>>> >> >> > The relocation errors are a symptom of the fact that > >>>>> >> >> > you > >>>>> >> >> > are > >>>>> >> >> > trying > >>>>> >> >> > to > >>>>> >> >> > link the Linux specific C++ runtime into your EDK2 > >>>>> >> >> > binary. > >>>>> >> >> > This > >>>>> >> >> > is a > >>>>> >> >> > pointless exercise, since the Linux C++ runtime is > >>>>> >> >> > fundamentally > >>>>> >> >> > incompatible with EDK2, So please, don't ask any more > >>>>> >> >> > questions > >>>>> >> >> > about > >>>>> >> >> > relocation errors, and focus on implementing an > >>>>> >> >> > alternative > >>>>> >> >> > C++ > >>>>> >> >> > runtime that maps calls to new() and delete() onto
EDK2
> >>>>> >> >> > APIs, > >>>>> >> >> > i.e., > >>>>> >> >> > AllocatePool and FreePool. Note that you will still > >>>>> >> >> > have > >>>>> >> >> > problems > >>>>> >> >> > with > >>>>> >> >> > symbol decoration, since EDK2 header file don't have > >>>>> >> >> > 'extern > >>>>> >> >> > "C"' > >>>>> >> >> > qualifiers around C declarations. > >>>>> >> >> > > >>>>> >> >> > > >>>>> >> >> > > >>>>> >> >> >> ________________________________ > >>>>> >> >> >> From: Ard Biesheuvel > >>>>> >> >> >> Sent: 01-02-2016 11:59 > >>>>> >> >> >> To: Ravikanth MVR > >>>>> >> >> >> Cc: Leif Lindholm; Daniel Samuelraj; Jianning Wang; > >>>>> >> >> >> Linaro > >>>>> >> >> >> UEFI > >>>>> >> >> >> Mailman > >>>>> >> >> >> List; Sadananda Murthy; Unnikrishnan P S > >>>>> >> >> >> Subject: Re: [Linaro-uefi] Compiling CPP files ARM64 > >>>>> >> >> >> > >>>>> >> >> >> On 31 January 2016 at 20:16, Ravikanth MVR > >>>>> >> >> >> ravikanth.mvr@avagotech.com > >>>>> >> >> >> wrote: > >>>>> >> >> >>> +Unni. > >>>>> >> >> >>> > >>>>> >> >> >>> Ard, > >>>>> >> >> >>> I have done a native compilation with EDK2 and I am > >>>>> >> >> >>> facing > >>>>> >> >> >>> same > >>>>> >> >> >>> issues > >>>>> >> >> >>> as > >>>>> >> >> >>> I > >>>>> >> >> >>> did before.Below is the snapshot of the errors I > >>>>> >> >> >>> received. > >>>>> >> >> >>> > >>>>> >> >> >> > >>>>> >> >> >> I have explained twice already why C++ under EDK2 is > >>>>> >> >> >> not > >>>>> >> >> >> going > >>>>> >> >> >> to > >>>>> >> >> >> work. What exactly were you expecting? > >>>>> >> >> >> -- > >>>>> >> >> >> Ard. > >>>>> >> >> >> > >>>>> >> >> >> > >>>>> >> >> >>> "GenFw" -e UEFI_APPLICATION -o > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>>
/home/edk2/MyWorkSpace/Build/MdeModule/RELEASE_ARMGCC/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.efi
> >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>>
/home/edk2/MyWorkSpace/Build/MdeModule/RELEASE_ARMGCC/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> >>>>> >> >> >>> GenFw: ERROR 3000: Invalid > >>>>> >> >> >>> WriteSections64(): > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>>
/home/edk2/MyWorkSpace/Build/MdeModule/RELEASE_ARMGCC/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> >>>>> >> >> >>> unsupported ELF EM_AARCH64 relocation 0x105. > >>>>> >> >> >>> GenFw: ERROR 3000: Invalid > >>>>> >> >> >>> make: *** > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>>
[/home/edk2/MyWorkSpace/Build/MdeModule/RELEASE_ARMGCC/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.efi]
> >>>>> >> >> >>> Error 2 > >>>>> >> >> >>> WriteRelocations64(): > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>>
/home/edk2/MyWorkSpace/Build/MdeModule/RELEASE_ARMGCC/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.dll
> >>>>> >> >> >>> unsupported ELF EM_AARCH64 relocation 0x105. > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> build.py... > >>>>> >> >> >>> : error 7000: Failed to execute command > >>>>> >> >> >>> make --no-print-directory all > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> >> >>>
[/home/edk2/MyWorkSpace/Build/MdeModule/RELEASE_ARMGCC/AARCH64/MdeModulePkg/Application/HelloWorld/HelloWorld]
> >>>>> >> >> >>> > >>>>> >> >> >>> - Failed - > >>>>> >> >> >>> Build end time: 19:12:41, Jan.31 2016 > >>>>> >> >> >>> Build total time: 00:00:15 > >>>>> >> >> >>> > >>>>> >> >> >>> Thanks > >>>>> >> >> >>> Ravi > >>>>> >> >> >>> > >>>>> >> >> >>> On Wed, Jan 27, 2016 at 2:31 PM, Ard Biesheuvel > >>>>> >> >> >>> ard.biesheuvel@linaro.org > >>>>> >> >> >>> wrote: > >>>>> >> >> >>>> > >>>>> >> >> >>>> On 27 January 2016 at 09:51, Ravikanth MVR > >>>>> >> >> >>>> ravikanth.mvr@avagotech.com > >>>>> >> >> >>>> wrote: > >>>>> >> >> >>>> > Ard, > >>>>> >> >> >>>> > I was trying to compile and generate helloworld > >>>>> >> >> >>>> > application via > >>>>> >> >> >>>> > EDK2.Under > >>>>> >> >> >>>> > the "MyWorkSpace\BaseTools\Bin" directory I did > >>>>> >> >> >>>> > not > >>>>> >> >> >>>> > find > >>>>> >> >> >>>> > "Win32" > >>>>> >> >> >>>> > directory > >>>>> >> >> >>>> > which has GenFw utility.But the UDK package has > >>>>> >> >> >>>> > Win32 > >>>>> >> >> >>>> > directory. > >>>>> >> >> >>>> > > >>>>> >> >> >>>> > Could you let me know on how to build and EDK2 > >>>>> >> >> >>>> > package > >>>>> >> >> >>>> > in > >>>>> >> >> >>>> > Windows > >>>>> >> >> >>>> > or > >>>>> >> >> >>>> > else Am > >>>>> >> >> >>>> > I missing something here? > >>>>> >> >> >>>> > > >>>>> >> >> >>>> > >>>>> >> >> >>>> I haven't used Windows for software development
work
> >>>>> >> >> >>>> in > >>>>> >> >> >>>> 15 > >>>>> >> >> >>>> years, > >>>>> >> >> >>>> so > >>>>> >> >> >>>> I > >>>>> >> >> >>>> am really not the person you should be asking
this.
> >>>>> >> >> >>>> > >>>>> >> >> >>>> -- > >>>>> >> >> >>>> Ard. > >>>>> >> >> >>>> > >>>>> >> >> >>>> > On Thu, Jan 14, 2016 at 3:03 PM, Ravikanth MVR > >>>>> >> >> >>>> > ravikanth.mvr@avagotech.com > >>>>> >> >> >>>> > wrote: > >>>>> >> >> >>>> >> > >>>>> >> >> >>>> >> In UDK.I will try out on EDK2 and let you know > >>>>> >> >> >>>> >> the > >>>>> >> >> >>>> >> results. > >>>>> >> >> >>>> >> > >>>>> >> >> >>>> >> Thanks. > >>>>> >> >> >>>> >> > >>>>> >> >> >>>> >> On Thu, Jan 14, 2016 at 3:02 PM, Ard Biesheuvel > >>>>> >> >> >>>> >> ard.biesheuvel@linaro.org wrote: > >>>>> >> >> >>>> >>> > >>>>> >> >> >>>> >>> On 14 January 2016 at 10:28, Ravikanth MVR > >>>>> >> >> >>>> >>> ravikanth.mvr@avagotech.com > >>>>> >> >> >>>> >>> wrote: > >>>>> >> >> >>>> >>> > Ard, > >>>>> >> >> >>>> >>> > > >>>>> >> >> >>>> >>> > OK.But when a simple HelloWorld
program,which
> >>>>> >> >> >>>> >>> > is > >>>>> >> >> >>>> >>> > part > >>>>> >> >> >>>> >>> > of > >>>>> >> >> >>>> >>> > EDK2 > >>>>> >> >> >>>> >>> > sample > >>>>> >> >> >>>> >>> > programs and which is written in c,is
renamed
> >>>>> >> >> >>>> >>> > to > >>>>> >> >> >>>> >>> > .CPP,we get > >>>>> >> >> >>>> >>> > these > >>>>> >> >> >>>> >>> > relocation issues in-spite of not using any > >>>>> >> >> >>>> >>> > C++ > >>>>> >> >> >>>> >>> > runtime > >>>>> >> >> >>>> >>> > API's. > >>>>> >> >> >>>> >>> > > >>>>> >> >> >>>> >>> > >>>>> >> >> >>>> >>> In UDK or EDK2? > >>>>> >> >> >>>> >>> > >>>>> >> >> >>>> >>> > On Thu, Jan 14, 2016 at 2:39 PM, Ard > >>>>> >> >> >>>> >>> > Biesheuvel > >>>>> >> >> >>>> >>> > ard.biesheuvel@linaro.org > >>>>> >> >> >>>> >>> > wrote: > >>>>> >> >> >>>> >>> >> > >>>>> >> >> >>>> >>> >> On 14 January 2016 at 10:06, Ravikanth MVR > >>>>> >> >> >>>> >>> >> ravikanth.mvr@avagotech.com > >>>>> >> >> >>>> >>> >> wrote: > >>>>> >> >> >>>> >>> >> > Hi Ard, > >>>>> >> >> >>>> >>> >> > > >>>>> >> >> >>>> >>> >> > Hope you remember we speaking about the > >>>>> >> >> >>>> >>> >> > 0x105 > >>>>> >> >> >>>> >>> >> > and > >>>>> >> >> >>>> >>> >> > 0x0 > >>>>> >> >> >>>> >>> >> > relocation > >>>>> >> >> >>>> >>> >> > issues > >>>>> >> >> >>>> >>> >> > which we came across while compiling a > >>>>> >> >> >>>> >>> >> > simple > >>>>> >> >> >>>> >>> >> > HelloWorld > >>>>> >> >> >>>> >>> >> > program > >>>>> >> >> >>>> >>> >> > in > >>>>> >> >> >>>> >>> >> > CPP.As > >>>>> >> >> >>>> >>> >> > you said on the other thread(EDK2 mailing > >>>>> >> >> >>>> >>> >> > list)we > >>>>> >> >> >>>> >>> >> > need > >>>>> >> >> >>>> >>> >> > some > >>>>> >> >> >>>> >>> >> > changes > >>>>> >> >> >>>> >>> >> > to > >>>>> >> >> >>>> >>> >> > compiler and GenFw utility of UDK,can we > >>>>> >> >> >>>> >>> >> > take > >>>>> >> >> >>>> >>> >> > the > >>>>> >> >> >>>> >>> >> > required > >>>>> >> >> >>>> >>> >> > changes > >>>>> >> >> >>>> >>> >> > forward > >>>>> >> >> >>>> >>> >> > and come up with a UDK with this support? > >>>>> >> >> >>>> >>> >> > > >>>>> >> >> >>>> >>> >> > We are stuck at this juncture with this > >>>>> >> >> >>>> >>> >> > activity > >>>>> >> >> >>>> >>> >> > and > >>>>> >> >> >>>> >>> >> > would > >>>>> >> >> >>>> >>> >> > need > >>>>> >> >> >>>> >>> >> > your > >>>>> >> >> >>>> >>> >> > help > >>>>> >> >> >>>> >>> >> > badly. > >>>>> >> >> >>>> >>> >> > > >>>>> >> >> >>>> >>> >> > >>>>> >> >> >>>> >>> >> Please forget about UDK, and rebase your
work
> >>>>> >> >> >>>> >>> >> onto > >>>>> >> >> >>>> >>> >> the > >>>>> >> >> >>>> >>> >> latest > >>>>> >> >> >>>> >>> >> EDK2 > >>>>> >> >> >>>> >>> >> master branch. There have been many changes > >>>>> >> >> >>>> >>> >> to > >>>>> >> >> >>>> >>> >> the > >>>>> >> >> >>>> >>> >> way > >>>>> >> >> >>>> >>> >> relocations > >>>>> >> >> >>>> >>> >> are > >>>>> >> >> >>>> >>> >> handled, which also impose requirements at > >>>>> >> >> >>>> >>> >> link > >>>>> >> >> >>>> >>> >> time > >>>>> >> >> >>>> >>> >> (i.e., > >>>>> >> >> >>>> >>> >> in > >>>>> >> >> >>>> >>> >> terms > >>>>> >> >> >>>> >>> >> of section alignment, and relative offset > >>>>> >> >> >>>> >>> >> between > >>>>> >> >> >>>> >>> >> sections > >>>>> >> >> >>>> >>> >> both > >>>>> >> >> >>>> >>> >> in > >>>>> >> >> >>>> >>> >> the > >>>>> >> >> >>>> >>> >> ELF and the PE/COFF versions of the image) > >>>>> >> >> >>>> >>> >> > >>>>> >> >> >>>> >>> >> However, the relocation issue was due to
the
> >>>>> >> >> >>>> >>> >> fact > >>>>> >> >> >>>> >>> >> that you > >>>>> >> >> >>>> >>> >> were > >>>>> >> >> >>>> >>> >> using > >>>>> >> >> >>>> >>> >> the Linux version of the C++ runtime, which > >>>>> >> >> >>>> >>> >> you > >>>>> >> >> >>>> >>> >> cannot use > >>>>> >> >> >>>> >>> >> under > >>>>> >> >> >>>> >>> >> EDK2 > >>>>> >> >> >>>> >>> >> even if we do support those relocation
types
> >>>>> >> >> >>>> >>> >> with > >>>>> >> >> >>>> >>> >> the > >>>>> >> >> >>>> >>> >> newer > >>>>> >> >> >>>> >>> >> tools. > >>>>> >> >> >>>> >>> >> > >>>>> >> >> >>>> >>> >> Bottom line is that you need to develop
your
> >>>>> >> >> >>>> >>> >> own > >>>>> >> >> >>>> >>> >> C++ > >>>>> >> >> >>>> >>> >> minimal > >>>>> >> >> >>>> >>> >> runtime > >>>>> >> >> >>>> >>> >> if you want to run C++ programs under EDK2 > >>>>> >> >> >>>> >>> >> > >>>>> >> >> >>>> >>> >> > On Tue, Jan 5, 2016 at 4:29 PM, Ravikanth > >>>>> >> >> >>>> >>> >> > MVR > >>>>> >> >> >>>> >>> >> > ravikanth.mvr@avagotech.com > >>>>> >> >> >>>> >>> >> > wrote: > >>>>> >> >> >>>> >>> >> >> > >>>>> >> >> >>>> >>> >> >> +Sada. > >>>>> >> >> >>>> >>> >> >> > >>>>> >> >> >>>> >>> >> >> Thanks. > >>>>> >> >> >>>> >>> >> >> > >>>>> >> >> >>>> >>> >> >> On Wed, Dec 30, 2015 at 8:38 PM, Ard > >>>>> >> >> >>>> >>> >> >> Biesheuvel > >>>>> >> >> >>>> >>> >> >> ard.biesheuvel@linaro.org wrote: > >>>>> >> >> >>>> >>> >> >>> > >>>>> >> >> >>>> >>> >> >>> On 30 December 2015 at 16:02, Leif > >>>>> >> >> >>>> >>> >> >>> Lindholm > >>>>> >> >> >>>> >>> >> >>> leif.lindholm@linaro.org > >>>>> >> >> >>>> >>> >> >>> wrote: > >>>>> >> >> >>>> >>> >> >>> > Hi Daniel, > >>>>> >> >> >>>> >>> >> >>> > > >>>>> >> >> >>>> >>> >> >>> > Sorry, your email got stuck in my
SPAM
> >>>>> >> >> >>>> >>> >> >>> > folder > >>>>> >> >> >>>> >>> >> >>> > for > >>>>> >> >> >>>> >>> >> >>> > some > >>>>> >> >> >>>> >>> >> >>> > reason. > >>>>> >> >> >>>> >>> >> >>> > > >>>>> >> >> >>>> >>> >> >>> > On Wed, Dec 23, 2015 at 05:25:21PM > >>>>> >> >> >>>> >>> >> >>> > -0500, > >>>>> >> >> >>>> >>> >> >>> > Daniel > >>>>> >> >> >>>> >>> >> >>> > Samuelraj > >>>>> >> >> >>>> >>> >> >>> > wrote: > >>>>> >> >> >>>> >>> >> >>> >> We are able to compile CPP files for > >>>>> >> >> >>>> >>> >> >>> >> X64 > >>>>> >> >> >>>> >>> >> >>> >> using > >>>>> >> >> >>>> >>> >> >>> >> UDK2014 > >>>>> >> >> >>>> >>> >> >>> >> by > >>>>> >> >> >>>> >>> >> >>> >> using > >>>>> >> >> >>>> >>> >> >>> >> Visual > >>>>> >> >> >>>> >>> >> >>> >> Studio. > >>>>> >> >> >>>> >>> >> >>> >> > >>>>> >> >> >>>> >>> >> >>> >> How do we compile the same source
for
> >>>>> >> >> >>>> >>> >> >>> >> AARCH64? > >>>>> >> >> >>>> >>> >> >>> > >>>>> >> >> >>>> >>> >> >>> Do you mean C++? That is completely > >>>>> >> >> >>>> >>> >> >>> unsupported, > >>>>> >> >> >>>> >>> >> >>> and is > >>>>> >> >> >>>> >>> >> >>> going > >>>>> >> >> >>>> >>> >> >>> to > >>>>> >> >> >>>> >>> >> >>> be > >>>>> >> >> >>>> >>> >> >>> quite a challenge to implement. Note
that
> >>>>> >> >> >>>> >>> >> >>> you > >>>>> >> >> >>>> >>> >> >>> cannot > >>>>> >> >> >>>> >>> >> >>> rely > >>>>> >> >> >>>> >>> >> >>> on > >>>>> >> >> >>>> >>> >> >>> the > >>>>> >> >> >>>> >>> >> >>> C++ > >>>>> >> >> >>>> >>> >> >>> runtime for various reasons (including, > >>>>> >> >> >>>> >>> >> >>> but > >>>>> >> >> >>>> >>> >> >>> not > >>>>> >> >> >>>> >>> >> >>> limited > >>>>> >> >> >>>> >>> >> >>> to, > >>>>> >> >> >>>> >>> >> >>> the > >>>>> >> >> >>>> >>> >> >>> fact > >>>>> >> >> >>>> >>> >> >>> that it uses small model relocations,
and
> >>>>> >> >> >>>> >>> >> >>> is > >>>>> >> >> >>>> >>> >> >>> built > >>>>> >> >> >>>> >>> >> >>> against > >>>>> >> >> >>>> >>> >> >>> libc > >>>>> >> >> >>>> >>> >> >>> on > >>>>> >> >> >>>> >>> >> >>> Linux) I wonder how that even works on > >>>>> >> >> >>>> >>> >> >>> Visual > >>>>> >> >> >>>> >>> >> >>> Studio > >>>>> >> >> >>>> >>> >> >>> for > >>>>> >> >> >>>> >>> >> >>> X64, > >>>>> >> >> >>>> >>> >> >>> since > >>>>> >> >> >>>> >>> >> >>> the code you build will try to call
libc
> >>>>> >> >> >>>> >>> >> >>> functions from > >>>>> >> >> >>>> >>> >> >>> the > >>>>> >> >> >>>> >>> >> >>> VC > >>>>> >> >> >>>> >>> >> >>> runtime > >>>>> >> >> >>>> >>> >> >>> library. > >>>>> >> >> >>>> >>> >> >>> > >>>>> >> >> >>>> >>> >> >>> There has been some discussion about
this
> >>>>> >> >> >>>> >>> >> >>> recently on > >>>>> >> >> >>>> >>> >> >>> the > >>>>> >> >> >>>> >>> >> >>> list. > >>>>> >> >> >>>> >>> >> >>> If > >>>>> >> >> >>>> >>> >> >>> you > >>>>> >> >> >>>> >>> >> >>> disable exceptions and RTTI, and > >>>>> >> >> >>>> >>> >> >>> reimplement > >>>>> >> >> >>>> >>> >> >>> your > >>>>> >> >> >>>> >>> >> >>> new > >>>>> >> >> >>>> >>> >> >>> and > >>>>> >> >> >>>> >>> >> >>> delete > >>>>> >> >> >>>> >>> >> >>> operators, you may be able to build
code
> >>>>> >> >> >>>> >>> >> >>> that > >>>>> >> >> >>>> >>> >> >>> does not > >>>>> >> >> >>>> >>> >> >>> rely > >>>>> >> >> >>>> >>> >> >>> on > >>>>> >> >> >>>> >>> >> >>> advanced C++ runtime features. > >>>>> >> >> >>>> >>> >> >>> > >>>>> >> >> >>>> >>> >> >>> -- > >>>>> >> >> >>>> >>> >> >>> Ard. > >>>>> >> >> >>>> >>> >> >> > >>>>> >> >> >>>> >>> >> >> > >>>>> >> >> >>>> >>> >> > > >>>>> >> >> >>>> >>> > > >>>>> >> >> >>>> >>> > > >>>>> >> >> >>>> >> > >>>>> >> >> >>>> >> > >>>>> >> >> >>>> > > >>>>> >> >> >>> > >>>>> >> >> >>> > >>>>> >> > > >>>>> >> > > >>>>> > > >>>>> > > >>>> > >>>> > >>> > >> > >