Message ID | 20161021111600.9417-1-bigeasy@linutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Oct 21, 2016 at 01:16:00PM +0200, Sebastian Andrzej Siewior wrote: > Debian started to build the gcc with --enable-default-pie by default To be exact: this is since gcc-6 6.2.0-7 dated Tue, 18 Oct 2016 13:53:00 +0200 on amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el s390x. > so the kernel build ends before it starts properly with: > |kernel/bounds.c:1:0: error: code model kernel does not support PIC mode > > Is this okay or do we want some kind of check to see if -fno-PIE is supported? > It is mentioned in the 4.4.7 gcc manpage is it is not *that* new :) A naive "git log -Sno-PIE" on gcc sources shows commit 3e7f6cce[1] from Feb 2004, and as gcc automatically supports no-XXX whenever XXX is added, it appears the option is older than that. > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > --- > Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index bf6e44a421df..97296d66b586 100644 > --- a/Makefile > +++ b/Makefile > @@ -398,7 +398,7 @@ KBUILD_CPPFLAGS := -D__KERNEL__ > KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ > -fno-strict-aliasing -fno-common \ > -Werror-implicit-function-declaration \ > - -Wno-format-security \ > + -Wno-format-security -fno-PIE \ > -std=gnu89 > > KBUILD_AFLAGS_KERNEL := > -- > 2.9.3 The patch works for me. I haven't done any but most trivial testing, though. [1]. Using the https://gcc.gnu.org/git/gcc.git git gateway, commit hashes may be different elsewhere.
On 2016-10-21 23:21 +0200, Adam Borowski wrote: > On Fri, Oct 21, 2016 at 01:16:00PM +0200, Sebastian Andrzej Siewior wrote: >> Debian started to build the gcc with --enable-default-pie by default > > To be exact: this is since gcc-6 6.2.0-7 dated Tue, 18 Oct 2016 13:53:00 +0200 > on amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el s390x. > >> so the kernel build ends before it starts properly with: >> |kernel/bounds.c:1:0: error: code model kernel does not support PIC mode >> >> Is this okay or do we want some kind of check to see if -fno-PIE is supported? >> It is mentioned in the 4.4.7 gcc manpage is it is not *that* new :) > > A naive "git log -Sno-PIE" on gcc sources shows commit 3e7f6cce[1] from Feb > 2004, and as gcc automatically supports no-XXX whenever XXX is added, it > appears the option is older than that. Testing on Debian 3.1 (sarge) chroot, it seems that GCC 3.4 is the first release to accept -fPIE/-fno-PIE. Which could be a problem since according to Documentation/Changes GCC 3.2 is sufficient to build the kernel. >> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> >> --- >> Makefile | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/Makefile b/Makefile >> index bf6e44a421df..97296d66b586 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -398,7 +398,7 @@ KBUILD_CPPFLAGS := -D__KERNEL__ >> KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ >> -fno-strict-aliasing -fno-common \ >> -Werror-implicit-function-declaration \ >> - -Wno-format-security \ >> + -Wno-format-security -fno-PIE \ >> -std=gnu89 >> >> KBUILD_AFLAGS_KERNEL := >> -- >> 2.9.3 > > The patch works for me. I haven't done any but most trivial testing, > though. > > > [1]. Using the https://gcc.gnu.org/git/gcc.git git gateway, commit hashes > may be different elsewhere. Cheers, Sven -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, 2016-10-23 at 18:19 +0200, Sven Joachim wrote: > On 2016-10-21 23:21 +0200, Adam Borowski wrote: > > On Fri, Oct 21, 2016 at 01:16:00PM +0200, Sebastian Andrzej Siewior wrote: > > > Debian started to build the gcc with --enable-default-pie by default [] > > > diff --git a/Makefile b/Makefile [] > > > @@ -398,7 +398,7 @@ KBUILD_CPPFLAGS := -D__KERNEL__ > > > KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ > > > -fno-strict-aliasing -fno-common \ > > > -Werror-implicit-function-declaration \ > > > - -Wno-format-security \ > > > + -Wno-format-security -fno-PIE \ > > > -std=gnu89 I've used this here instead: KBUILD_CFLAGS += $(call cc-option,-fno-pie) -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Makefile b/Makefile index bf6e44a421df..97296d66b586 100644 --- a/Makefile +++ b/Makefile @@ -398,7 +398,7 @@ KBUILD_CPPFLAGS := -D__KERNEL__ KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ -fno-strict-aliasing -fno-common \ -Werror-implicit-function-declaration \ - -Wno-format-security \ + -Wno-format-security -fno-PIE \ -std=gnu89 KBUILD_AFLAGS_KERNEL :=
Debian started to build the gcc with --enable-default-pie by default so the kernel build ends before it starts properly with: |kernel/bounds.c:1:0: error: code model kernel does not support PIC mode Is this okay or do we want some kind of check to see if -fno-PIE is supported? It is mentioned in the 4.4.7 gcc manpage is it is not *that* new :) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)