Patchwork Fix TEXTREL in user targets when compiled with --enable-user-pie

login
register
mail settings
Submitter Kirill A. Shutemov
Date Dec. 15, 2009, 1:10 a.m.
Message ID <1260839404-28622-1-git-send-email-kirill@shutemov.name>
Download mbox | patch
Permalink /patch/41160/
State New
Headers show

Comments

Kirill A. Shutemov - Dec. 15, 2009, 1:10 a.m.
We really need compile _all_ sources for user target with -fpie when
use --enable-user-pie.

It's regression introduced by commit add16157d72454.
Please, do not break it any more.

Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Cc: Blue Swirl <blauwirbel@gmail.com>
---
 Makefile.user |    4 ++--
 configure     |    1 +
 2 files changed, 3 insertions(+), 2 deletions(-)
Kirill A. Shutemov - Dec. 15, 2009, 7:48 p.m.
Please, apply it.

On Tue, Dec 15, 2009 at 3:10 AM, Kirill A. Shutemov
<kirill@shutemov.name> wrote:
> We really need compile _all_ sources for user target with -fpie when
> use --enable-user-pie.
>
> It's regression introduced by commit add16157d72454.
> Please, do not break it any more.
>
> Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
> Cc: Blue Swirl <blauwirbel@gmail.com>
> ---
>  Makefile.user |    4 ++--
>  configure     |    1 +
>  2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile.user b/Makefile.user
> index 907e74b..0be73df 100644
> --- a/Makefile.user
> +++ b/Makefile.user
> @@ -5,9 +5,9 @@ include $(SRC_PATH)/rules.mak
>
>  .PHONY: all
>
> -VPATH=$(SRC_PATH)
> +vpath %.c $(SRC_PATH)
>
> -QEMU_CFLAGS+=-I..
> +QEMU_CFLAGS+=-I$(SRC_PATH)/ $(CFLAGS_PIE)
>
>  obj-y =
>  obj-y += envlist.o path.o
> diff --git a/configure b/configure
> index 273b6b7..6200391 100755
> --- a/configure
> +++ b/configure
> @@ -2555,6 +2555,7 @@ if test "$target_user_only" = "yes" -a "$static" = "no" -a \
>        "$user_pie" = "yes" ; then
>   cflags="-fpie $cflags"
>   ldflags="-pie $ldflags"
> +  echo "CFLAGS_PIE=-fpie" >> $config_host_mak
>  fi
>
>  if test "$target_softmmu" = "yes" -a \( \
> --
> 1.6.5.6
>
>

Patch

diff --git a/Makefile.user b/Makefile.user
index 907e74b..0be73df 100644
--- a/Makefile.user
+++ b/Makefile.user
@@ -5,9 +5,9 @@  include $(SRC_PATH)/rules.mak
 
 .PHONY: all
 
-VPATH=$(SRC_PATH)
+vpath %.c $(SRC_PATH)
 
-QEMU_CFLAGS+=-I..
+QEMU_CFLAGS+=-I$(SRC_PATH)/ $(CFLAGS_PIE)
 
 obj-y =
 obj-y += envlist.o path.o
diff --git a/configure b/configure
index 273b6b7..6200391 100755
--- a/configure
+++ b/configure
@@ -2555,6 +2555,7 @@  if test "$target_user_only" = "yes" -a "$static" = "no" -a \
 	"$user_pie" = "yes" ; then
   cflags="-fpie $cflags"
   ldflags="-pie $ldflags"
+  echo "CFLAGS_PIE=-fpie" >> $config_host_mak
 fi
 
 if test "$target_softmmu" = "yes" -a \( \