commit: 3d514acfe7cf80ea5dfc189055bb2e7fdf6a2d43
parent 7d88126e0ab869493e784d5b95569646883874a7
Author: Michael Forney <mforney@mforney.org>
Date: Sun, 16 Aug 2020 17:26:26 -0700
Add pciutils 3.7.0
Diffstat:
11 files changed, 353 insertions(+), 0 deletions(-)
diff --git a/.gitmodules b/.gitmodules
@@ -238,6 +238,10 @@
[submodule "pkg/openssh/src"]
path = pkg/openssh/src
url = https://github.com/oasislinux/openssh.git
+[submodule "pkg/pciutils/src"]
+ path = pkg/pciutils/src
+ url = https://git.kernel.org/pub/scm/utils/pciutils/pciutils.git
+ ignore = all
[submodule "pkg/pigz/src"]
path = pkg/pigz/src
url = https://github.com/madler/pigz
diff --git a/pkg/gen.lua b/pkg/gen.lua
@@ -83,6 +83,7 @@ subgen 'oksh'
subgen 'openbsd'
subgen 'openntpd'
subgen 'openssh'
+subgen 'pciutils'
subgen 'pcre'
subgen 'perp'
subgen 'pigz'
diff --git a/pkg/pciutils/config.h b/pkg/pciutils/config.h
@@ -0,0 +1,9 @@
+#define PCI_CONFIG_H
+#define PCI_OS_LINUX
+#define PCI_HAVE_PM_LINUX_SYSFS
+#define PCI_HAVE_LINUX_BYTEORDER_H
+#define PCI_PATH_SYS_BUS_PCI "/sys/bus/pci"
+#define PCI_HAVE_64BIT_ADDRESS
+#define PCI_IDS "pci.ids"
+#define PCI_PATH_IDS_DIR "/share"
+#define PCILIB_VERSION "3.7.0"
diff --git a/pkg/pciutils/gen.lua b/pkg/pciutils/gen.lua
@@ -0,0 +1,53 @@
+cflags{
+ '-Wall', '-Wpedantic', '-Wno-parentheses',
+ '-I $dir',
+}
+
+lib('libpci.a', [[
+ lib/(
+ init.c
+ access.c
+ generic.c
+ dump.c
+ names.c
+ filter.c
+ names-hash.c
+ names-parse.c
+ names-net.c
+ names-cache.c
+ names-hwdb.c
+ params.c
+ caps.c
+ sysfs.c
+ )
+]])
+
+cc('common.c')
+
+exe('lspci', {
+ 'lspci.c',
+ 'ls-vpd.c',
+ 'ls-caps.c',
+ 'ls-caps-vendor.c',
+ 'ls-ecaps.c',
+ 'ls-kernel.c',
+ 'ls-tree.c',
+ 'ls-map.c',
+ 'common.c.o',
+ 'libpci.a',
+})
+file('bin/lspci', '755', '$outdir/lspci')
+man({'$srcdir/lspci.man'}, '8')
+
+exe('setpci', {
+ 'setpci.c',
+ 'common.c.o',
+ 'libpci.a',
+})
+file('bin/setpci', '755', '$outdir/setpci')
+man({'$srcdir/setpci.man'}, '8')
+
+file('share/pci.ids', '644', '$srcdir/pci.ids')
+man({'$srcdir/pci.ids.man'}, '5')
+
+fetch 'git'
diff --git a/pkg/pciutils/patch/0001-Avoid-empty-top-level-declarations.patch b/pkg/pciutils/patch/0001-Avoid-empty-top-level-declarations.patch
@@ -0,0 +1,104 @@
+From 0ff37625c4e1d7835fed885de5f9ef6ec642ffe6 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sun, 16 Aug 2020 16:14:04 -0700
+Subject: [PATCH] Avoid empty top-level declarations
+
+These are not allowed in ISO C.
+---
+ lib/access.c | 24 ++++++++++++------------
+ lib/filter.c | 24 ++++++++++++------------
+ lib/init.c | 8 ++++----
+ 3 files changed, 28 insertions(+), 28 deletions(-)
+
+diff --git a/lib/access.c b/lib/access.c
+index b257849..139924f 100644
+--- a/lib/access.c
++++ b/lib/access.c
+@@ -204,18 +204,18 @@ pci_fill_info_v35(struct pci_dev *d, int flags)
+
+ /* In version 3.1, pci_fill_info got new flags => versioned alias */
+ /* In versions 3.2, 3.3, 3.4 and 3.5, the same has happened */
+-STATIC_ALIAS(int pci_fill_info(struct pci_dev *d, int flags), pci_fill_info_v35(d, flags));
+-DEFINE_ALIAS(int pci_fill_info_v30(struct pci_dev *d, int flags), pci_fill_info_v35);
+-DEFINE_ALIAS(int pci_fill_info_v31(struct pci_dev *d, int flags), pci_fill_info_v35);
+-DEFINE_ALIAS(int pci_fill_info_v32(struct pci_dev *d, int flags), pci_fill_info_v35);
+-DEFINE_ALIAS(int pci_fill_info_v33(struct pci_dev *d, int flags), pci_fill_info_v35);
+-DEFINE_ALIAS(int pci_fill_info_v34(struct pci_dev *d, int flags), pci_fill_info_v35);
+-SYMBOL_VERSION(pci_fill_info_v30, pci_fill_info@LIBPCI_3.0);
+-SYMBOL_VERSION(pci_fill_info_v31, pci_fill_info@LIBPCI_3.1);
+-SYMBOL_VERSION(pci_fill_info_v32, pci_fill_info@LIBPCI_3.2);
+-SYMBOL_VERSION(pci_fill_info_v33, pci_fill_info@LIBPCI_3.3);
+-SYMBOL_VERSION(pci_fill_info_v34, pci_fill_info@LIBPCI_3.4);
+-SYMBOL_VERSION(pci_fill_info_v35, pci_fill_info@@LIBPCI_3.5);
++STATIC_ALIAS(int pci_fill_info(struct pci_dev *d, int flags), pci_fill_info_v35(d, flags))
++DEFINE_ALIAS(int pci_fill_info_v30(struct pci_dev *d, int flags), pci_fill_info_v35)
++DEFINE_ALIAS(int pci_fill_info_v31(struct pci_dev *d, int flags), pci_fill_info_v35)
++DEFINE_ALIAS(int pci_fill_info_v32(struct pci_dev *d, int flags), pci_fill_info_v35)
++DEFINE_ALIAS(int pci_fill_info_v33(struct pci_dev *d, int flags), pci_fill_info_v35)
++DEFINE_ALIAS(int pci_fill_info_v34(struct pci_dev *d, int flags), pci_fill_info_v35)
++SYMBOL_VERSION(pci_fill_info_v30, pci_fill_info@LIBPCI_3.0)
++SYMBOL_VERSION(pci_fill_info_v31, pci_fill_info@LIBPCI_3.1)
++SYMBOL_VERSION(pci_fill_info_v32, pci_fill_info@LIBPCI_3.2)
++SYMBOL_VERSION(pci_fill_info_v33, pci_fill_info@LIBPCI_3.3)
++SYMBOL_VERSION(pci_fill_info_v34, pci_fill_info@LIBPCI_3.4)
++SYMBOL_VERSION(pci_fill_info_v35, pci_fill_info@@LIBPCI_3.5)
+
+ void
+ pci_setup_cache(struct pci_dev *d, byte *cache, int len)
+diff --git a/lib/filter.c b/lib/filter.c
+index 573fb28..7ca56a8 100644
+--- a/lib/filter.c
++++ b/lib/filter.c
+@@ -223,18 +223,18 @@ pci_filter_match_v30(struct pci_filter_v30 *f, struct pci_dev *d)
+ return pci_filter_match_v33(&new, d);
+ }
+
+-STATIC_ALIAS(void pci_filter_init(struct pci_access *a, struct pci_filter *f), pci_filter_init_v33(a, f));
+-SYMBOL_VERSION(pci_filter_init_v30, pci_filter_init@LIBPCI_3.0);
+-SYMBOL_VERSION(pci_filter_init_v33, pci_filter_init@@LIBPCI_3.3);
++STATIC_ALIAS(void pci_filter_init(struct pci_access *a, struct pci_filter *f), pci_filter_init_v33(a, f))
++SYMBOL_VERSION(pci_filter_init_v30, pci_filter_init@LIBPCI_3.0)
++SYMBOL_VERSION(pci_filter_init_v33, pci_filter_init@@LIBPCI_3.3)
+
+-STATIC_ALIAS(char *pci_filter_parse_slot(struct pci_filter *f, char *str), pci_filter_parse_slot_v33(f, str));
+-SYMBOL_VERSION(pci_filter_parse_slot_v30, pci_filter_parse_slot@LIBPCI_3.0);
+-SYMBOL_VERSION(pci_filter_parse_slot_v33, pci_filter_parse_slot@@LIBPCI_3.3);
++STATIC_ALIAS(char *pci_filter_parse_slot(struct pci_filter *f, char *str), pci_filter_parse_slot_v33(f, str))
++SYMBOL_VERSION(pci_filter_parse_slot_v30, pci_filter_parse_slot@LIBPCI_3.0)
++SYMBOL_VERSION(pci_filter_parse_slot_v33, pci_filter_parse_slot@@LIBPCI_3.3)
+
+-STATIC_ALIAS(char *pci_filter_parse_id(struct pci_filter *f, char *str), pci_filter_parse_id_v33(f, str));
+-SYMBOL_VERSION(pci_filter_parse_id_v30, pci_filter_parse_id@LIBPCI_3.0);
+-SYMBOL_VERSION(pci_filter_parse_id_v33, pci_filter_parse_id@@LIBPCI_3.3);
++STATIC_ALIAS(char *pci_filter_parse_id(struct pci_filter *f, char *str), pci_filter_parse_id_v33(f, str))
++SYMBOL_VERSION(pci_filter_parse_id_v30, pci_filter_parse_id@LIBPCI_3.0)
++SYMBOL_VERSION(pci_filter_parse_id_v33, pci_filter_parse_id@@LIBPCI_3.3)
+
+-STATIC_ALIAS(int pci_filter_match(struct pci_filter *f, struct pci_dev *d), pci_filter_match_v33(f, d));
+-SYMBOL_VERSION(pci_filter_match_v30, pci_filter_match@LIBPCI_3.0);
+-SYMBOL_VERSION(pci_filter_match_v33, pci_filter_match@@LIBPCI_3.3);
++STATIC_ALIAS(int pci_filter_match(struct pci_filter *f, struct pci_dev *d), pci_filter_match_v33(f, d))
++SYMBOL_VERSION(pci_filter_match_v30, pci_filter_match@LIBPCI_3.0)
++SYMBOL_VERSION(pci_filter_match_v33, pci_filter_match@@LIBPCI_3.3)
+diff --git a/lib/init.c b/lib/init.c
+index e6295fc..4703dbd 100644
+--- a/lib/init.c
++++ b/lib/init.c
+@@ -245,10 +245,10 @@ pci_init_v35(struct pci_access *a)
+ a->methods->init(a);
+ }
+
+-STATIC_ALIAS(void pci_init(struct pci_access *a), pci_init_v35(a));
+-DEFINE_ALIAS(void pci_init_v30(struct pci_access *a), pci_init_v35);
+-SYMBOL_VERSION(pci_init_v30, pci_init@LIBPCI_3.0);
+-SYMBOL_VERSION(pci_init_v35, pci_init@@LIBPCI_3.5);
++STATIC_ALIAS(void pci_init(struct pci_access *a), pci_init_v35(a))
++DEFINE_ALIAS(void pci_init_v30(struct pci_access *a), pci_init_v35)
++SYMBOL_VERSION(pci_init_v30, pci_init@LIBPCI_3.0)
++SYMBOL_VERSION(pci_init_v35, pci_init@@LIBPCI_3.5)
+
+ void
+ pci_cleanup(struct pci_access *a)
+--
+2.28.0
+
diff --git a/pkg/pciutils/patch/0002-Fix-pointer-type-of-sscanf-arguments.patch b/pkg/pciutils/patch/0002-Fix-pointer-type-of-sscanf-arguments.patch
@@ -0,0 +1,64 @@
+From b7a6ea17d3ba3a271b475da6f8a419e55ffb7310 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sun, 16 Aug 2020 16:23:10 -0700
+Subject: [PATCH] Fix pointer type of sscanf arguments
+
+---
+ lib/dump.c | 6 +++---
+ lib/sysfs.c | 2 +-
+ ls-kernel.c | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/lib/dump.c b/lib/dump.c
+index 59cf7ed..778d2ec 100644
+--- a/lib/dump.c
++++ b/lib/dump.c
+@@ -60,7 +60,7 @@ dump_init(struct pci_access *a)
+ FILE *f;
+ char buf[256];
+ struct pci_dev *dev = NULL;
+- int len, mn, bn, dn, fn, i, j;
++ unsigned int len, mn, bn, dn, fn, i, j;
+
+ if (!name)
+ a->error("dump: File name not given.");
+@@ -79,8 +79,8 @@ dump_init(struct pci_access *a)
+ *z-- = 0;
+ len = z - buf + 1;
+ mn = 0;
+- if (dump_validate(buf, "##:##.# ") && sscanf(buf, "%x:%x.%d", &bn, &dn, &fn) == 3 ||
+- dump_validate(buf, "####:##:##.# ") && sscanf(buf, "%x:%x:%x.%d", &mn, &bn, &dn, &fn) == 4)
++ if (dump_validate(buf, "##:##.# ") && sscanf(buf, "%x:%x.%u", &bn, &dn, &fn) == 3 ||
++ dump_validate(buf, "####:##:##.# ") && sscanf(buf, "%x:%x:%x.%u", &mn, &bn, &dn, &fn) == 4)
+ {
+ dev = pci_get_dev(a, mn, bn, dn, fn);
+ dump_alloc_data(dev, 256);
+diff --git a/lib/sysfs.c b/lib/sysfs.c
+index fb64241..df39b36 100644
+--- a/lib/sysfs.c
++++ b/lib/sysfs.c
+@@ -212,7 +212,7 @@ static void sysfs_scan(struct pci_access *a)
+ continue;
+
+ d = pci_alloc_dev(a);
+- if (sscanf(entry->d_name, "%x:%x:%x.%d", &dom, &bus, &dev, &func) < 4)
++ if (sscanf(entry->d_name, "%x:%x:%x.%u", &dom, &bus, &dev, &func) < 4)
+ a->error("sysfs_scan: Couldn't parse entry name %s", entry->d_name);
+
+ /* Ensure kernel provided domain that fits in a signed integer */
+diff --git a/ls-kernel.c b/ls-kernel.c
+index ecacd0e..4199402 100644
+--- a/ls-kernel.c
++++ b/ls-kernel.c
+@@ -156,7 +156,7 @@ show_kernel_init(void)
+ *c++ = 0;
+
+ e = xmalloc(sizeof(*e) + strlen(line));
+- if (sscanf(c, "%i%i%i%i%i%i",
++ if (sscanf(c, "%u%u%u%u%u%u",
+ &e->vendor, &e->device,
+ &e->subvendor, &e->subdevice,
+ &e->class, &e->class_mask) != 6)
+--
+2.28.0
+
diff --git a/pkg/pciutils/patch/0003-Avoid-return-of-void-expression.patch b/pkg/pciutils/patch/0003-Avoid-return-of-void-expression.patch
@@ -0,0 +1,52 @@
+From 2aa934cc516aab5a008bf2155b6acb284816ebb8 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sun, 16 Aug 2020 16:23:49 -0700
+Subject: [PATCH] Avoid return of void expression
+
+---
+ lib/filter.c | 2 +-
+ lib/init.c | 2 +-
+ lib/internal.h | 1 +
+ 3 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/lib/filter.c b/lib/filter.c
+index 7ca56a8..d43c912 100644
+--- a/lib/filter.c
++++ b/lib/filter.c
+@@ -223,7 +223,7 @@ pci_filter_match_v30(struct pci_filter_v30 *f, struct pci_dev *d)
+ return pci_filter_match_v33(&new, d);
+ }
+
+-STATIC_ALIAS(void pci_filter_init(struct pci_access *a, struct pci_filter *f), pci_filter_init_v33(a, f))
++STATIC_ALIAS_VOID(void pci_filter_init(struct pci_access *a, struct pci_filter *f), pci_filter_init_v33(a, f))
+ SYMBOL_VERSION(pci_filter_init_v30, pci_filter_init@LIBPCI_3.0)
+ SYMBOL_VERSION(pci_filter_init_v33, pci_filter_init@@LIBPCI_3.3)
+
+diff --git a/lib/init.c b/lib/init.c
+index 4703dbd..e660f36 100644
+--- a/lib/init.c
++++ b/lib/init.c
+@@ -245,7 +245,7 @@ pci_init_v35(struct pci_access *a)
+ a->methods->init(a);
+ }
+
+-STATIC_ALIAS(void pci_init(struct pci_access *a), pci_init_v35(a))
++STATIC_ALIAS_VOID(void pci_init(struct pci_access *a), pci_init_v35(a))
+ DEFINE_ALIAS(void pci_init_v30(struct pci_access *a), pci_init_v35)
+ SYMBOL_VERSION(pci_init_v30, pci_init@LIBPCI_3.0)
+ SYMBOL_VERSION(pci_init_v35, pci_init@@LIBPCI_3.5)
+diff --git a/lib/internal.h b/lib/internal.h
+index 17c27e1..d516e30 100644
+--- a/lib/internal.h
++++ b/lib/internal.h
+@@ -26,6 +26,7 @@
+ #else
+ #define VERSIONED_ABI
+ #define STATIC_ALIAS(_decl, _for) _decl { return _for; }
++#define STATIC_ALIAS_VOID(_decl, _for) _decl { _for; }
+ #define DEFINE_ALIAS(_decl, _for)
+ #define SYMBOL_VERSION(_int, _ext)
+ #endif
+--
+2.28.0
+
diff --git a/pkg/pciutils/patch/0004-Use-flexible-array-member-instead-of-zero-length-arr.patch b/pkg/pciutils/patch/0004-Use-flexible-array-member-instead-of-zero-length-arr.patch
@@ -0,0 +1,25 @@
+From 76d023b885150b65ceeee179883fdf97bd9b8012 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sun, 16 Aug 2020 17:15:34 -0700
+Subject: [PATCH] Use flexible array member instead of zero-length array
+
+---
+ setpci.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setpci.c b/setpci.c
+index 90ca726..ead2bb9 100644
+--- a/setpci.c
++++ b/setpci.c
+@@ -37,7 +37,7 @@ struct op {
+ unsigned int width; /* Byte width of the access */
+ unsigned int num_values; /* Number of values to write; 0=read */
+ unsigned int number; /* The n-th capability of that id */
+- struct value values[0];
++ struct value values[];
+ };
+
+ struct group {
+--
+2.28.0
+
diff --git a/pkg/pciutils/patch/0005-Use-strerror-instead-of-GNU-m-format-specifier.patch b/pkg/pciutils/patch/0005-Use-strerror-instead-of-GNU-m-format-specifier.patch
@@ -0,0 +1,39 @@
+From 05925c2cbd72dc84a825a8a618efb5975b9d75ea Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sun, 16 Aug 2020 17:16:31 -0700
+Subject: [PATCH] Use strerror instead of GNU %m format specifier
+
+---
+ ls-kernel.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/ls-kernel.c b/ls-kernel.c
+index 4199402..e75f9af 100644
+--- a/ls-kernel.c
++++ b/ls-kernel.c
+@@ -6,6 +6,7 @@
+ * Can be freely distributed and used under the terms of the GNU GPL.
+ */
+
++#include <errno.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
+@@ -124,12 +125,12 @@ show_kernel_init(void)
+ {
+ f = fopen(name, "r");
+ if (!f)
+- die("Cannot open pcimap file %s: %m", name);
++ die("Cannot open pcimap file %s: %s", name, strerror(errno));
+ }
+ else
+ {
+ if (uname(&uts) < 0)
+- die("uname() failed: %m");
++ die("uname() failed: %s", strerror(errno));
+ name = alloca(64 + strlen(uts.release));
+ sprintf(name, "/lib/modules/%s/modules.pcimap", uts.release);
+ f = fopen(name, "r");
+--
+2.28.0
+
diff --git a/pkg/pciutils/src b/pkg/pciutils/src
@@ -0,0 +1 @@
+Subproject commit 864aecdea9c7db626856d8d452f6c784316a878c
diff --git a/pkg/pciutils/ver b/pkg/pciutils/ver
@@ -0,0 +1 @@
+3.7.0 r0