aboutsummaryrefslogtreecommitdiff
path: root/libXfont/src/stubs/stubs.h
diff options
context:
space:
mode:
Diffstat (limited to 'libXfont/src/stubs/stubs.h')
-rw-r--r--libXfont/src/stubs/stubs.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/libXfont/src/stubs/stubs.h b/libXfont/src/stubs/stubs.h
index 41cde58df..7f0eef298 100644
--- a/libXfont/src/stubs/stubs.h
+++ b/libXfont/src/stubs/stubs.h
@@ -1,5 +1,3 @@
-/* $XFree86: xc/lib/font/stubs/stubs.h,v 1.3 1999/12/15 01:14:36 robin Exp $ */
-
#include <stdio.h>
#include <X11/fonts/fntfilst.h>
#include <X11/fonts/font.h>
@@ -12,10 +10,22 @@
#endif
/* this probably works for Mach-O too, but probably not for PE */
-#if defined(__ELF__) && defined(__GNUC__) && (__GNUC__ >= 3)
+#if (defined(__APPLE__) || defined(__ELF__)) && defined(__GNUC__) && (__GNUC__ >= 3)
#define weak __attribute__((weak))
#else
#define weak
+#ifndef __SUNPRO_C /* Sun compilers use #pragma weak in .c files instead */
+#define NO_WEAK_SYMBOLS
+#endif
+#endif
+
+/* This is really just a hack for now... __APPLE__ really should be using
+ * the weak symbols route above, but it's causing an as-yet unresolved issue,
+ * so we're instead building with flat_namespace.
+ */
+#ifdef __APPLE__
+#undef weak
+#define weak
#endif
extern FontPtr find_old_font ( FSID id );