summaryrefslogtreecommitdiffstats
path: root/make
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2013-04-21 08:36:21 +0200
committerSven Gothel <[email protected]>2013-04-21 08:36:21 +0200
commit04606a7afa8aa06b975bf6fca84517bb311e613b (patch)
tree2065a57719942bf2428fffdd6963be825a3589da /make
parent796192797bc65f5eff91f29a5abee9776dcf2ea3 (diff)
Add 'glibc-compat-symbols.h' to force usage of minimal GLIBC symbols currently for memcpy only, used in our x86_32 and default gcc toolchain cmake file.
Note: JogAmp's minimum GLIBC is 2.4 due to '__stack_chk_fail' (stack overflow checking) GLIBC 2.4 - March 2006 - Standard for LSB 4.0, Used in SLES 10 We could add compile/link option '-fno-stack-protector', however stack protection seems reasonable and a pre 2006 distribution a bit too 'far fetched' for our multimedia bindings anyway. +++ Added convenient script 'make/scripts/check-glibc-version.sh' to sort and list GLIBC versions per symbol. +++ Besides openal-soft (commit 554b34927cd6a2e0c0ce227108ebf8521bcba889), jogamp modules do not reference any GLIBC symbols > 2.4 per default! If so, 'glibc-compat-symbols.h' should be included per default!
Diffstat (limited to 'make')
-rw-r--r--make/scripts/check-glibc-version.sh8
-rw-r--r--make/stub_includes/platform/glibc-compat-symbols.h15
2 files changed, 23 insertions, 0 deletions
diff --git a/make/scripts/check-glibc-version.sh b/make/scripts/check-glibc-version.sh
new file mode 100644
index 0000000..aa5f5cc
--- /dev/null
+++ b/make/scripts/check-glibc-version.sh
@@ -0,0 +1,8 @@
+#! /bin/sh
+
+if [ -z "$1" ] ; then
+ echo Usage $0 library-file
+ exit 1
+fi
+
+objdump -T $1 | grep GLIBC | awk ' { print $5 " " $6 } ' | sort
diff --git a/make/stub_includes/platform/glibc-compat-symbols.h b/make/stub_includes/platform/glibc-compat-symbols.h
new file mode 100644
index 0000000..482e232
--- /dev/null
+++ b/make/stub_includes/platform/glibc-compat-symbols.h
@@ -0,0 +1,15 @@
+#ifndef __GLIBC_COMPAT_SYMBOLS_H__
+#define __GLIBC_COMPAT_SYMBOLS_H__ 1
+
+/**
+ * add other architecures below
+ */
+#ifdef __amd64__
+ #define GLIBC_COMPAT_SYMBOL(FFF) __asm__(".symver " #FFF "," #FFF "@GLIBC_2.2.5");
+#else
+ #define GLIBC_COMPAT_SYMBOL(FFF) __asm__(".symver " #FFF "," #FFF "@GLIBC_2.0");
+#endif /*__amd64__*/
+
+GLIBC_COMPAT_SYMBOL(memcpy)
+
+#endif /*__GLIBC_COMPAT_SYMBOLS_H__*/