qemu-trivial
[Top][All Lists]
Advanced

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

Re: [Qemu-trivial] [PATCH] rules.mak: Use -r instead of -Wl, -r to fix b


From: Paolo Bonzini
Subject: Re: [Qemu-trivial] [PATCH] rules.mak: Use -r instead of -Wl, -r to fix building when PIE is default
Date: Mon, 28 Nov 2016 16:05:33 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0


On 27/11/2016 17:28, Adrian Bunk wrote:
> Building qemu fails in distributions where gcc enables PIE
> by default (e.g. Debian unstable) with:
> /usr/bin/ld: -r and -pie may not be used together
> 
> -r and -pie cannot be used together in the linker,
> and position independent is already relocatable.
> 
> Use -r instead of -Wl,-r to avoid gcc passing -r to the
> linker when PIE is enabled.
> 
> Signed-off-by: Adrian Bunk <address@hidden>

I think this is a bug in the linker.  If the linker is producing
relocatable objects by default, it has no reason to refuse -r.  Have you
tried asking the binutils folks about it too?

But the patch would probably remove the need for LD_REL_FLAGS, based on
a quick look at the GCC source code, so I guess it's fine.

Paolo

> ---
>  rules.mak | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/rules.mak b/rules.mak
> index 0333ae3..545ebd9 100644
> --- a/rules.mak
> +++ b/rules.mak
> @@ -93,7 +93,7 @@ module-common.o: CFLAGS += $(DSO_OBJ_CFLAGS)
>       $(if $(findstring /,$@),$(call quiet-command,cp $@ $(subst 
> /,-,$@),"CP","$(subst /,-,$@)"))
>  
>  
> -LD_REL := $(CC) -nostdlib -Wl,-r $(LD_REL_FLAGS)
> +LD_REL := $(CC) -nostdlib -r $(LD_REL_FLAGS)
>  
>  %.mo:
>       $(call quiet-command,$(LD_REL) -o $@ $^,"LD","$(TARGET_DIR)$@")
> 



reply via email to

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