summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason A. Donenfeld <zx2c4@gentoo.org>2018-02-14 13:32:43 +0100
committerJason A. Donenfeld <zx2c4@gentoo.org>2018-02-14 13:37:03 +0100
commitae3c38350efab149e32d974d8642891f69f375a3 (patch)
treee4ee64fa35d130d826b6808fca8de7ec4733adbe /sys-devel/sparse/files
parentnet-p2p/pybitmessage: remove vulnerable 0.6.2-r2 (diff)
downloadgentoo-ae3c38350efab149e32d974d8642891f69f375a3.tar.gz
gentoo-ae3c38350efab149e32d974d8642891f69f375a3.tar.bz2
gentoo-ae3c38350efab149e32d974d8642891f69f375a3.zip
sys-devel/sparse: modernize
Package-Manager: Portage-2.3.24, Repoman-2.3.6
Diffstat (limited to 'sys-devel/sparse/files')
-rw-r--r--sys-devel/sparse/files/sparse-0.4.3-gentoo.patch49
-rw-r--r--sys-devel/sparse/files/sparse-0.5.1-cmdline-include.patch66
2 files changed, 66 insertions, 49 deletions
diff --git a/sys-devel/sparse/files/sparse-0.4.3-gentoo.patch b/sys-devel/sparse/files/sparse-0.4.3-gentoo.patch
deleted file mode 100644
index 6f46687d78b3..000000000000
--- a/sys-devel/sparse/files/sparse-0.4.3-gentoo.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 74905df..1f2b2b6 100644
---- a/Makefile
-+++ b/Makefile
-@@ -4,7 +4,7 @@ OS = linux
-
-
- CC = gcc
--CFLAGS = -O2 -finline-functions -fno-strict-aliasing -g
-+CFLAGS ?= -O2 -finline-functions -fno-strict-aliasing -g
- CFLAGS += -Wall -Wwrite-strings
- LDFLAGS += -g
- AR = ar
-@@ -21,7 +21,8 @@ HAVE_GCC_DEP:=$(shell touch .gcc-test.c && \
- echo 'yes'; rm -f .gcc-test.d .gcc-test.o .gcc-test.c)
- HAVE_GTK2:=$(shell pkg-config --exists gtk+-2.0 2>/dev/null && echo 'yes')
-
--CFLAGS += -DGCC_BASE=\"$(shell $(CC) --print-file-name=)\"
-+GCC_BASE = $(shell $(CC) --print-file-name=)
-+CFLAGS += -DGCC_BASE=\"$(GCC_BASE)\"
-
- ifeq ($(HAVE_GCC_DEP),yes)
- CFLAGS += -Wp,-MD,$(@D)/.$(@F).d
-@@ -113,7 +114,9 @@ SED_PC_CMD = 's|@version@|$(VERSION)|g; \
-
- all: $(PROGRAMS) sparse.pc
-
--install: $(INST_PROGRAMS) $(LIBS) $(LIB_H) sparse.pc
-+all-installable: $(INST_PROGRAMS) $(LIBS) $(LIB_H) sparse.pc
-+
-+install: all-installable
- $(Q)install -d $(DESTDIR)$(BINDIR)
- $(Q)install -d $(DESTDIR)$(LIBDIR)
- $(Q)install -d $(DESTDIR)$(MAN1DIR)
-diff --git a/parse.h b/parse.h
-index 6b21e23..b26bd03 100644
---- a/parse.h
-+++ b/parse.h
-@@ -35,10 +35,6 @@ struct statement {
- struct /* declaration */ {
- struct symbol_list *declaration;
- };
-- struct /* label_arg */ {
-- struct symbol *label;
-- struct statement *label_statement;
-- };
- struct {
- struct expression *expression;
- struct expression *context;
diff --git a/sys-devel/sparse/files/sparse-0.5.1-cmdline-include.patch b/sys-devel/sparse/files/sparse-0.5.1-cmdline-include.patch
new file mode 100644
index 000000000000..5ea763001a05
--- /dev/null
+++ b/sys-devel/sparse/files/sparse-0.5.1-cmdline-include.patch
@@ -0,0 +1,66 @@
+diff --git a/validation/include-eval.c b/validation/include-eval.c
+new file mode 100644
+index 000000000..bf9bf63fe
+--- /dev/null
++++ b/validation/include-eval.c
+@@ -0,0 +1,7 @@
++/* nothing */
++
++/*
++ * check-name: include-eval.c
++ * check-command: sparse -include ./include-eval.inc $file
++ * check-known-to-fail
++ */
+diff --git a/validation/include-eval.inc b/validation/include-eval.inc
+new file mode 100644
+index 000000000..e2561ca41
+--- /dev/null
++++ b/validation/include-eval.inc
+@@ -0,0 +1,12 @@
++typedef unsigned long long_t;
++
++inline
++static unsigned int ok(void)
++{
++ return sizeof(long_t);
++}
++
++static unsigned int ko(void)
++{
++ return sizeof(long_t);
++}
+diff --git a/lib.c b/lib.c
+index 4602cf85d..b255fec14 100644
+--- a/lib.c
++++ b/lib.c
+@@ -1351,6 +1351,20 @@ struct symbol_list *sparse_initialize(int argc, char **argv, struct string_list
+ */
+ protect_token_alloc();
+ }
++ /*
++ * Evaluate the complete symbol list
++ * Note: This is not needed for normal cases.
++ * These symbols should only be predefined defines and
++ * declaratons which will be evaluated later, when needed.
++ * This is also the case when a file is directly included via
++ * '-include <file>' on the command line *AND* the file only
++ * contains defines, declarations and inline definitions.
++ * However, in the rare cases where the given file should
++ * contain some definitions, these will never be evaluated
++ * and thus won't be able to be linearized correctly.
++ * Hence the evaluate_symbol_list() here under.
++ */
++ evaluate_symbol_list(list);
+ return list;
+ }
+
+diff --git a/validation/include-eval.c b/validation/include-eval.c
+index bf9bf63fe..1a91dab84 100644
+--- a/validation/include-eval.c
++++ b/validation/include-eval.c
+@@ -3,5 +3,4 @@
+ /*
+ * check-name: include-eval.c
+ * check-command: sparse -include ./include-eval.inc $file
+- * check-known-to-fail
+ */