summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mandriva.org>2007-08-27 09:47:03 +0000
committerThierry Vignaud <tv@mandriva.org>2007-08-27 09:47:03 +0000
commit854fece86dce2de112b2fee8c4d3d1078d94e0ef (patch)
tree2c5380eb55aac3c615b9fc13072d06c0e9cc13b3
parentb94bfaf56130e26f2bb2761754adae6decbb43bc (diff)
downloadldetect-854fece86dce2de112b2fee8c4d3d1078d94e0ef.tar
ldetect-854fece86dce2de112b2fee8c4d3d1078d94e0ef.tar.gz
ldetect-854fece86dce2de112b2fee8c4d3d1078d94e0ef.tar.bz2
ldetect-854fece86dce2de112b2fee8c4d3d1078d94e0ef.tar.xz
ldetect-854fece86dce2de112b2fee8c4d3d1078d94e0ef.zip
use visibility in order to enforce exported ABI and to reduce code size
-rw-r--r--Makefile2
-rw-r--r--common.h3
-rw-r--r--generate_pciclass.pl2
-rwxr-xr-xgenerate_usbclass.pl2
-rw-r--r--libldetect.h2
5 files changed, 9 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 5c11ad0..20973e4 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ binaries = lspcidrake
lib_objs = common.o pciusb.o pci.o usb.o pciclass.o usbclass.o dmi.o
lib_major = libldetect.so.$(LIB_MAJOR)
libraries = libldetect.so $(lib_major) $(lib_major).$(LIB_MINOR) libldetect.a
-CFLAGS = -Wall -W -Wstrict-prototypes -Os -fPIC
+CFLAGS = -Wall -W -Wstrict-prototypes -Os -fPIC -fvisibility=hidden
RPM ?= $(HOME)/rpm
diff --git a/common.h b/common.h
index 1602cf3..8a984e2 100644
--- a/common.h
+++ b/common.h
@@ -1,3 +1,5 @@
+#pragma GCC visibility push(hidden)
+
#ifndef LIBLDETECT_COMMON
#define LIBLDETECT_COMMON
@@ -27,3 +29,4 @@ extern fh fh_open(const char *name) NON_EXPORTED;
#define fh_close(f) gzclose(f);
#endif
+#pragma GCC visibility pop
diff --git a/generate_pciclass.pl b/generate_pciclass.pl
index 15731d6..948431d 100644
--- a/generate_pciclass.pl
+++ b/generate_pciclass.pl
@@ -15,6 +15,7 @@ print '
static int nb_classes = sizeof(classes) / sizeof(*classes);
+#pragma GCC visibility push(default)
extern const char *pci_class2text(unsigned long class_id) {
int i;
for (i = 0; i < nb_classes; i++)
@@ -22,5 +23,6 @@ extern const char *pci_class2text(unsigned long class_id) {
return pci_class2text(0);
}
+#pragma GCC visibility pop
';
diff --git a/generate_usbclass.pl b/generate_usbclass.pl
index 4aadddc..de533ed 100755
--- a/generate_usbclass.pl
+++ b/generate_usbclass.pl
@@ -68,7 +68,7 @@ struct class_text {
const char *prot_text;
};
-extern struct class_text usb_class2text(unsigned long class_id) {
+extern struct class_text __attribute__ ((visibility("default"))) usb_class2text(unsigned long class_id) {
const char *p[3] = { NULL, NULL, NULL };
int a_class[3] = { (class_id >> 16) & 0xff, (class_id >> 8) & 0xff, class_id & 0xff };
if (a_class[0] != 0xff) lookup(p, a_class, 0, nb_classes, classes);
diff --git a/libldetect.h b/libldetect.h
index 2e663bb..4e9b2d1 100644
--- a/libldetect.h
+++ b/libldetect.h
@@ -1,3 +1,4 @@
+#pragma GCC visibility push(default)
#ifndef LIBLDETECT
#define LIBLDETECT
@@ -69,3 +70,4 @@ extern void dmi_entries_free(struct dmi_entries entries);
extern char *dmidecode_file;
#endif
+#pragma GCC visibility pop