> sry but I have to retest everything since I aciidentally checked out a wrong revision. will report back later. ignore this, everything in my report was correct. got confused with CommitDate vs AuthorDate.
> Only 0x4 or 0x9 or others as well? This is relevent since 0x4 is a PLT relocation which can be fixed up easily. The GOT based ones are trickier since they involve a GOT entry with an absolute symbol address that needs to be fixed up by the PE/COFF loader Only 0x4. > Interesting. I wonder where the first memmove resp. memset are coming from. Are you linking with libgcc are sth like that? I was able to fix memmove with this patch: diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memmove.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memmove.S index 79f95b0..5833814 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memmove.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memmove.S @@ -14,7 +14,6 @@ .text .align 2 - GCC_ASM_EXPORT (memmove) # VOID # EFIAPI no idea about memset, but when I hacked it away by just removing the export from the CompilerIntrinsicsLib, the error was gone, but the 'plugin needed to handle lto object' errors were still there. Thanks Michael On Tue, Aug 2, 2016 at 4:46 PM, Michael Zimmermann <[email protected] > wrote: > sry but I have to retest everything since I aciidentally checked out a > wrong revision. > will report back later. > > On Tue, Aug 2, 2016 at 4:39 PM, Michael Zimmermann < > [email protected]> wrote: > >> Sry for the late reply but I tried your latest gcc-lto branch to make >> sure my answers are still correct. >> I tested it with all configurations(StdLib:X64/ARM, Ovmf:X64, >> ArmVirtPkg:ARM with both RELEASE and DEBUG). >> In StdLib are many warnings actually. That's because >> of -Wunused-const-variable and -Wmisleading-indentation. >> Also I had to apply the commit to fix 'Unsupported ELF EM_X86_64 >> relocation 0x4.' for X64. >> >> '-b RELEASE -a ARM -t GCC5 -p AppPkg/AppPkg.dsc' is the only >> configuration I can't get to compile with gcc6(DEBUG works): >> /tmp/ccYJi1bO.ltrans0.ltrans.o: In function `memmove': >> <artificial>:(.text+0x3670): multiple definition of `memmove' >> /media/Data/repositories/git/efidroid/testing/linuxtoolchain/edk2/Build/AppPkg/RELEASE_GCC5/ARM/ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib/OUTPUT/CompilerIntrinsicsLib.lib(memmove.obj):(.text+0x0): >> first defined here >> /tmp/ccYJi1bO.ltrans0.ltrans.o: In function `memset': >> <artificial>:(.text+0x3674): multiple definition of `memset' >> /media/Data/repositories/git/efidroid/testing/linuxtoolchain/edk2/Build/AppPkg/RELEASE_GCC5/ARM/ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib/OUTPUT/CompilerIntrinsicsLib.lib(memset.obj):(.text+0x10): >> first defined here >> >> /media/Data/repositories/git/efidroid/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.1.1~linaro-gcc-6-branch@f3888e76-20160721-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.1.1/../../../../arm-eabi/bin/ld: >> printf.obj: plugin needed to handle lto object >> >> /media/Data/repositories/git/efidroid/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.1.1~linaro-gcc-6-branch@f3888e76-20160721-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.1.1/../../../../arm-eabi/bin/ld: >> puts.obj: plugin needed to handle lto object >> >> /media/Data/repositories/git/efidroid/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.1.1~linaro-gcc-6-branch@f3888e76-20160721-x86_64_arm-eabi/bin/../lib/gcc/arm-eabi/6.1.1/../../../../arm-eabi/bin/ld: >> internal error >> /media/Data/repositories/git/abe/_build/snapshots/binutils-gdb.git~linaro_binutils-2_26-branch/ld/ldlang.c >> 6299 >> collect2: error: ld returned 1 exit status >> make: *** [GNUmakefile:417: >> /media/Data/repositories/git/efidroid/testing/linuxtoolchain/edk2/Build/AppPkg/RELEASE_GCC5/ARM/AppPkg/Applications/Main/Main/DEBUG/Main.dll] >> Error 1 >> >> Also, I only did compilation tests, I didn't try to run any of the >> produced binaries. >> >> this is the fixed branch: >> https://github.com/M1cha/edk2/commits/edk2-master-gcc6 >> it's based on your gcc5-lto-v6 branch. >> >> Thanks >> Michael >> >> On Tue, Aug 2, 2016 at 3:56 PM, Ard Biesheuvel <[email protected] >> > wrote: >> >>> On 2 August 2016 at 15:55, Michael Zimmermann <[email protected]> >>> wrote: >>> > btw, gcc6 seems to work fine too with these patches(it did with the >>> GCC49 >>> > configs too on both ARM and x86/x64). >>> > >>> >>> Thanks for the data points. Do you see any warnings during the build? >>> >> >> > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

