Thread (34 messages) 34 messages, 6 authors, 2020-03-26

Re: [PATCH 01/16] lib/raid6/test: fix build on distros whose /bin/sh is not bash

From: Nick Desaulniers <ndesaulniers@google.com>
Date: 2020-03-24 16:36:51
Also in: linux-kbuild, lkml

On Tue, Mar 24, 2020 at 1:49 AM Masahiro Yamada [off-list ref] wrote:
quoted hunk ↗ jump to hunk
You can test raid6 library code from user-space, like this:

  $ cd lib/raid6/test
  $ make

The command in $(shell ...) function is evaluated by /bin/sh by default.
(or, you can change the default shell by setting 'SHELL' in Makefile)

Currently '>&/dev/null' is used to sink both stdout and stderr. Because
this code is bash-ism, it only works when /bin/sh is a symbolic link to
bash (this is the case on RHEL etc.)

This does not work on Ubuntu where /bin/sh is a symbolic link to dash.

I see lots of

  /bin/sh: 1: Syntax error: Bad fd number

and

  warning "your version of binutils lacks ... support"

Replace it with portable '>/dev/null 2>&1'.

Fixes: 4f8c55c5ad49 ("lib/raid6: build proper files on corresponding arch")
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: H. Peter Anvin (Intel) <hpa@zytor.com>
---

 lib/raid6/test/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/raid6/test/Makefile b/lib/raid6/test/Makefile
index 3ab8720aa2f8..b9e6c3648be1 100644
--- a/lib/raid6/test/Makefile
+++ b/lib/raid6/test/Makefile
@@ -35,13 +35,13 @@ endif
 ifeq ($(IS_X86),yes)
         OBJS   += mmx.o sse1.o sse2.o avx2.o recov_ssse3.o recov_avx2.o avx512.o recov_avx512.o
         CFLAGS += $(shell echo "pshufb %xmm0, %xmm0" |         \
-                    gcc -c -x assembler - >&/dev/null &&       \
+                    gcc -c -x assembler - >/dev/null 2>&1 &&   \
                     rm ./-.o && echo -DCONFIG_AS_SSSE3=1)
         CFLAGS += $(shell echo "vpbroadcastb %xmm0, %ymm1" |   \
-                    gcc -c -x assembler - >&/dev/null &&       \
+                    gcc -c -x assembler - >/dev/null 2>&1 &&   \
                     rm ./-.o && echo -DCONFIG_AS_AVX2=1)
        CFLAGS += $(shell echo "vpmovm2b %k1, %zmm5" |          \
-                   gcc -c -x assembler - >&/dev/null &&        \
+                   gcc -c -x assembler - >/dev/null 2>&1 &&    \
These should all use $(CC) rather than hardcode gcc.
                    rm ./-.o && echo -DCONFIG_AS_AVX512=1)
 else ifeq ($(HAS_NEON),yes)
         OBJS   += neon.o neon1.o neon2.o neon4.o neon8.o recov_neon.o recov_neon_inner.o
--
2.17.1

--
You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20200324084821.29944-2-masahiroy%40kernel.org.


-- 
Thanks,
~Nick Desaulniers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help