| From cec354cf0269c00d409c4aad64d37c8bd76385bf Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 8 Jul 2021 10:57:10 +0200 |
| Subject: mips: Fix non-POSIX regexp |
| |
| From: H. Nikolaus Schaller <hns@goldelico.com> |
| |
| [ Upstream commit 28bbbb9875a35975904e46f9b06fa689d051b290 ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/mips/Makefile | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/arch/mips/Makefile b/arch/mips/Makefile |
| index 258234c35a09..674f68d16a73 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 |
| |
| -- |
| 2.30.2 |
| |