summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2013-01-27 04:46:02 +0100
committerDavid Lamparter <equinox@opensourcerouting.org>2013-02-09 03:00:12 +0100
commitb2baffe8d255890b85d93aee653bed2c18371128 (patch)
tree59fd3cada2ac805f46641e4aaf6ee98edddee0bd
parentb0baf0740e3d6a01980cef7ea0af0a61c10b1bcd (diff)
build: fix "pragma weak" mixups
Not only was there a minor typo in the "pragma weak" preprocessor checks, but also were the tests not behaving as needed - they only indicated support for the /first/ method of implementing weak aliases, which on Linux is __attribute__ and not #pragma. * m4/ax_sys_weak_alias.m4: set defines for _all_ weak alias methods * zebra/kernel_null.c: fix typo Cc: Doug VanLeuven <roamdad@sonic.net> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
-rw-r--r--m4/ax_sys_weak_alias.m422
-rw-r--r--zebra/kernel_null.c2
2 files changed, 10 insertions, 14 deletions
diff --git a/m4/ax_sys_weak_alias.m4 b/m4/ax_sys_weak_alias.m4
index 7c632a0e..27b0f0c4 100644
--- a/m4/ax_sys_weak_alias.m4
+++ b/m4/ax_sys_weak_alias.m4
@@ -167,9 +167,8 @@ void weakf(int c) __attribute__((weak, alias("__weakf")));],
])
# What was the result of the test?
- AS_IF([test $ax_sys_weak_alias = no &&
- test $ax_cv_sys_weak_alias_attribute = yes], [
- ax_sys_weak_alias=attribute
+ AS_IF([test $ax_cv_sys_weak_alias_attribute = yes], [
+ test $ax_sys_weak_alias = no && ax_sys_weak_alias=attribute
AC_DEFINE([HAVE_SYS_WEAK_ALIAS_ATTRIBUTE], 1,
[Define this if weak aliases may be created with __attribute__])
])
@@ -192,9 +191,8 @@ void __weakf(int c) {}],
])
# What was the result of the test?
- AS_IF([test $ax_sys_weak_alias = no &&
- test $ax_cv_sys_weak_alias_pragma = yes], [
- ax_sys_weak_alias=pragma
+ AS_IF([test $ax_cv_sys_weak_alias_pragma = yes], [
+ test $ax_sys_weak_alias = no && ax_sys_weak_alias=pragma
AC_DEFINE([HAVE_SYS_WEAK_ALIAS_PRAGMA], 1,
[Define this if weak aliases may be created with @%:@pragma weak])
])
@@ -217,9 +215,8 @@ void __weakf(int c) {}],
])
# What was the result of the test?
- AS_IF([test $ax_sys_weak_alias = no &&
- test $ax_cv_sys_weak_alias_hpsecondary = yes], [
- ax_sys_weak_alias=hpsecondary
+ AS_IF([test $ax_cv_sys_weak_alias_hpsecondary = yes], [
+ test $ax_sys_weak_alias = no && ax_sys_weak_alias=hpsecondary
AC_DEFINE([HAVE_SYS_WEAK_ALIAS_HPSECONDARY], 1,
[Define this if weak aliases may be created with @%:@pragma _HP_SECONDARY_DEF])
])
@@ -242,9 +239,8 @@ void __weakf(int c) {}],
])
# What was the result of the test?
- AS_IF([test $ax_sys_weak_alias = no &&
- test $ax_cv_sys_weak_alias_criduplicate = yes], [
- ax_sys_weak_alias=criduplicate
+ AS_IF([test $ax_cv_sys_weak_alias_criduplicate = yes], [
+ test $ax_sys_weak_alias = no && ax_sys_weak_alias=criduplicate
AC_DEFINE([HAVE_SYS_WEAK_ALIAS_CRIDUPLICATE], 1,
[Define this if weak aliases may be created with @%:@pragma _CRI duplicate])
])
@@ -271,7 +267,6 @@ _ACEOF
@%:@ifndef HAVE_SYS_WEAK_ALIAS_ATTRIBUTE
extern void weakf(int c);
-@%:@endif
@%:@if defined(HAVE_SYS_WEAK_ALIAS_PRAGMA)
@%:@pragma weak weakf = __weakf
@%:@elif defined(HAVE_SYS_WEAK_ALIAS_HPSECONDARY)
@@ -279,6 +274,7 @@ extern void weakf(int c);
@%:@elif defined(HAVE_SYS_WEAK_ALIAS_CRIDUPLICATE)
@%:@pragma _CRI duplicate weakf as __weakf
@%:@endif
+@%:@endif
void __weakf(int c) {}
@%:@ifdef HAVE_SYS_WEAK_ALIAS_ATTRIBUTE
void weakf(int c) __attribute((weak, alias("__weakf")));
diff --git a/zebra/kernel_null.c b/zebra/kernel_null.c
index ec994a6b..cdb6e23f 100644
--- a/zebra/kernel_null.c
+++ b/zebra/kernel_null.c
@@ -16,7 +16,7 @@ int kernel_delete_ipv4 (struct prefix *a, struct rib *b) { return 0; }
#endif
int kernel_add_ipv6 (struct prefix *a, struct rib *b) { return 0; }
-#ifdef HAVE_SYS_WEAK_ALIAS_PRAGMA_PRAGMA
+#ifdef HAVE_SYS_WEAK_ALIAS_PRAGMA
#pragma weak kernel_delete_ipv6 = kernel_add_ipv6
#else
int kernel_delete_ipv6 (struct prefix *a, struct rib *b) { return 0; }