I am using gcc compiler only not g++.
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. >> >>> >>>>> >> >> >>>> >>> >> >> >> >>> >>>>> >> >> >>>> >>> >> >> >> >>> >>>>> >> >> >>>> >>> >> > >> >>> >>>>> >> >> >>>> >>> > >> >>> >>>>> >> >> >>>> >>> > >> >>> >>>>> >> >> >>>> >> >> >>> >>>>> >> >> >>>> >> >> >>> >>>>> >> >> >>>> > >> >>> >>>>> >> >> >>> >> >>> >>>>> >> >> >>> >> >>> >>>>> >> > >> >>> >>>>> >> > >> >>> >>>>> > >> >>> >>>>> > >> >>> >>>> >> >>> >>>> >> >>> >>> >> >>> >> >> >>> > >> >> >> >> >> > > >