Patchwork pseudo: pseudo-native breaks native builds for symver.patch

login
register
mail settings
Submitter chunrong guo
Date July 11, 2013, 7:58 a.m.
Message ID <1373529521-31010-1-git-send-email-B40290@freescale.com>
Download mbox | patch
Permalink /patch/53491/
State New
Headers show

Comments

chunrong guo - July 11, 2013, 7:58 a.m.
*symver.patch causes failure if the host glibc does not provide the glibc-2.0 version of the symbol.
      *fix the below error log:
      |tmp/work/ppc64-linux/pseudo-native/1.5.1-r3/pseudo-1.5.1/pseudo_ipc.c:153: more
      |undefined references to `memcpy@GLIBC_2.0' follow
      |/pseudo_db.ccollect2: error: ld returned 1 exit status

Signed-off-by: Chunrong Guo <B40290@freescale.com>
---
 meta/recipes-devtools/pseudo/files/symver.patch |   26 -----------------------
 meta/recipes-devtools/pseudo/pseudo.inc         |    2 -
 2 files changed, 0 insertions(+), 28 deletions(-)
 delete mode 100644 meta/recipes-devtools/pseudo/files/symver.patch
Peter Seebach - July 11, 2013, 4:12 p.m.
On Thu, 11 Jul 2013 15:58:41 +0800
Chunrong Guo <B40290@freescale.com> wrote:

>       *symver.patch causes failure if the host glibc does not provide the glibc-2.0 version of the symbol.

I don't think we should take this out unconditionally, because it was added
to address a (different) problem -- we were ending up with the pseudo-native
libraries being used with host glibc that might be too old, and not have
newer versions.

I was under the impression that glibc tried to maintain binary compatibility
a fairly long way back; which hosts are omitting this symbol? What
architecture are you on?

-s
chunrong guo - July 12, 2013, 2:10 a.m.
Powerpc architecture and ppc64 hosts.


-----Original Message-----
From: Peter Seebach [mailto:peter.seebach@windriver.com] 
Sent: Friday, July 12, 2013 12:12 AM
To: Guo Chunrong-B40290
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH] pseudo: pseudo-native breaks native builds for symver.patch

On Thu, 11 Jul 2013 15:58:41 +0800
Chunrong Guo <B40290@freescale.com> wrote:

>       *symver.patch causes failure if the host glibc does not provide the glibc-2.0 version of the symbol.

I don't think we should take this out unconditionally, because it was added to address a (different) problem -- we were ending up with the pseudo-native libraries being used with host glibc that might be too old, and not have newer versions.

I was under the impression that glibc tried to maintain binary compatibility a fairly long way back; which hosts are omitting this symbol? What architecture are you on?

-s
--
Listen, get this.  Nobody with a good compiler needs to be justified.
Peter Seebach - July 12, 2013, 6:28 p.m.
On Fri, 12 Jul 2013 02:10:21 +0000
Guo Chunrong-B40290 <B40290@freescale.com> wrote:

> Powerpc architecture and ppc64 hosts.

Okay. We haven't previously tried pseudo on those that I know of. We may need
to revisit the way this patch gets applied. For the short term, it might be
possible to apply it only to x86 or x86_64.

-s

Patch

diff --git a/meta/recipes-devtools/pseudo/files/symver.patch b/meta/recipes-devtools/pseudo/files/symver.patch
deleted file mode 100644
index 8d1b377..0000000
--- a/meta/recipes-devtools/pseudo/files/symver.patch
+++ /dev/null
@@ -1,26 +0,0 @@ 
-When running as pseudo-nativesdk, we might need to run host binaries 
-linked against the host libc. Having a 2.14 libc dependency from memcpy is
-problematic so instruct the linker to use older symbols.
-
-Upstream-Status: Pending
-
-RP 2012/4/22
-
-Index: pseudo-1.3/pseudo.h
-===================================================================
---- pseudo-1.3.orig/pseudo.h	2012-04-22 12:17:59.078909060 +0000
-+++ pseudo-1.3/pseudo.h	2012-04-22 12:32:42.954888587 +0000
-@@ -29,6 +29,13 @@
- int pseudo_set_value(const char *key, const char *value);
- char *pseudo_get_value(const char *key);
- 
-+#ifdef __amd64__   
-+#define GLIBC_COMPAT_SYMBOL(SYM) __asm__(".symver " #SYM "," #SYM "@GLIBC_2.2.5")
-+#else   
-+#define GLIBC_COMPAT_SYMBOL(SYM) __asm__(".symver " #SYM "," #SYM "@GLIBC_2.0")
-+#endif
-+GLIBC_COMPAT_SYMBOL(memcpy);
-+
- #include "pseudo_tables.h"
- 
- extern void pseudo_debug_verbose(void);
diff --git a/meta/recipes-devtools/pseudo/pseudo.inc b/meta/recipes-devtools/pseudo/pseudo.inc
index 3baf3af..f5d0608 100644
--- a/meta/recipes-devtools/pseudo/pseudo.inc
+++ b/meta/recipes-devtools/pseudo/pseudo.inc
@@ -9,9 +9,7 @@  SECTION = "base"
 LICENSE = "LGPL2.1"
 DEPENDS = "sqlite3"
 
-SRC_URI_append_class-nativesdk = " file://symver.patch"
 
-SRC_URI_append_class-native = " file://symver.patch"
 
 FILES_${PN} = "${libdir}/pseudo/lib*/libpseudo.so ${bindir}/* ${localstatedir}/pseudo ${prefix}/var/pseudo"
 FILES_${PN}-dbg += "${libdir}/pseudo/lib*/.debug"