diff options
author | H. Nikolaus Schaller <hns@goldelico.com> | 2021-07-08 10:57:10 +0200 |
---|---|---|
committer | Masahiro Yamada <masahiroy@kernel.org> | 2021-08-05 20:52:03 +0900 |
commit | 28bbbb9875a35975904e46f9b06fa689d051b290 (patch) | |
tree | 7d8387b5185bd9b9df5b87eb97fff62d3791f8eb /arch/mips/Makefile | |
parent | fa953adfad7cf9c7e30d9ea0e4ccfd38cfb5495d (diff) | |
download | linux-stable-28bbbb9875a35975904e46f9b06fa689d051b290.tar.gz linux-stable-28bbbb9875a35975904e46f9b06fa689d051b290.tar.bz2 linux-stable-28bbbb9875a35975904e46f9b06fa689d051b290.zip |
mips: Fix non-POSIX regexp
When cross compiling a MIPS kernel on a BSD based HOSTCC leads
to errors like
SYNC include/config/auto.conf.cmd - due to: .config
egrep: empty (sub)expression
UPD include/config/kernel.release
HOSTCC scripts/dtc/dtc.o - due to target missing
It turns out that egrep uses this egrep pattern:
(|MINOR_|PATCHLEVEL_)
This is not valid syntax or gives undefined results according
to POSIX 9.5.3 ERE Grammar
https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html
It seems to be silently accepted by the Linux egrep implementation
while a BSD host complains.
Such patterns can be replaced by a transformation like
"(|p1|p2)" -> "(p1|p2)?"
Fixes: 48c35b2d245f ("[MIPS] There is no __GNUC_MAJOR__")
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Diffstat (limited to 'arch/mips/Makefile')
-rw-r--r-- | arch/mips/Makefile | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index 4e942b7ef022..653befc1b176 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile @@ -321,7 +321,7 @@ KBUILD_LDFLAGS += -m $(ld-emul) ifdef CONFIG_MIPS CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \ - egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \ + egrep -vw '__GNUC_(MINOR_|PATCHLEVEL_)?_' | \ sed -e "s/^\#define /-D'/" -e "s/ /'='/" -e "s/$$/'/" -e 's/\$$/&&/g') endif |