[PATCH] Fix lack of exposure of pci_init for LIBPCI_3.0 on pciutils-3.5.0

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

 



The changes included in commit ab61451d47514c473953a24aa4f4f816b77
were not sufficient to maintain ABI compatibility with older versions
of libpci.so.3, as pci_init is only exposed under symbol version
LIBPCI_3.5.

This patch uses the code pattern for the versioning of pci_fill_info()
to ensure a pci_init symbol is exposed with LIBPCI_3.0 version.

Bug: http://bugs.gentoo.org/583580
---
 lib/init.c     | 2 ++
 lib/internal.h | 1 +
 2 files changed, 3 insertions(+)

diff --git a/lib/init.c b/lib/init.c
index 9a043ee..c7800e0 100644
--- a/lib/init.c
+++ b/lib/init.c
@@ -214,6 +214,8 @@ pci_init_v35(struct pci_access *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);
  void
diff --git a/lib/internal.h b/lib/internal.h
index f2027f8..cbac2a7 100644
--- a/lib/internal.h
+++ b/lib/internal.h
@@ -61,6 +61,7 @@ void *pci_malloc(struct pci_access *, int);
 void pci_mfree(void *);
 char *pci_strdup(struct pci_access *a, const char *s);
 +void pci_init_v30(struct pci_access *a) VERSIONED_ABI;
 void pci_init_v35(struct pci_access *a) VERSIONED_ABI;
  /* access.c */
-- 
2.7.3


Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux