On 5 February 2016 at 17:00, Ravikanth MVR ravikanth.mvr@broadcom.com wrote:
I am using gcc compiler only not g++.
Ok, so you are using gcc to compile the .cpp files. Got it.
On Fri, Feb 5, 2016 at 9:20 PM, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
On 5 February 2016 at 16:49, Ravikanth MVR ravikanth.mvr@broadcom.com wrote:
Ard, OK.I am not passing -fno-exceptions.Would change the same and let you know.
Which command line of the C++ compiler? I din't get it.
In your output, there are lines for gcc, ld, ar etc, but not for g++
Thanks Ravi
On Fri, Feb 5, 2016 at 9:16 PM, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
On 5 February 2016 at 16:40, Ravikanth MVR ravikanth.mvr@broadcom.com wrote:
Attached.
You have an .eh_frame section in the binary. Are you passing -fno-exceptions like I told you to?
Btw you never pasted the command line of the C++ compiler, could you please share that as well?
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. >>> >>> >>>>> >> >> >>>> >>> >> >> >>> >>> >>>>> >> >> >>>> >>> >> >> >>> >>> >>>>> >> >> >>>> >>> >> > >>> >>> >>>>> >> >> >>>> >>> > >>> >>> >>>>> >> >> >>>> >>> > >>> >>> >>>>> >> >> >>>> >> >>> >>> >>>>> >> >> >>>> >> >>> >>> >>>>> >> >> >>>> > >>> >>> >>>>> >> >> >>> >>> >>> >>>>> >> >> >>> >>> >>> >>>>> >> > >>> >>> >>>>> >> > >>> >>> >>>>> > >>> >>> >>>>> > >>> >>> >>>> >>> >>> >>>> >>> >>> >>> >>> >>> >> >>> >>> > >>> >> >>> >> >>> > >> >> >