Patchwork Re: [PATCH] Fix TEXTREL in user targets when compiled with --enable-user-pie

login
register
mail settings
Submitter Juan Quintela
Date Dec. 15, 2009, 8:55 p.m.
Message ID <m36388neii.fsf@neno.neno>
Download mbox | patch
Permalink /patch/41216/
State New
Headers show

Comments

Juan Quintela - Dec. 15, 2009, 8:55 p.m.
"Kirill A. Shutemov" <kirill@shutemov.name> wrote:
> 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.

Wishful thinking :p
I bet that:
a- Blue Swirl didn't do it on purpose
b- our build system is very fragile, it will happens again. 

Learn to live with it.

>> 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)

This change is needed?

>>
>> -QEMU_CFLAGS+=-I..
>> +QEMU_CFLAGS+=-I$(SRC_PATH)/ $(CFLAGS_PIE)

Why do you change it?

QEMU_CFLAGS has this value in configure
QEMU_CFLAGS="-I. -I\$(SRC_PATH) $QEMU_CFLAGS"

>>
>>  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
>>
>>

Can you test this other patch:

From bdc26201bb83df3786722a63c3caf387914f8539 Mon Sep 17 00:00:00 2001
From: Juan Quintela <quintela@redhat.com>
Date: Tue, 15 Dec 2009 21:53:26 +0100
Subject: [PATCH] user_only: compile everything with -fpie


Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 Makefile.user |    1 +
 configure     |    3 +++
 2 files changed, 4 insertions(+), 0 deletions(-)

Patch

diff --git a/Makefile.user b/Makefile.user
index 907e74b..e4b5def 100644
--- a/Makefile.user
+++ b/Makefile.user
@@ -2,6 +2,7 @@ 

 include ../config-host.mak
 include $(SRC_PATH)/rules.mak
+include config.mak

 .PHONY: all

diff --git a/configure b/configure
index cf1db86..d815c7a 100755
--- a/configure
+++ b/configure
@@ -2652,3 +2652,6 @@  d=libuser
 mkdir -p $d
 rm -f $d/Makefile
 ln -s $source_path/Makefile.user $d/Makefile
+if test "$static" = "no" -a "$user_pie" = "yes" ; then
+  echo "QEMU_CFLAGS+=-fpie" > $d/config.mak
+fi