Message ID | 20200425054659.814774-1-masahiroy@kernel.org (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | parisc: suppress error messages for 'make clean' | expand |
On Sat, Apr 25, 2020 at 2:47 PM Masahiro Yamada <masahiroy@kernel.org> wrote: > > 'make ARCH=parisc clean' emits a tons of error messages as follows: > > $ make ARCH=parisc clean > gcc: error: unrecognized command line option '-mno-space-regs' > gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? > gcc: error: unrecognized command line option '-mdisable-fpregs' > gcc: error: missing argument to '-Wframe-larger-than=' > gcc: error: unrecognized command line option '-mno-space-regs' > gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? > gcc: error: unrecognized command line option '-mdisable-fpregs' > gcc: error: missing argument to '-Wframe-larger-than=' > ... > > You can supporess them except '-Wframe-larger-than' by setting correct > CROSS_COMPILE=, but we should not require any compiler for cleaning. > > This $(shell ...) is evaluated so many times because LIBGCC is exported. > Use the ':=' operator to evaluate it just once, and sink the stderr. > Applied to linux-kbuild. > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> > --- > > arch/parisc/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile > index 628cd8bb7ad8..d82787da43cd 100644 > --- a/arch/parisc/Makefile > +++ b/arch/parisc/Makefile > @@ -21,7 +21,7 @@ KBUILD_IMAGE := vmlinuz > > NM = sh $(srctree)/arch/parisc/nm > CHECKFLAGS += -D__hppa__=1 > -LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) > +LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name 2>/dev/null) > export LIBGCC > > ifdef CONFIG_64BIT > -- > 2.25.1 >
* Masahiro Yamada <masahiroy@kernel.org>: > On Sat, Apr 25, 2020 at 2:47 PM Masahiro Yamada <masahiroy@kernel.org> wrote: > > > > 'make ARCH=parisc clean' emits a tons of error messages as follows: > > > > $ make ARCH=parisc clean > > gcc: error: unrecognized command line option '-mno-space-regs' > > gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? > > gcc: error: unrecognized command line option '-mdisable-fpregs' > > gcc: error: missing argument to '-Wframe-larger-than=' > > gcc: error: unrecognized command line option '-mno-space-regs' > > gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? > > gcc: error: unrecognized command line option '-mdisable-fpregs' > > gcc: error: missing argument to '-Wframe-larger-than=' > > ... > > > > You can supporess them except '-Wframe-larger-than' by setting correct > > CROSS_COMPILE=, but we should not require any compiler for cleaning. > > > > This $(shell ...) is evaluated so many times because LIBGCC is exported. > > Use the ':=' operator to evaluate it just once, and sink the stderr. > > > > Applied to linux-kbuild. That patch breaks then building the boot loader/compressor: ... hppa-linux-gnu-ld -X -e startup --as-needed -T arch/parisc/boot/compressed/vmlinux.lds arch/parisc/boot/compressed/head.o arch/parisc/boot/compressed/real2.o arch/parisc/boot/compressed/firmware.o arch/parisc/boot/compressed/misc.o arch/parisc/boot/compressed/piggy.o -o arch/parisc/boot/compressed/vmlinux hppa-linux-gnu-ld: arch/parisc/boot/compressed/misc.o: in function `dec_vli': (.text+0x104): undefined reference to `__ashldi3' hppa-linux-gnu-ld: arch/parisc/boot/compressed/misc.o: in function `lzma_len': (.text+0x2b0): undefined reference to `$$mulI' hppa-linux-gnu-ld: (.text+0x344): undefined reference to `$$mulI' hppa-linux-gnu-ld: (.text+0x3f8): undefined reference to `$$mulI' The patch below works, but I wonder if it's possible to avoid to examine LIBGCC twice....? Helge diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile index 628cd8bb7ad8..aeea20abbf01 100644 --- a/arch/parisc/Makefile +++ b/arch/parisc/Makefile @@ -21,8 +21,7 @@ KBUILD_IMAGE := vmlinuz NM = sh $(srctree)/arch/parisc/nm CHECKFLAGS += -D__hppa__=1 -LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) -export LIBGCC +LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) ifdef CONFIG_64BIT UTS_MACHINE := parisc64 diff --git a/arch/parisc/boot/compressed/Makefile b/arch/parisc/boot/compressed/Makefile index 1e5879c6a752..b008cf1b5c1e 100644 --- a/arch/parisc/boot/compressed/Makefile +++ b/arch/parisc/boot/compressed/Makefile @@ -22,6 +22,8 @@ ifndef CONFIG_64BIT KBUILD_CFLAGS += -mfast-indirect-calls endif +LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) + OBJECTS += $(obj)/head.o $(obj)/real2.o $(obj)/firmware.o $(obj)/misc.o $(obj)/piggy.o LDFLAGS_vmlinux := -X -e startup --as-needed -T
Hi Helge, On Sat, May 9, 2020 at 6:46 AM Helge Deller <deller@gmx.de> wrote: > > * Masahiro Yamada <masahiroy@kernel.org>: > > On Sat, Apr 25, 2020 at 2:47 PM Masahiro Yamada <masahiroy@kernel.org> wrote: > > > > > > 'make ARCH=parisc clean' emits a tons of error messages as follows: > > > > > > $ make ARCH=parisc clean > > > gcc: error: unrecognized command line option '-mno-space-regs' > > > gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? > > > gcc: error: unrecognized command line option '-mdisable-fpregs' > > > gcc: error: missing argument to '-Wframe-larger-than=' > > > gcc: error: unrecognized command line option '-mno-space-regs' > > > gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? > > > gcc: error: unrecognized command line option '-mdisable-fpregs' > > > gcc: error: missing argument to '-Wframe-larger-than=' > > > ... > > > > > > You can supporess them except '-Wframe-larger-than' by setting correct > > > CROSS_COMPILE=, but we should not require any compiler for cleaning. > > > > > > This $(shell ...) is evaluated so many times because LIBGCC is exported. > > > Use the ':=' operator to evaluate it just once, and sink the stderr. > > > > > > > Applied to linux-kbuild. > > That patch breaks then building the boot loader/compressor: > ... > hppa-linux-gnu-ld -X -e startup --as-needed -T arch/parisc/boot/compressed/vmlinux.lds arch/parisc/boot/compressed/head.o arch/parisc/boot/compressed/real2.o arch/parisc/boot/compressed/firmware.o arch/parisc/boot/compressed/misc.o arch/parisc/boot/compressed/piggy.o -o arch/parisc/boot/compressed/vmlinux > hppa-linux-gnu-ld: arch/parisc/boot/compressed/misc.o: in function `dec_vli': > (.text+0x104): undefined reference to `__ashldi3' > hppa-linux-gnu-ld: arch/parisc/boot/compressed/misc.o: in function `lzma_len': > (.text+0x2b0): undefined reference to `$$mulI' > hppa-linux-gnu-ld: (.text+0x344): undefined reference to `$$mulI' > hppa-linux-gnu-ld: (.text+0x3f8): undefined reference to `$$mulI' > > > The patch below works, but I wonder if it's possible to avoid > to examine LIBGCC twice....? > > Helge Sorry for the breakage. How about moving LIBGCC below ? diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile index d82787da43cd..6b37aa37a365 100644 --- a/arch/parisc/Makefile +++ b/arch/parisc/Makefile @@ -21,8 +21,6 @@ KBUILD_IMAGE := vmlinuz NM = sh $(srctree)/arch/parisc/nm CHECKFLAGS += -D__hppa__=1 -LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name 2>/dev/null) -export LIBGCC ifdef CONFIG_64BIT UTS_MACHINE := parisc64 @@ -114,6 +112,10 @@ KBUILD_CFLAGS += $(cflags-y) kernel-y := mm/ kernel/ math-emu/ core-y += $(addprefix arch/parisc/, $(kernel-y)) + +LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name 2>/dev/null) +export LIBGCC + libs-y += arch/parisc/lib/ $(LIBGCC) drivers-$(CONFIG_OPROFILE) += arch/parisc/oprofile/ > > diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile > index 628cd8bb7ad8..aeea20abbf01 100644 > --- a/arch/parisc/Makefile > +++ b/arch/parisc/Makefile > @@ -21,8 +21,7 @@ KBUILD_IMAGE := vmlinuz > > NM = sh $(srctree)/arch/parisc/nm > CHECKFLAGS += -D__hppa__=1 > -LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) > -export LIBGCC > +LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) > > ifdef CONFIG_64BIT > UTS_MACHINE := parisc64 > diff --git a/arch/parisc/boot/compressed/Makefile b/arch/parisc/boot/compressed/Makefile > index 1e5879c6a752..b008cf1b5c1e 100644 > --- a/arch/parisc/boot/compressed/Makefile > +++ b/arch/parisc/boot/compressed/Makefile > @@ -22,6 +22,8 @@ ifndef CONFIG_64BIT > KBUILD_CFLAGS += -mfast-indirect-calls > endif > > +LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) > + > OBJECTS += $(obj)/head.o $(obj)/real2.o $(obj)/firmware.o $(obj)/misc.o $(obj)/piggy.o > > LDFLAGS_vmlinux := -X -e startup --as-needed -T
* Masahiro Yamada <masahiroy@kernel.org>: > Hi Helge, > > On Sat, May 9, 2020 at 6:46 AM Helge Deller <deller@gmx.de> wrote: > > > > * Masahiro Yamada <masahiroy@kernel.org>: > > > On Sat, Apr 25, 2020 at 2:47 PM Masahiro Yamada <masahiroy@kernel.org> wrote: > > > > > > > > 'make ARCH=parisc clean' emits a tons of error messages as follows: > > > > > > > > $ make ARCH=parisc clean > > > > gcc: error: unrecognized command line option '-mno-space-regs' > > > > gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? > > > > gcc: error: unrecognized command line option '-mdisable-fpregs' > > > > gcc: error: missing argument to '-Wframe-larger-than=' > > > > gcc: error: unrecognized command line option '-mno-space-regs' > > > > gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? > > > > gcc: error: unrecognized command line option '-mdisable-fpregs' > > > > gcc: error: missing argument to '-Wframe-larger-than=' > > > > ... > > > > > > > > You can supporess them except '-Wframe-larger-than' by setting correct > > > > CROSS_COMPILE=, but we should not require any compiler for cleaning. > > > > > > > > This $(shell ...) is evaluated so many times because LIBGCC is exported. > > > > Use the ':=' operator to evaluate it just once, and sink the stderr. > > > > > > > > > > Applied to linux-kbuild. > > > > That patch breaks then building the boot loader/compressor: > > ... > > hppa-linux-gnu-ld -X -e startup --as-needed -T arch/parisc/boot/compressed/vmlinux.lds arch/parisc/boot/compressed/head.o arch/parisc/boot/compressed/real2.o arch/parisc/boot/compressed/firmware.o arch/parisc/boot/compressed/misc.o arch/parisc/boot/compressed/piggy.o -o arch/parisc/boot/compressed/vmlinux > > hppa-linux-gnu-ld: arch/parisc/boot/compressed/misc.o: in function `dec_vli': > > (.text+0x104): undefined reference to `__ashldi3' > > hppa-linux-gnu-ld: arch/parisc/boot/compressed/misc.o: in function `lzma_len': > > (.text+0x2b0): undefined reference to `$$mulI' > > hppa-linux-gnu-ld: (.text+0x344): undefined reference to `$$mulI' > > hppa-linux-gnu-ld: (.text+0x3f8): undefined reference to `$$mulI' > > > > > > The patch below works, but I wonder if it's possible to avoid > > to examine LIBGCC twice....? > > > > Helge > > > Sorry for the breakage. > > How about moving LIBGCC below ? Good idea. The patch below does work for me. We do not need $KBUILD_CFLAGS to get the libgcc.a filename, so we do not need to pipe the output to /dev/null either. Can you try if that works, and if yes, can you apply it? Helge diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile index 628cd8bb7ad8..fadbbd010337 100644 --- a/arch/parisc/Makefile +++ b/arch/parisc/Makefile @@ -21,8 +21,6 @@ KBUILD_IMAGE := vmlinuz NM = sh $(srctree)/arch/parisc/nm CHECKFLAGS += -D__hppa__=1 -LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) -export LIBGCC ifdef CONFIG_64BIT UTS_MACHINE := parisc64 @@ -110,6 +108,8 @@ cflags-$(CONFIG_PA8X00) += -march=2.0 -mschedule=8000 head-y := arch/parisc/kernel/head.o KBUILD_CFLAGS += $(cflags-y) +LIBGCC := $(shell $(CC) -print-libgcc-file-name) +export LIBGCC kernel-y := mm/ kernel/ math-emu/
Hi Helge, On Sun, May 10, 2020 at 2:39 AM Helge Deller <deller@gmx.de> wrote: > > * Masahiro Yamada <masahiroy@kernel.org>: > > Hi Helge, > > > > On Sat, May 9, 2020 at 6:46 AM Helge Deller <deller@gmx.de> wrote: > > > > > > * Masahiro Yamada <masahiroy@kernel.org>: > > > > On Sat, Apr 25, 2020 at 2:47 PM Masahiro Yamada <masahiroy@kernel.org> wrote: > > > > > > > > > > 'make ARCH=parisc clean' emits a tons of error messages as follows: > > > > > > > > > > $ make ARCH=parisc clean > > > > > gcc: error: unrecognized command line option '-mno-space-regs' > > > > > gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? > > > > > gcc: error: unrecognized command line option '-mdisable-fpregs' > > > > > gcc: error: missing argument to '-Wframe-larger-than=' > > > > > gcc: error: unrecognized command line option '-mno-space-regs' > > > > > gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? > > > > > gcc: error: unrecognized command line option '-mdisable-fpregs' > > > > > gcc: error: missing argument to '-Wframe-larger-than=' > > > > > ... > > > > > > > > > > You can supporess them except '-Wframe-larger-than' by setting correct > > > > > CROSS_COMPILE=, but we should not require any compiler for cleaning. > > > > > > > > > > This $(shell ...) is evaluated so many times because LIBGCC is exported. > > > > > Use the ':=' operator to evaluate it just once, and sink the stderr. > > > > > > > > > > > > > Applied to linux-kbuild. > > > > > > That patch breaks then building the boot loader/compressor: > > > ... > > > hppa-linux-gnu-ld -X -e startup --as-needed -T arch/parisc/boot/compressed/vmlinux.lds arch/parisc/boot/compressed/head.o arch/parisc/boot/compressed/real2.o arch/parisc/boot/compressed/firmware.o arch/parisc/boot/compressed/misc.o arch/parisc/boot/compressed/piggy.o -o arch/parisc/boot/compressed/vmlinux > > > hppa-linux-gnu-ld: arch/parisc/boot/compressed/misc.o: in function `dec_vli': > > > (.text+0x104): undefined reference to `__ashldi3' > > > hppa-linux-gnu-ld: arch/parisc/boot/compressed/misc.o: in function `lzma_len': > > > (.text+0x2b0): undefined reference to `$$mulI' > > > hppa-linux-gnu-ld: (.text+0x344): undefined reference to `$$mulI' > > > hppa-linux-gnu-ld: (.text+0x3f8): undefined reference to `$$mulI' > > > > > > > > > The patch below works, but I wonder if it's possible to avoid > > > to examine LIBGCC twice....? > > > > > > Helge > > > > > > Sorry for the breakage. > > > > How about moving LIBGCC below ? > > Good idea. > The patch below does work for me. > We do not need $KBUILD_CFLAGS to get the libgcc.a filename, I not not sure about this change. Generally speaking, the path to libgcc.a is affected by compiler flags, especially, bit size flags, endian flags, etc. For example, my distro gcc is biarch for i386/x86_64. $ gcc -print-libgcc-file-name /usr/lib/gcc/x86_64-linux-gnu/9/libgcc.a $ gcc -m64 -print-libgcc-file-name /usr/lib/gcc/x86_64-linux-gnu/9/libgcc.a $ gcc -m32 -print-libgcc-file-name /usr/lib/gcc/x86_64-linux-gnu/9/32/libgcc.a One real example in Linux is arch/arc/Makefile. ARC supports both big endian and little endian. If you drop cflags-y from line 59 of arch/arc/Makefile, vmlinux fails to link due to endian mismatch. I am not familiar with parisc. Also, as it turned out, this change is not so trivial. I think the best approach is to leave this up to you since you are the parisc maintainer. I will drop this patch from my kbuild tree, then you will apply what you think is best to your tree. What do you think? > so we do not need to pipe the output to /dev/null either. > Can you try if that works, and if yes, can you apply it? > > Helge > > > diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile > index 628cd8bb7ad8..fadbbd010337 100644 > --- a/arch/parisc/Makefile > +++ b/arch/parisc/Makefile > @@ -21,8 +21,6 @@ KBUILD_IMAGE := vmlinuz > > NM = sh $(srctree)/arch/parisc/nm > CHECKFLAGS += -D__hppa__=1 > -LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) > -export LIBGCC > > ifdef CONFIG_64BIT > UTS_MACHINE := parisc64 > @@ -110,6 +108,8 @@ cflags-$(CONFIG_PA8X00) += -march=2.0 -mschedule=8000 > head-y := arch/parisc/kernel/head.o > > KBUILD_CFLAGS += $(cflags-y) > +LIBGCC := $(shell $(CC) -print-libgcc-file-name) > +export LIBGCC > > kernel-y := mm/ kernel/ math-emu/ >
On 10.05.20 03:19, Masahiro Yamada wrote: > Hi Helge, > > On Sun, May 10, 2020 at 2:39 AM Helge Deller <deller@gmx.de> wrote: >> >> * Masahiro Yamada <masahiroy@kernel.org>: >>> Hi Helge, >>> >>> On Sat, May 9, 2020 at 6:46 AM Helge Deller <deller@gmx.de> wrote: >>>> >>>> * Masahiro Yamada <masahiroy@kernel.org>: >>>>> On Sat, Apr 25, 2020 at 2:47 PM Masahiro Yamada <masahiroy@kernel.org> wrote: >>>>>> >>>>>> 'make ARCH=parisc clean' emits a tons of error messages as follows: >>>>>> >>>>>> $ make ARCH=parisc clean >>>>>> gcc: error: unrecognized command line option '-mno-space-regs' >>>>>> gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? >>>>>> gcc: error: unrecognized command line option '-mdisable-fpregs' >>>>>> gcc: error: missing argument to '-Wframe-larger-than=' >>>>>> gcc: error: unrecognized command line option '-mno-space-regs' >>>>>> gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? >>>>>> gcc: error: unrecognized command line option '-mdisable-fpregs' >>>>>> gcc: error: missing argument to '-Wframe-larger-than=' >>>>>> ... >>>>>> >>>>>> You can supporess them except '-Wframe-larger-than' by setting correct >>>>>> CROSS_COMPILE=, but we should not require any compiler for cleaning. >>>>>> >>>>>> This $(shell ...) is evaluated so many times because LIBGCC is exported. >>>>>> Use the ':=' operator to evaluate it just once, and sink the stderr. >>>>>> >>>>> >>>>> Applied to linux-kbuild. >>>> >>>> That patch breaks then building the boot loader/compressor: >>>> ... >>>> hppa-linux-gnu-ld -X -e startup --as-needed -T arch/parisc/boot/compressed/vmlinux.lds arch/parisc/boot/compressed/head.o arch/parisc/boot/compressed/real2.o arch/parisc/boot/compressed/firmware.o arch/parisc/boot/compressed/misc.o arch/parisc/boot/compressed/piggy.o -o arch/parisc/boot/compressed/vmlinux >>>> hppa-linux-gnu-ld: arch/parisc/boot/compressed/misc.o: in function `dec_vli': >>>> (.text+0x104): undefined reference to `__ashldi3' >>>> hppa-linux-gnu-ld: arch/parisc/boot/compressed/misc.o: in function `lzma_len': >>>> (.text+0x2b0): undefined reference to `$$mulI' >>>> hppa-linux-gnu-ld: (.text+0x344): undefined reference to `$$mulI' >>>> hppa-linux-gnu-ld: (.text+0x3f8): undefined reference to `$$mulI' >>>> >>>> >>>> The patch below works, but I wonder if it's possible to avoid >>>> to examine LIBGCC twice....? >>>> >>>> Helge >>> >>> >>> Sorry for the breakage. >>> >>> How about moving LIBGCC below ? >> >> Good idea. >> The patch below does work for me. >> We do not need $KBUILD_CFLAGS to get the libgcc.a filename, > > > I not not sure about this change. > Generally speaking, the path to libgcc.a is affected > by compiler flags, especially, bit size flags, > endian flags, etc. > > For example, my distro gcc is biarch for i386/x86_64. > > $ gcc -print-libgcc-file-name > /usr/lib/gcc/x86_64-linux-gnu/9/libgcc.a > $ gcc -m64 -print-libgcc-file-name > /usr/lib/gcc/x86_64-linux-gnu/9/libgcc.a > $ gcc -m32 -print-libgcc-file-name > /usr/lib/gcc/x86_64-linux-gnu/9/32/libgcc.a > > One real example in Linux is arch/arc/Makefile. > ARC supports both big endian and little endian. > > If you drop cflags-y from line 59 > of arch/arc/Makefile, vmlinux fails to link > due to endian mismatch. > > > I am not familiar with parisc. > Also, as it turned out, > this change is not so trivial. > > I think the best approach is to leave this up to you > since you are the parisc maintainer. Yes, I knew about the possible biarch options. On parisc that's not relevant yet. > I will drop this patch from my kbuild tree, > then you will apply what you think is best > to your tree. > > What do you think? Sure, I'll take it through the parisc tree. Thanks! Helge >> so we do not need to pipe the output to /dev/null either. >> Can you try if that works, and if yes, can you apply it? >> >> Helge >> >> >> diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile >> index 628cd8bb7ad8..fadbbd010337 100644 >> --- a/arch/parisc/Makefile >> +++ b/arch/parisc/Makefile >> @@ -21,8 +21,6 @@ KBUILD_IMAGE := vmlinuz >> >> NM = sh $(srctree)/arch/parisc/nm >> CHECKFLAGS += -D__hppa__=1 >> -LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) >> -export LIBGCC >> >> ifdef CONFIG_64BIT >> UTS_MACHINE := parisc64 >> @@ -110,6 +108,8 @@ cflags-$(CONFIG_PA8X00) += -march=2.0 -mschedule=8000 >> head-y := arch/parisc/kernel/head.o >> >> KBUILD_CFLAGS += $(cflags-y) >> +LIBGCC := $(shell $(CC) -print-libgcc-file-name) >> +export LIBGCC >> >> kernel-y := mm/ kernel/ math-emu/ >> > >
Helge Deller wrote: > On 10.05.20 03:19, Masahiro Yamada wrote: > > Hi Helge, > > > > On Sun, May 10, 2020 at 2:39 AM Helge Deller <deller@gmx.de> wrote: > > I will drop this patch from my kbuild tree, > > then you will apply what you think is best > > to your tree. > > > > What do you think? > > Sure, I'll take it through the parisc tree. Is this already in 5.7.2? I get these: pioneer /usr/src/linux-5.7.1-gentoo # make distclean gcc: error: missing argument to '-Wframe-larger-than=' gcc: error: missing argument to '-Wframe-larger-than=' CLEAN arch/parisc/kernel gcc: error: missing argument to '-Wframe-larger-than=' gcc: error: missing argument to '-Wframe-larger-than=' Eike
On 13.06.20 21:36, Rolf Eike Beer wrote: > Helge Deller wrote: >> On 10.05.20 03:19, Masahiro Yamada wrote: >>> Hi Helge, >>> >>> On Sun, May 10, 2020 at 2:39 AM Helge Deller <deller@gmx.de> wrote: > >>> I will drop this patch from my kbuild tree, >>> then you will apply what you think is best >>> to your tree. >>> >>> What do you think? >> >> Sure, I'll take it through the parisc tree. > > Is this already in 5.7.2? No, because it went into 5.8 kernel and not backwards into 5.7.x: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0d341e0ddb1a3444716420ad9151949c02adbe4e Helge > I get these: > > pioneer /usr/src/linux-5.7.1-gentoo # make distclean > gcc: error: missing argument to '-Wframe-larger-than=' > gcc: error: missing argument to '-Wframe-larger-than=' > CLEAN arch/parisc/kernel > gcc: error: missing argument to '-Wframe-larger-than=' > gcc: error: missing argument to '-Wframe-larger-than='
diff --git a/arch/parisc/Makefile b/arch/parisc/Makefile index 628cd8bb7ad8..d82787da43cd 100644 --- a/arch/parisc/Makefile +++ b/arch/parisc/Makefile @@ -21,7 +21,7 @@ KBUILD_IMAGE := vmlinuz NM = sh $(srctree)/arch/parisc/nm CHECKFLAGS += -D__hppa__=1 -LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) +LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name 2>/dev/null) export LIBGCC ifdef CONFIG_64BIT
'make ARCH=parisc clean' emits a tons of error messages as follows: $ make ARCH=parisc clean gcc: error: unrecognized command line option '-mno-space-regs' gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? gcc: error: unrecognized command line option '-mdisable-fpregs' gcc: error: missing argument to '-Wframe-larger-than=' gcc: error: unrecognized command line option '-mno-space-regs' gcc: error: unrecognized command line option '-mfast-indirect-calls'; did you mean '-mforce-indirect-call'? gcc: error: unrecognized command line option '-mdisable-fpregs' gcc: error: missing argument to '-Wframe-larger-than=' ... You can supporess them except '-Wframe-larger-than' by setting correct CROSS_COMPILE=, but we should not require any compiler for cleaning. This $(shell ...) is evaluated so many times because LIBGCC is exported. Use the ':=' operator to evaluate it just once, and sink the stderr. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> --- arch/parisc/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)