From: Martin Mares Date: Sat, 1 Nov 2014 15:49:42 +0000 (+0100) Subject: Better work-around for missing symbol versioning on Darwin X-Git-Tag: v3.3.0~22 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=35383c120d9452de7062e75ca6372ea7f74fe759;p=pciutils.git Better work-around for missing symbol versioning on Darwin --- diff --git a/lib/access.c b/lib/access.c index bb5c9ce..c23a2fd 100644 --- a/lib/access.c +++ b/lib/access.c @@ -170,13 +170,11 @@ pci_fill_info_v32(struct pci_dev *d, int flags) /* In version 3.1, pci_fill_info got new flags => versioned alias */ /* In version 3.2, the same has happened */ STATIC_ALIAS(int pci_fill_info(struct pci_dev *d, int flags), pci_fill_info_v32(d, flags)); -#ifndef __APPLE__ DEFINE_ALIAS(int pci_fill_info_v30(struct pci_dev *d, int flags), pci_fill_info_v32); DEFINE_ALIAS(int pci_fill_info_v31(struct pci_dev *d, int flags), pci_fill_info_v32); 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); -#endif void pci_setup_cache(struct pci_dev *d, byte *cache, int len) diff --git a/lib/internal.h b/lib/internal.h index 03c02f9..de57c5e 100644 --- a/lib/internal.h +++ b/lib/internal.h @@ -1,7 +1,7 @@ /* * The PCI Library -- Internal Stuff * - * Copyright (c) 1997--2008 Martin Mares + * Copyright (c) 1997--2014 Martin Mares * * Can be freely distributed and used under the terms of the GNU GPL. */ @@ -11,12 +11,14 @@ #ifdef PCI_SHARED_LIB #define PCI_ABI __attribute__((visibility("default"))) #ifdef __APPLE__ -#define STATIC_ALIAS(_decl, _for) _decl { return _for; } +#define STATIC_ALIAS(_decl, _for) _decl PCI_ABI { return _for; } +#define DEFINE_ALIAS(_decl, _for) extern _decl __attribute__((alias(#_for))) +#define SYMBOL_VERSION(_int, _ext) asm(".symver " #_int "," #_ext) #else #define STATIC_ALIAS(_decl, _for) +#define DEFINE_ALIAS(_decl, _for) +#define SYMBOL_VERSION(_int, _ext) #endif -#define DEFINE_ALIAS(_decl, _for) extern _decl __attribute__((alias(#_for))) -#define SYMBOL_VERSION(_int, _ext) asm(".symver " #_int "," #_ext) #else #define STATIC_ALIAS(_decl, _for) _decl { return _for; } #define DEFINE_ALIAS(_decl, _for)