]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
gcc-8 coverity hack
authorJes Sorensen <jsorensen@fb.com>
Mon, 4 Jun 2018 18:49:59 +0000 (14:49 -0400)
committerJes Sorensen <jsorensen@fb.com>
Mon, 4 Jun 2018 18:49:59 +0000 (14:49 -0400)
Coverity still has issues with gcc-7, not to mention gcc-8. Hack around
it, until they fix it.

Signed-off-by: Jes Sorensen <jsorensen@fb.com>
Makefile
coverity-gcc-hack.h [new file with mode: 0644]

index 188a21801fcc35b5a4b289c878b9e18933262660..2767ac68396d407a548f9de7a96bb7ae4a8ca653 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -42,6 +42,10 @@ KLIBC=/home/src/klibc/klibc-0.77
 
 KLIBC_GCC = gcc -nostdinc -iwithprefix include -I$(KLIBC)/klibc/include -I$(KLIBC)/linux/include -I$(KLIBC)/klibc/arch/i386/include -I$(KLIBC)/klibc/include/bits32
 
+ifdef COVERITY
+COVERITY_FLAGS=-include coverity-gcc-hack.h
+endif
+
 CC ?= $(CROSS_COMPILE)gcc
 CXFLAGS ?= -ggdb
 CWFLAGS = -Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter
@@ -177,6 +181,9 @@ everything-test: all mdadm.static swap_super test_stripe \
 # mdadm.uclibc doesn't work on x86-64
 # mdadm.tcc doesn't work..
 
+%.o: %.c
+       $(CC) $(CFLAGS) $(CPPFLAGS) $(COVERITY_FLAGS) -o $@ -c $<
+
 mdadm : $(OBJS) | check_rundir
        $(CC) $(CFLAGS) $(LDFLAGS) -o mdadm $(OBJS) $(LDLIBS)
 
@@ -291,10 +298,10 @@ test: mdadm mdmon test_stripe swap_super raid6check
 
 clean :
        rm -f mdadm mdmon $(OBJS) $(MON_OBJS) $(STATICOBJS) core *.man \
-       mdadm.tcc mdadm.uclibc mdadm.static *.orig *.porig *.rej *.alt .merge_file_* \
-       mdadm.Os mdadm.O2 mdmon.O2 swap_super \
-       init.cpio.gz mdadm.uclibc.static test_stripe raid6check raid6check.o mdmon \
-       mdadm.8
+       mdadm.tcc mdadm.uclibc mdadm.static *.orig *.porig *.rej *.alt \
+       .merge_file_* mdadm.Os mdadm.O2 mdmon.O2 swap_super init.cpio.gz \
+       mdadm.uclibc.static test_stripe raid6check raid6check.o mdmon mdadm.8
+       rm -rf cov-int
 
 dist : clean
        ./makedist
diff --git a/coverity-gcc-hack.h b/coverity-gcc-hack.h
new file mode 100644 (file)
index 0000000..2d94a8b
--- /dev/null
@@ -0,0 +1,10 @@
+#if !defined(__KERNEL__) && defined(__x86_64__) && defined(__COVERITY_GCC_VERSION_AT_LEAST)
+#if __COVERITY_GCC_VERSION_AT_LEAST(7, 0)
+typedef float _Float128 __attribute__((__vector_size__(128)));
+typedef float _Float64 __attribute__((__vector_size__(64)));
+typedef float _Float32 __attribute__((__vector_size__(32)));
+typedef float _Float128x __attribute__((__vector_size__(128)));
+typedef float _Float64x __attribute__((__vector_size__(64)));
+typedef float _Float32x __attribute__((__vector_size__(32)));
+#endif
+#endif