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

Re: [Minios-devel] [UNIKRAFT PATCHv5 11/46] build: Override default pie option of GCC if possible


  • To: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>, "minios-devel@xxxxxxxxxxxxxxxxxxxx" <minios-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: "Wei Chen (Arm Technology China)" <Wei.Chen@xxxxxxx>
  • Date: Thu, 6 Sep 2018 09:57:59 +0000
  • Accept-language: en-US
  • Authentication-results: spf=none (sender IP is ) smtp.mailfrom=Wei.Chen@xxxxxxx;
  • Cc: "Kaly Xin \(Arm Technology China\)" <Kaly.Xin@xxxxxxx>, nd <nd@xxxxxxx>
  • Delivery-date: Thu, 06 Sep 2018 09:58:10 +0000
  • List-id: Mini-os development list <minios-devel.lists.xenproject.org>
  • Nodisclaimer: True
  • Spamdiagnosticmetadata: NSPM
  • Spamdiagnosticoutput: 1:99
  • Thread-index: AQHUMHkPVVeaC8k2RUO+jyj2MU1RlaTjKYoAgAAD5wCAAACKwA==
  • Thread-topic: [Minios-devel] [UNIKRAFT PATCHv5 11/46] build: Override default pie option of GCC if possible

Hi Simon,

Hmm, yes, we can remove the check of '--enable-default-pie'.
I will fix it in a separate patch later : )

Regards,
Wei Chen

> -----Original Message-----
> From: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
> Sent: 2018年9月6日 17:52
> To: Wei Chen (Arm Technology China) <Wei.Chen@xxxxxxx>; minios-
> devel@xxxxxxxxxxxxxxxxxxxx
> Cc: Kaly Xin (Arm Technology China) <Kaly.Xin@xxxxxxx>; nd <nd@xxxxxxx>
> Subject: Re: [Minios-devel] [UNIKRAFT PATCHv5 11/46] build: Override default
> pie option of GCC if possible
> 
> Hey Wei,
> 
> I accepted this patch but please help me reminding ;-) - is the check
> for '--enable-default-pie' necessary or can we always hand-over the
> '-no-pie' compile flag as soon we know GCC supports it? It probably
> won't hurt. We could maybe get rid of the console command. We could do
> this with a separate patch later.
> 
> Thanks,
> 
> Simon
> 
> On 06.09.2018 11:37, Simon Kuenzer wrote:
> > Reviewed-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
> >
> > On 10.08.2018 09:08, Wei Chen wrote:
> >> From: Wei Chen <Wei.Chen@xxxxxxx>
> >>
> >> On recent debian distributions (Debian/Ubuntu), the GCC enabled
> >> "--enable-default-pie" configuration option by default. This will
> >> case Unikraft link failed on debian/ubuntu platforms.
> >> In commit:
> >> "build: Add -no-pie to GCC flags"
> >> "cc7eb555080775cf2cb4a595a07b6121ff0f7361"
> >> I have added -no-pie to GCC flags directly to override the default
> >> pie option. But as Wei Liu reminded, old version GCC doesn't
> >> support -no-pie option.
> >>
> >> So in this patch, I checked the enbale-default-pie option and
> >> GCC version, and then added -no-pie to override it.
> >>
> >> Signed-off-by: Wei Chen <Wei.Chen@xxxxxxx>
> >> ---
> >>   Makefile.uk | 21 ++++++++++++++++-----
> >>   1 file changed, 16 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/Makefile.uk b/Makefile.uk
> >> index b3938d0..0cc6690 100644
> >> --- a/Makefile.uk
> >> +++ b/Makefile.uk
> >> @@ -4,15 +4,15 @@
> >>   #
> >>
> >>
> ##############################################################################
> ##
> >>
> >> -ASFLAGS     += -U __linux__ -U __FreeBSD__ -U __sun__ -D__ASSEMBLY__
> >> -no-pie
> >> +ASFLAGS     += -U __linux__ -U __FreeBSD__ -U __sun__ -D__ASSEMBLY__
> >>   ASINCLUDES  += -nostdinc -nostdlib -I$(CONFIG_UK_BASE)/include
> >> -CFLAGS      += -U __linux__ -U __FreeBSD__ -U __sun__ -no-pie
> >> +CFLAGS      += -U __linux__ -U __FreeBSD__ -U __sun__
> >>   CFLAGS      += -fno-stack-protector -fno-omit-frame-pointer
> >> -fno-tree-sra
> >>   CFLAGS      += -Wall -Wextra
> >>   CINCLUDES   += -nostdinc -nostdlib -I$(CONFIG_UK_BASE)/include
> >> -CXXFLAGS    += -U __linux__ -U __FreeBSD__ -U __sun__ -no-pie
> >> +CXXFLAGS    += -U __linux__ -U __FreeBSD__ -U __sun__
> >>   CXXFLAGS    += -fno-stack-protector -fno-omit-frame-pointer
> >> -fno-tree-sra
> >>   CXXFLAGS    += -Wall -Wextra
> >>   CXXINCLUDES += -nostdinc -nostdlib -I$(CONFIG_UK_BASE)/include
> >> @@ -20,8 +20,8 @@ CXXINCLUDES += -nostdinc -nostdlib
> >> -I$(CONFIG_UK_BASE)/include
> >>   # Set the text and data sections to be readable and writable. Also,
> >>   # do not page-align the data segment. If the output format supports
> >>   # Unix style magic numbers, mark the output as OMAGIC.
> >> -LIBLDFLAGS  += -nostdinc -nostdlib -Wl,--omagic -Wl,-r -no-pie
> >> -LDFLAGS     += -nostdinc -nostdlib -Wl,--omagic -Wl,--build-id=none
> >> -no-pie
> >> +LIBLDFLAGS  += -nostdinc -nostdlib -Wl,--omagic -Wl,-r
> >> +LDFLAGS     += -nostdinc -nostdlib -Wl,--omagic -Wl,--build-id=none
> >>   CFLAGS-$(CONFIG_OPTIMIZE_NONE)            += -O0
> >> -fno-optimize-sibling-calls -fno-tree-vectorize
> >>   CXXFLAGS-$(CONFIG_OPTIMIZE_NONE)          += -O0
> >> -fno-optimize-sibling-calls -fno-tree-vectorize
> >> @@ -56,3 +56,14 @@ endif
> >>   ASFLAGS  += -DUK_VERSION=$(UK_VERSION).$(UK_SUBVERSION)
> >> -DUK_FULLVERSION=$(UK_FULLVERSION) -DUK_CODENAME="$(UK_CODENAME)"
> >>   CFLAGS   += -DUK_VERSION=$(UK_VERSION).$(UK_SUBVERSION)
> >> -DUK_FULLVERSION=$(UK_FULLVERSION) -DUK_CODENAME="$(UK_CODENAME)"
> >>   CXXFLAGS += -DUK_VERSION=$(UK_VERSION).$(UK_SUBVERSION)
> >> -DUK_FULLVERSION=$(UK_FULLVERSION) -DUK_CODENAME="$(UK_CODENAME)"
> >> +
> >> +# Check whether the pie option is enabled by default. If possible,
> >> +# add -no-pie to link flags to override default pie option.
> >> +PIE_ON = $(shell $(CC) -v 2>&1 | grep -Fo "enable-default-pie")
> >> +ifneq ($(PIE_ON),)
> >> +ASFLAGS-$(call gcc_version_ge,6,1)    += -no-pie
> >> +CFLAGS-$(call gcc_version_ge,6,1)    += -no-pie
> >> +CXXFLAGS-$(call gcc_version_ge,6,1)    += -no-pie
> >> +LIBLDFLAGS-$(call gcc_version_ge,6,1)    += -no-pie
> >> +LDFLAGS-$(call gcc_version_ge,6,1)    += -no-pie
> >> +endif
> >>
> >
> > _______________________________________________
> > Minios-devel mailing list
> > Minios-devel@xxxxxxxxxxxxxxxxxxxx
> > https://lists.xenproject.org/mailman/listinfo/minios-devel
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.