summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGuillem Jover <guillem@hadrons.org>2018-05-22 15:43:48 +0200
committerGuillem Jover <guillem@hadrons.org>2018-05-22 15:45:37 +0200
commitbf697b900c06140a6ff6d00e22a812c46144bed1 (patch)
tree4863dffba9ecdb17f14ea01fd1fb6b16a779a466 /include
parentf1966385b3a062f1932794da7622916eb3a48115 (diff)
Add symbol redirection support
We need this to be able to select different version symbols at compile-time.
Diffstat (limited to 'include')
-rw-r--r--include/bsd/sys/cdefs.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/bsd/sys/cdefs.h b/include/bsd/sys/cdefs.h
index 98333d1..b5c8dad 100644
--- a/include/bsd/sys/cdefs.h
+++ b/include/bsd/sys/cdefs.h
@@ -76,6 +76,9 @@
#define _SYS_CDEFS_H
#endif
+#define LIBBSD_CONCAT(x, y) x ## y
+#define LIBBSD_STRING(x) #x
+
#ifdef __GNUC__
#define LIBBSD_GCC_VERSION (__GNUC__ << 8 | __GNUC_MINOR__)
#else
@@ -90,6 +93,12 @@
#define LIBBSD_DEPRECATED(x)
#endif
+#if LIBBSD_GCC_VERSION >= 0x0200
+#define LIBBSD_REDIRECT(name, proto, alias) name proto __asm__(LIBBSD_ASMNAME(#alias))
+#endif
+#define LIBBSD_ASMNAME(cname) LIBBSD_ASMNAME_PREFIX(__USER_LABEL_PREFIX__, cname)
+#define LIBBSD_ASMNAME_PREFIX(prefix, cname) LIBBSD_STRING(prefix) cname
+
#ifndef __dead2
# if LIBBSD_GCC_VERSION >= 0x0207
# define __dead2 __attribute__((__noreturn__))