summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/pseudo
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-04-22 15:46:17 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-04-22 15:56:42 +0100
commit0bfb42dbb6f0fa93e640108e0d6a9224d99a2adf (patch)
tree2edf0ec5009c0d33c4ff7737a6553f26e1e8c68e /meta/recipes-devtools/pseudo
parent37b069ea5d8624821a9ddb490d46b9b1e68c16fb (diff)
downloadpoky-0bfb42dbb6f0fa93e640108e0d6a9224d99a2adf.tar.gz
pseudo: Drop nativesdk wrapper and link against old memcpy symbol
The -nativesdk pseudo wrapper setting LD_LIBRARY_PATH turned out to be a bad idea since it can mix up different libc and lib-dl verisons which may or may not work depending on the phase of the moon. As an alternative to solving the original problem, this patch drops the symbol version requirement on memcpy which allows pseudo to work with libc's back to 2.7 which should be sufficient for our supported targets using nativesdk. [YOCTO #2299] [YOCTO #2351] (From OE-Core rev: c6c701f424aeb502d20ff02d02712e56f4e259a5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/pseudo')
-rw-r--r--meta/recipes-devtools/pseudo/files/symver.patch26
-rw-r--r--meta/recipes-devtools/pseudo/pseudo.inc4
2 files changed, 28 insertions, 2 deletions
diff --git a/meta/recipes-devtools/pseudo/files/symver.patch b/meta/recipes-devtools/pseudo/files/symver.patch
new file mode 100644
index 0000000000..8d1b377ec0
--- /dev/null
+++ b/meta/recipes-devtools/pseudo/files/symver.patch
@@ -0,0 +1,26 @@
1When running as pseudo-nativesdk, we might need to run host binaries
2linked against the host libc. Having a 2.14 libc dependency from memcpy is
3problematic so instruct the linker to use older symbols.
4
5Upstream-Status: Pending
6
7RP 2012/4/22
8
9Index: pseudo-1.3/pseudo.h
10===================================================================
11--- pseudo-1.3.orig/pseudo.h 2012-04-22 12:17:59.078909060 +0000
12+++ pseudo-1.3/pseudo.h 2012-04-22 12:32:42.954888587 +0000
13@@ -29,6 +29,13 @@
14 int pseudo_set_value(const char *key, const char *value);
15 char *pseudo_get_value(const char *key);
16
17+#ifdef __amd64__
18+#define GLIBC_COMPAT_SYMBOL(SYM) __asm__(".symver " #SYM "," #SYM "@GLIBC_2.2.5")
19+#else
20+#define GLIBC_COMPAT_SYMBOL(SYM) __asm__(".symver " #SYM "," #SYM "@GLIBC_2.0")
21+#endif
22+GLIBC_COMPAT_SYMBOL(memcpy);
23+
24 #include "pseudo_tables.h"
25
26 extern void pseudo_debug_verbose(void);
diff --git a/meta/recipes-devtools/pseudo/pseudo.inc b/meta/recipes-devtools/pseudo/pseudo.inc
index 3a37c694f0..8798018a4b 100644
--- a/meta/recipes-devtools/pseudo/pseudo.inc
+++ b/meta/recipes-devtools/pseudo/pseudo.inc
@@ -9,6 +9,8 @@ SECTION = "base"
9LICENSE = "LGPL2.1" 9LICENSE = "LGPL2.1"
10DEPENDS = "sqlite3" 10DEPENDS = "sqlite3"
11 11
12SRC_URI_append_virtclass-nativesdk = " file://symver.patch"
13
12FILES_${PN} = "${libdir}/pseudo/lib*/libpseudo.so ${bindir}/* ${localstatedir}/pseudo ${prefix}/var/pseudo" 14FILES_${PN} = "${libdir}/pseudo/lib*/libpseudo.so ${bindir}/* ${localstatedir}/pseudo ${prefix}/var/pseudo"
13FILES_${PN}-dbg += "${libdir}/pseudo/lib*/.debug" 15FILES_${PN}-dbg += "${libdir}/pseudo/lib*/.debug"
14PROVIDES += "virtual/fakeroot" 16PROVIDES += "virtual/fakeroot"
@@ -75,8 +77,6 @@ do_install_append_virtclass-nativesdk () {
75 mkdir -p ${D}${prefix}/lib/pseudo/lib 77 mkdir -p ${D}${prefix}/lib/pseudo/lib
76 cp lib/pseudo/lib/libpseudo.so ${D}${prefix}/lib/pseudo/lib/. 78 cp lib/pseudo/lib/libpseudo.so ${D}${prefix}/lib/pseudo/lib/.
77 fi 79 fi
78
79 create_wrapper ${D}${bindir}/pseudo LD_LIBRARY_PATH=${base_libdir}:${libdir}
80} 80}
81 81
82BBCLASSEXTEND = "native nativesdk" 82BBCLASSEXTEND = "native nativesdk"