[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 2/4] stubdom: remove pciutils



Juergen Gross, le mar. 22 sept. 2026 09:27:09 +0200, a ecrit:
> There is no user of libpci left in stubdoms.
> 
> Remove libpci from the stubdom build system.
> 
> Signed-off-by: Juergen Gross <jgross@xxxxxxxx>

Acked-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>

Thanks!

> ---
> V3:
> - add comment regarding upstream pciutils (Samuel Thibault)
> ---
>  config/Stubdom.mk.in      |   3 -
>  stubdom/.gitignore        |   1 -
>  stubdom/Makefile          |  36 +----
>  stubdom/configure         |  21 ---
>  stubdom/configure.ac      |   1 -
>  stubdom/libpci.config.h   |   5 -
>  stubdom/libpci.config.mak |   7 -
>  stubdom/pciutils.patch    | 298 --------------------------------------
>  8 files changed, 6 insertions(+), 366 deletions(-)
>  delete mode 100644 stubdom/libpci.config.h
>  delete mode 100644 stubdom/libpci.config.mak
>  delete mode 100644 stubdom/pciutils.patch
> 
> diff --git a/config/Stubdom.mk.in b/config/Stubdom.mk.in
> index 0d70d03941..b90eaee75a 100644
> --- a/config/Stubdom.mk.in
> +++ b/config/Stubdom.mk.in
> @@ -14,9 +14,6 @@ STUBDOM_INSTALL     := @STUBDOM_INSTALL@
>  ZLIB_VERSION        := @ZLIB_VERSION@
>  ZLIB_URL            := @ZLIB_URL@
>  
> -LIBPCI_VERSION      := @LIBPCI_VERSION@
> -LIBPCI_URL          := @LIBPCI_URL@
> -
>  NEWLIB_VERSION      := @NEWLIB_VERSION@
>  NEWLIB_URL          := @NEWLIB_URL@
>  
> diff --git a/stubdom/.gitignore b/stubdom/.gitignore
> index 08f2e9b432..8c6dc00f83 100644
> --- a/stubdom/.gitignore
> +++ b/stubdom/.gitignore
> @@ -23,7 +23,6 @@
>  /mk-headers-*
>  /newlib-1.*
>  /newlib-x86*
> -/pciutils-*
>  /pkg-config/*
>  /polarssl-*
>  /tpm_emulator-*
> diff --git a/stubdom/Makefile b/stubdom/Makefile
> index 40b6ececf1..254f8d2fc8 100644
> --- a/stubdom/Makefile
> +++ b/stubdom/Makefile
> @@ -122,33 +122,10 @@ $(ZLIB_STAMPFILE): zlib-$(XEN_TARGET_ARCH) 
> $(NEWLIB_STAMPFILE)
>         $(MAKE) DESTDIR= libz.a && \
>         $(MAKE) DESTDIR= install )
>  
> -##############
> -# Cross-libpci
> -##############
> -
> -pciutils-$(LIBPCI_VERSION).tar.bz2:
> -     $(FETCHER) $@ $(LIBPCI_URL)/$@
> -
> -pciutils-$(XEN_TARGET_ARCH): pciutils-$(LIBPCI_VERSION).tar.bz2
> -     tar xjf $<
> -     mv pciutils-$(LIBPCI_VERSION) $@
> -     patch -d $@ -p1 < pciutils.patch
> -     touch $@
> -
> -LIBPCI_STAMPFILE=$(CROSS_ROOT)/$(GNU_TARGET_ARCH)-xen-elf/lib/libpci.a
> -.PHONY: cross-libpci
> -cross-libpci: $(LIBPCI_STAMPFILE)
> -$(LIBPCI_STAMPFILE): pciutils-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE) 
> $(ZLIB_STAMPFILE)
> -     ( cd $< && \
> -       cp ../libpci.config.h lib/config.h && \
> -       chmod u+w lib/config.h && \
> -       echo '#define PCILIB_VERSION "$(LIBPCI_VERSION)"' >> lib/config.h && \
> -       ln -sf ../../libpci.config.mak lib/config.mk && \
> -       $(MAKE) DESTDIR= CC="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) 
> -I$(call realpath,$(MINI_OS)/include)" lib/libpci.a && \
> -       $(INSTALL_DATA) lib/libpci.a 
> $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/lib/ && \
> -       $(INSTALL_DIR) $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include/pci 
> && \
> -       $(INSTALL_DATA) lib/config.h lib/header.h lib/pci.h lib/types.h 
> $(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf/include/pci/ \
> -     )
> +#######################################################################
> +# There used to be a slightly modified version of pciutils, this is now
> +# available under https://github.com/pciutils/pciutils/pull/236
> +#######################################################################
>  
>  ######
>  # lwIP
> @@ -250,7 +227,7 @@ cross-tpmemu: $(TPMEMU_STAMPFILE)
>  #######
>  
>  .PHONY: $(CROSS_ROOT)
> -$(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
> +$(CROSS_ROOT): cross-newlib cross-zlib
>  
>  #######
>  # libraries under tools/libs
> @@ -477,7 +454,7 @@ clean:
>  crossclean: clean
>       rm -fr $(CROSS_ROOT)
>       rm -fr newlib-$(XEN_TARGET_ARCH)
> -     rm -fr zlib-$(XEN_TARGET_ARCH) pciutils-$(XEN_TARGET_ARCH)
> +     rm -fr zlib-$(XEN_TARGET_ARCH)
>       rm -fr libs-$(XEN_TARGET_ARCH)
>       rm -fr xenstore xenstorepvh
>       rm -fr gmp-$(XEN_TARGET_ARCH)
> @@ -502,7 +479,6 @@ downloadclean: patchclean
>       rm -f zlib-$(ZLIB_VERSION).tar.gz
>       rm -f gmp-$(GMP_VERSION).tar.bz2
>       rm -f tpm_emulator-$(TPMEMU_VERSION).tar.gz
> -     rm -f pciutils-$(LIBPCI_VERSION).tar.bz2
>       rm -f lwip-$(LWIP_VERSION).tar.gz
>       rm -f polarssl-$(POLARSSL_VERSION)-gpl.tgz
>  
> diff --git a/stubdom/configure b/stubdom/configure
> index 689ff4d6ed..f3d63dceff 100755
> --- a/stubdom/configure
> +++ b/stubdom/configure
> @@ -634,8 +634,6 @@ LWIP_VERSION
>  LWIP_URL
>  NEWLIB_VERSION
>  NEWLIB_URL
> -LIBPCI_VERSION
> -LIBPCI_URL
>  ZLIB_VERSION
>  ZLIB_URL
>  INSTALL_DATA
> @@ -725,7 +723,6 @@ LDFLAGS
>  LIBS
>  CPPFLAGS
>  ZLIB_URL
> -LIBPCI_URL
>  NEWLIB_URL
>  LWIP_URL
>  GMP_URL
> @@ -1376,7 +1373,6 @@ Some influential environment variables:
>    CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
>                you have headers in a nonstandard directory <include dir>
>    ZLIB_URL    Download url for zlib
> -  LIBPCI_URL  Download url for libpci
>    NEWLIB_URL  Download url for newlib
>    LWIP_URL    Download url for lwip
>    GMP_URL     Download url for libgmp
> @@ -4038,23 +4034,6 @@ ZLIB_VERSION="1.2.3"
>  
>  
>  
> -if test "x$LIBPCI_URL" = "x"
> -then :
> -
> -     if test "x$extfiles" = "xy"
> -then :
> -  LIBPCI_URL=\$\(XEN_EXTFILES_URL\)
> -else $as_nop
> -  LIBPCI_URL="https://mirrors.edge.kernel.org/pub/software/utils/pciutils";
> -fi
> -
> -fi
> -LIBPCI_VERSION="2.2.9"
> -
> -
> -
> -
> -
>  if test "x$NEWLIB_URL" = "x"
>  then :
>  
> diff --git a/stubdom/configure.ac b/stubdom/configure.ac
> index 6ff3ab0ee9..d3d2a840d3 100644
> --- a/stubdom/configure.ac
> +++ b/stubdom/configure.ac
> @@ -39,7 +39,6 @@ AX_DEPENDS_PATH_PROG([vtpm], [CMAKE], [cmake])
>  
>  # Stubdom libraries version and url setup
>  AX_STUBDOM_LIB([ZLIB], [zlib], [1.2.3])
> -AX_STUBDOM_LIB([LIBPCI], [libpci], [2.2.9], 
> [https://mirrors.edge.kernel.org/pub/software/utils/pciutils])
>  AX_STUBDOM_LIB([NEWLIB], [newlib], [1.16.0], 
> [https://sourceware.org/ftp/newlib])
>  AX_STUBDOM_LIB([LWIP], [lwip], [1.3.0], 
> [https://download.savannah.gnu.org/releases/lwip])
>  AX_STUBDOM_LIB([GMP], [libgmp], [4.3.2], 
> [https://gmplib.org/download/gmp/archive])
> diff --git a/stubdom/libpci.config.h b/stubdom/libpci.config.h
> deleted file mode 100644
> index 28c2f6ab31..0000000000
> --- a/stubdom/libpci.config.h
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#define PCI_OS_MINIOS
> -#define PCI_HAVE_STDINT_H
> -#define PCI_PATH_IDS_DIR "."
> -#define PCI_COMPRESSED_IDS
> -#define PCI_IDS "pci.ids.gz"
> diff --git a/stubdom/libpci.config.mak b/stubdom/libpci.config.mak
> deleted file mode 100644
> index 5c8632cf07..0000000000
> --- a/stubdom/libpci.config.mak
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -LIBZ=-lz
> -LDLIBS+=$(LIBZ)
> -PCI_OS_MINIOS=1
> -PCI_HAVE_STDINT_H=1
> -PCI_PATH_IDS_DIR=.
> -PCI_COMPRESSED_IDS=1
> -PCI_IDS=pci.ids.gz
> diff --git a/stubdom/pciutils.patch b/stubdom/pciutils.patch
> deleted file mode 100644
> index 5ab84d6cce..0000000000
> --- a/stubdom/pciutils.patch
> +++ /dev/null
> @@ -1,298 +0,0 @@
> -diff -urN pciutils-2.2.9.orig/lib/access.c pciutils-2.2.9/lib/access.c
> ---- pciutils-2.2.9.orig/lib/access.c 2007-02-06 11:59:43.000000000 +0000
> -+++ pciutils-2.2.9/lib/access.c      2008-06-30 19:07:09.713187000 +0100
> -@@ -57,6 +57,11 @@
> - #else
> -   NULL,
> - #endif
> -+#ifdef PCI_OS_MINIOS
> -+  &pm_minios,
> -+#else
> -+  NULL,
> -+#endif
> - };
> - 
> - struct pci_access *
> ---- pciutils-2.2.9.orig/lib/pci.h    2006-09-09 13:46:06.000000000 +0100
> -+++ pciutils-2.2.9/lib/pci.h 2008-06-30 18:56:15.350111000 +0100
> -@@ -33,6 +33,7 @@
> -   PCI_ACCESS_NBSD_LIBPCI,           /* NetBSD libpci */
> -   PCI_ACCESS_OBSD_DEVICE,           /* OpenBSD /dev/pci */
> -   PCI_ACCESS_DUMP,                  /* Dump file (params: filename) */
> -+  PCI_ACCESS_MINIOS,                        /* MiniOS */
> -   PCI_ACCESS_MAX
> - };
> - 
> ---- pciutils-2.2.9.orig/lib/internal.h       2006-09-09 11:52:47.000000000 
> +0100
> -+++ pciutils-2.2.9/lib/internal.h    2008-07-01 10:46:24.968202000 +0100
> -@@ -37,4 +37,4 @@
> - 
> - extern struct pci_methods pm_intel_conf1, pm_intel_conf2, pm_linux_proc,
> -     pm_fbsd_device, pm_aix_device, pm_nbsd_libpci, pm_obsd_device,
> --    pm_dump, pm_linux_sysfs;
> -+    pm_dump, pm_linux_sysfs, pm_minios;
> ---- pciutils-2.2.9.orig/lib/Makefile 2007-10-19 13:41:34.000000000 +0100
> -+++ pciutils-2.2.9/lib/Makefile      2008-07-01 12:13:14.400525000 +0100
> -@@ -46,6 +46,12 @@
> - PCILIB=libpciutils.a
> - endif
> - 
> -+ifdef PCI_OS_MINIOS
> -+XEN_ROOT=$(CURDIR)/../../..
> -+include $(XEN_ROOT)/Config.mk
> -+OBJS += minios.o
> -+endif
> -+
> - all: $(PCILIB) $(PCILIBPC)
> - 
> - $(PCILIB): $(OBJS)
> ---- pciutils-2.2.9.orig/lib/types.h    2009-07-14 18:18:59.000000000 +0200
> -+++ pciutils-2.2.9/lib/types.h 2009-07-14 18:19:16.000000000 +0200
> -@@ -20,10 +20,12 @@ typedef DWORD u32;
> - typedef uint8_t u8;
> - typedef uint16_t u16;
> - typedef uint32_t u32;
> -+typedef uint64_t u64;
> - #else
> - typedef u_int8_t u8;
> - typedef u_int16_t u16;
> - typedef u_int32_t u32;
> -+typedef u_int64_t u64;
> - #endif
> -
> - #ifdef PCI_HAVE_64BIT_ADDRESS
> - 
> ---- pciutils-2.2.9.orig/lib/minios.c 1970-01-01 01:00:00.000000000 +0100
> -+++ pciutils-2.2.9/lib/minios.c      2008-07-01 12:31:40.554260000 +0100
> -@@ -0,0 +1,106 @@
> -+/*
> -+ *  The PCI Library -- MiniOS PCI frontend access
> -+ *
> -+ *  Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>, 2008
> -+ *
> -+ *  Can be freely distributed and used under the terms of the GNU GPL.
> -+ */
> -+
> -+#include <os.h>
> -+#include <pcifront.h>
> -+#include <xenbus.h>
> -+#include "internal.h"
> -+
> -+static int
> -+minios_detect(struct pci_access *a)
> -+{
> -+  return 1;
> -+}
> -+
> -+static void
> -+minios_init(struct pci_access *a)
> -+{
> -+}
> -+
> -+static void
> -+minios_cleanup(struct pci_access *a)
> -+{
> -+  shutdown_pcifront(NULL);
> -+}
> -+
> -+static void
> -+minios_scan(struct pci_access *a)
> -+{
> -+  void func(unsigned int domain, unsigned int bus, unsigned int slot, 
> unsigned int fun)
> -+  {
> -+    struct pci_dev *d = pci_alloc_dev(a);
> -+
> -+    d->domain = domain;
> -+    d->bus = bus;
> -+    d->dev = slot;
> -+    d->func = fun;
> -+
> -+    pci_link_dev(a, d);
> -+  }
> -+
> -+  pcifront_scan(NULL, func);
> -+}
> -+
> -+static int
> -+minios_read(struct pci_dev *d, int pos, byte *buf, int len)
> -+{
> -+  unsigned int val;
> -+  switch (len) {
> -+    case 1:
> -+      if (pcifront_conf_read(NULL, d->domain, d->bus, d->dev, d->func, pos, 
> len, &val))
> -+        return 0;
> -+      * buf = val;
> -+      return 1;
> -+    case 2:
> -+      if (pcifront_conf_read(NULL, d->domain, d->bus, d->dev, d->func, pos, 
> len, &val))
> -+        return 0;
> -+      *(u16 *) buf = cpu_to_le16((u16) val);
> -+      return 1;
> -+    case 4:
> -+      if (pcifront_conf_read(NULL, d->domain, d->bus, d->dev, d->func, pos, 
> len, &val))
> -+        return 0;
> -+      *(u32 *) buf = cpu_to_le32((u32) val);
> -+      return 1;
> -+    default:
> -+      return pci_generic_block_read(d, pos, buf, len);
> -+  }
> -+}
> -+
> -+static int
> -+minios_write(struct pci_dev *d, int pos, byte *buf, int len)
> -+{
> -+  unsigned int val;
> -+  switch (len) {
> -+    case 1:
> -+      val = * buf;
> -+      break;
> -+    case 2:
> -+      val = le16_to_cpu(*(u16 *) buf);
> -+      break;
> -+    case 4:
> -+      val = le32_to_cpu(*(u32 *) buf);
> -+      break;
> -+    default:
> -+      return pci_generic_block_write(d, pos, buf, len);
> -+  }
> -+  return !pcifront_conf_write(NULL, d->domain, d->bus, d->dev, d->func, 
> pos, len, val);
> -+}
> -+
> -+struct pci_methods pm_minios = {
> -+  "MiniOS-device",
> -+  NULL,                                 /* config */
> -+  minios_detect,
> -+  minios_init,
> -+  minios_cleanup,
> -+  minios_scan,
> -+  pci_generic_fill_info,
> -+  minios_read,
> -+  minios_write,
> -+  NULL,                                 /* dev_init */
> -+  NULL                                  /* dev_cleanup */
> -+};
> ---- pciutils-2.2.9/lib/generic.c     2007-02-06 12:00:05.000000000 +0000
> -+++ pciutils-2.2.9-mine/lib/generic.c        2008-07-01 19:13:52.289949000 
> +0100
> -@@ -74,6 +74,19 @@
> -   pci_generic_scan_bus(a, busmap, 0);
> - }
> - 
> -+static u32 pci_size(u32 base, u32 maxbase, u32 mask)
> -+{
> -+  u32 size = mask & maxbase;
> -+  if (!size)
> -+    return 0;
> -+  size = (size & ~(size-1)) - 1;
> -+
> -+  if (base == maxbase && ((base | size) & mask) != mask)
> -+    return 0;
> -+
> -+  return size + 1;
> -+}
> -+
> - int
> - pci_generic_fill_info(struct pci_dev *d, int flags)
> - {
> -@@ -114,23 +127,61 @@
> -           if (!x || x == (u32) ~0)
> -             continue;
> -           if ((x & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO)
> --            d->base_addr[i] = x;
> --          else
> -+                {
> -+                  d->base_addr[i] = x & PCI_BASE_ADDRESS_IO_MASK;
> -+                  if (flags & PCI_FILL_SIZES)
> -+                    {
> -+                      u32 size;
> -+                      pci_write_long(d, PCI_BASE_ADDRESS_0 + i*4, ~0);
> -+                      d->size[i] = pci_size(x, pci_read_long(d, 
> PCI_BASE_ADDRESS_0 + i*4), PCI_BASE_ADDRESS_IO_MASK);
> -+                      pci_write_long(d, PCI_BASE_ADDRESS_0 + i*4, x);
> -+                    }
> -+                }
> -+              else
> -             {
> -               if ((x & PCI_BASE_ADDRESS_MEM_TYPE_MASK) != 
> PCI_BASE_ADDRESS_MEM_TYPE_64)
> --                d->base_addr[i] = x;
> -+                    {
> -+                      d->base_addr[i] = x & PCI_BASE_ADDRESS_MEM_MASK;
> -+                      if (flags & PCI_FILL_SIZES)
> -+                        {
> -+                          u32 size;
> -+                          pci_write_long(d, PCI_BASE_ADDRESS_0 + i*4, ~0);
> -+                          d->size[i] = pci_read_long(d, PCI_BASE_ADDRESS_0 
> + i*4);
> -+                          d->size[i] = pci_size(x, pci_read_long(d, 
> PCI_BASE_ADDRESS_0 + i*4), PCI_BASE_ADDRESS_MEM_MASK);
> -+                          pci_write_long(d, PCI_BASE_ADDRESS_0 + i*4, x);
> -+                        }
> -+                    }
> -               else if (i >= cnt-1)
> -                 a->warning("%04x:%02x:%02x.%d: Invalid 64-bit address seen 
> for BAR %d.", d->domain, d->bus, d->dev, d->func, i);
> -               else
> -                 {
> -                   u32 y = pci_read_long(d, PCI_BASE_ADDRESS_0 + (++i)*4);
> - #ifdef PCI_HAVE_64BIT_ADDRESS
> --                  d->base_addr[i-1] = x | (((pciaddr_t) y) << 32);
> -+                  d->base_addr[i-1] = (x | (((pciaddr_t) y) << 32)) & 
> PCI_BASE_ADDRESS_MEM_MASK;
> -+                      if (flags & PCI_FILL_SIZES)
> -+                        {
> -+                          u32 size;
> -+                          pci_write_long(d, PCI_BASE_ADDRESS_0 + (i-1)*4, 
> ~0);
> -+                          pci_write_long(d, PCI_BASE_ADDRESS_0 + i*4, ~0);
> -+                          d->size[i-1] = pci_size(y, pci_read_long(d, 
> PCI_BASE_ADDRESS_0 + (i-1)*4) | 
> -+                                         pci_read_long(d, 
> PCI_BASE_ADDRESS_0 + i*4), 0xffffffff );
> -+                          pci_write_long(d, PCI_BASE_ADDRESS_0 + (i-1)*4, 
> x);
> -+                          pci_write_long(d, PCI_BASE_ADDRESS_0 + i*4, y);
> -+                        }
> - #else
> -                   if (y)
> -                     a->warning("%04x:%02x:%02x.%d 64-bit device address 
> ignored.", d->domain, d->bus, d->dev, d->func);
> -                   else
> --                    d->base_addr[i-1] = x;
> -+                        {
> -+                          d->base_addr[i-1] = x & PCI_BASE_ADDRESS_MEM_MASK;
> -+                          if (flags & PCI_FILL_SIZES)
> -+                            {
> -+                              u32 size;
> -+                              pci_write_long(d, PCI_BASE_ADDRESS_0 + 
> (i-1)*4, ~0);
> -+                              d->size[i-1] = pci_size(x, pci_read_long(d, 
> PCI_BASE_ADDRESS_0 + (i-1)*4), PCI_BASE_ADDRESS_MEM_MASK);
> -+                              pci_write_long(d, PCI_BASE_ADDRESS_0 + 
> (i-1)*4, x);
> -+                            }
> -+                        }
> - #endif
> -                 }
> -             }
> -@@ -154,10 +205,19 @@
> -     {
> -       u32 u = pci_read_long(d, reg);
> -       if (u != 0xffffffff)
> --        d->rom_base_addr = u;
> -+            {
> -+              d->rom_base_addr = u;
> -+              if (flags & PCI_FILL_SIZES)
> -+                {
> -+                  u32 size;
> -+                  pci_write_long(d, reg, ~0);
> -+                  d->rom_size = pci_read_long(d, reg);
> -+                  pci_write_long(d, reg, u);
> -+                }
> -+            }
> -     }
> -     }
> --  return flags & ~PCI_FILL_SIZES;
> -+  return flags;
> - }
> - 
> - static int
> -diff -uNpbE -uNpbEr pciutils-2.2.9.orig/lib/sysdep.h 
> pciutils-2.2.9/lib/sysdep.h
> ---- pciutils-2.2.9.orig/lib/sysdep.h 2007-02-06 12:00:18.000000000 +0000
> -+++ pciutils-2.2.9/lib/sysdep.h      2009-07-22 16:26:30.000000000 +0100
> -@@ -32,6 +32,10 @@ typedef u16 word;
> - 
> - #else
> - 
> -+#ifdef PCI_OS_MINIOS
> -+#include <machine/endian.h>
> -+#endif
> -+
> - #ifdef PCI_OS_LINUX
> - #include <endian.h>
> - #define BYTE_ORDER __BYTE_ORDER
> -- 
> 2.55.0
> 

-- 
Samuel
 Moralité : le modem et le cablerouteur font comme les filles, ils
 papotent toute la journée.
 -+- RB in NPC : Et en plus, ils ne parlent que de bits -+-



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.