logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
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:

M.gitmodules4++++
Mpkg/gen.lua1+
Apkg/pciutils/config.h9+++++++++
Apkg/pciutils/gen.lua53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/pciutils/patch/0001-Avoid-empty-top-level-declarations.patch104+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/pciutils/patch/0002-Fix-pointer-type-of-sscanf-arguments.patch64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/pciutils/patch/0003-Avoid-return-of-void-expression.patch52++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/pciutils/patch/0004-Use-flexible-array-member-instead-of-zero-length-arr.patch25+++++++++++++++++++++++++
Apkg/pciutils/patch/0005-Use-strerror-instead-of-GNU-m-format-specifier.patch39+++++++++++++++++++++++++++++++++++++++
Apkg/pciutils/src1+
Apkg/pciutils/ver1+
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