qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] edk2 fails to compile in v4.0.0-rc2


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] edk2 fails to compile in v4.0.0-rc2
Date: Fri, 5 Apr 2019 12:49:15 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1

Hi Olaf,

On 4/5/19 12:39 PM, Olaf Hering wrote:
> It seems in qemu.git#master the edk2.git submodule is now mandatory.

The EDK2 submodule was added for UEFI testing, you don't need to compile
it to build/use QEMU.

How did you end up compiling it?

> For me it fails to compile. This is not a new error. It needs to be compiled 
> with -fPIC since essentially forever.
> 
> But I wonder, why does it fail to compile only for me?!
> Example of failure:
> 
>  $ grep -h CommonLib.o /dev/shm/*/.build.log 
> [   85s] gcc  -c  -I .. -I ../Include/Common -I ../Include/ -I 
> ../Include/IndustryStandard -I ../Common/ -I .. -I . -I ../Include/X64/  -MD 
> -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations 
> -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -g -O2  
> CommonLib.c -o CommonLib.o
> [   89s] ar crs ../libs/libCommon.a BasePeCoff.o BinderFuncs.o CommonLib.o 
> Crc32.o Decompress.o EfiCompress.o EfiUtilityMsgs.o FirmwareVolumeBuffer.o 
> FvLib.o MemoryFile.o MyAlloc.o OsPath.o ParseGuidedSectionTools.o ParseInf.o 
> PeCoffLoaderEx.o SimpleFileParsing.o StringFuncs.o TianoCompress.o 
> PcdValueCommon.o
> [  106s] 
> /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: 
> ../libs/libCommon.a(CommonLib.o): relocation R_X86_64_32 against 
> `.rodata.str1.1' can not be used when making a PIE object; recompile with 
> -fPIC
> [  106s] 
> /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: 
> ../libs/libCommon.a(CommonLib.o): relocation R_X86_64_32 against 
> `.rodata.str1.1' can not be used when making a PIE object; recompile with 
> -fPIC
> [  120s] 
> /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: 
> ../libs/libCommon.a(CommonLib.o): relocation R_X86_64_32 against 
> `.rodata.str1.1' can not be used when making a PIE object; recompile with 
> -fPIC
> 
> What do I need to change in my setup so that -fPIC is not required?

Apparently your Linux distribution has transitioned to enabling PIE by
default in GCC 7, see:
https://lists.opensuse.org/opensuse-factory/2017-06/msg00403.html

"This is achieved by a gcc defaults override in the "gcc-PIE" package."

Regards,

Phil.

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]