]> git.ipfire.org Git - thirdparty/libbsd.git/commitdiff
build: Support platforms without symbol versioning
authorGuillem Jover <guillem@hadrons.org>
Tue, 6 Aug 2019 17:14:29 +0000 (19:14 +0200)
committerGuillem Jover <guillem@hadrons.org>
Thu, 8 Aug 2019 01:22:09 +0000 (03:22 +0200)
The .symver directive is ELF-specific. On non-ELF platforms, work around
this with __attribute__((__alias__)) for the default symbol, and ignore
the variant versioned symbols.

Based-on-patch-by: Aaron Dierking <aarond@fb.com>
Signed-off-by: Guillem Jover <guillem@hadrons.org>
src/local-link.h

index 5a17bfe753d71635434c23e5385dec44d1f77967..0d4351a3cb6ff7d8bd5a76b2222b37470b21b70b 100644 (file)
        static const char libbsd_emit_link_warning_##symbol[] \
                __attribute__((__used__,__section__(".gnu.warning." #symbol))) = msg;
 
+#ifdef __ELF__
 #define libbsd_symver_default(alias, symbol, version) \
        __asm__(".symver " #symbol "," #alias "@@" #version)
 
 #define libbsd_symver_variant(alias, symbol, version) \
        __asm__(".symver " #symbol "," #alias "@" #version)
+#else
+#define libbsd_symver_default(alias, symbol, version) \
+       extern __typeof(symbol) alias __attribute__((__alias__(#symbol)))
+
+#define libbsd_symver_variant(alias, symbol, version)
+#endif
 
 #endif