diff mbox

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

Message ID 1c0deb86-fee3-4de3-fb00-baf6e71ac7fd@gentoo.org
State Not Applicable
Headers show

Commit Message

Ian Stakenvicius May 20, 2016, 5:31 p.m. UTC
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(+)

Comments

Bjorn Helgaas May 20, 2016, 6:50 p.m. UTC | #1
[+cc Martin, Keith]

This is related to the pciutils commit
ab61451d4751 ("pciutils: Add support for 32-bit PCI domains")

On Fri, May 20, 2016 at 01:31:59PM -0400, Ian Stakenvicius wrote:
> 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
> 
> 



--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Martin Mareš May 22, 2016, 7:59 a.m. UTC | #2
Hello!

> 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.

Oops. Thanks for spotting this.

Fixed and released as version 3.5.1.

				Have a nice fortnight
diff mbox

Patch

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