Skip to contentSkip to conversation

Prelink/ld bug and rpm compilation on uclibc

PATCH In review Khem Raj 2 participants 22 messages Jun 9, 2012 – Jun 12, 2012

lore
Share & tools
lore

Khem Raj

author
#0 lore raw

v2 cover Prelink/ld bug and rpm compilation on uclibc

This patch now can compile a uclibc sato image using rpm as packaging backend Introduces variables into cmake class to control linker flags which was not available
Adds npth recipe. npth is next gen pth soon gnupg 2.1 will drop pth and move on to use npth, right now its only used in uclibc case conditionalize use of pth using libc overrides since pth is not compatible with uclibc

The following changes since commit 75a973328d50ef3c007edb7a471ea77fb97911ea:

kern-tools: anchor KMACHINE test (2012-06-08 11:56:21 +0100)

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib kraj/misc-updates
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/misc-updates

Khem Raj (16):
binutils_2.22: Backport to fix bogus textrels
rpm: Fix compilation on uclibc
pth: Mark incompatible with uclibc
libtool: Let -fstack-protector passed to link step
rpm: Use link time check for libssp
sat-solver: Fix build on uclibc
libzypp: Fix build with uclibc
augeas: Fix compilation failure
rpm: pass lrt and lpthread to link step explicitly for uclibc
zypper: Fix build on uclibc
cmake.bbclass: Add OECMAKE_C_LINK_FLAGS and OECMAKE_CXX_LINK_FLAGS
variables
libzypp: Define OECMAKE_CXX_LINK_FLAGS when compiling for uclibc task-self-hosted.bb,task-core-lsb.bb: Conditionalize pth inclusion
npth: Add recipe
gpgme: Depend on npth for uclibc
gnupg-2.0.19: Depend on npth for uclibc

 meta/classes/cmake.bbclass                         |    4 +
 meta/recipes-core/tasks/task-self-hosted.bb        |    4 +-
 .../binutils/binutils/0001-PR-ld-13470.patch       |   82 ++++++++++++++++++++
 meta/recipes-devtools/binutils/binutils_2.22.bb    |    3 +-
 meta/recipes-devtools/libtool/libtool-2.4.2.inc    |    3 +-
 .../libtool/libtool/respect-fstack-protector.patch |   53 +++++++++++++
 .../rpm/rpm/fstack-protector-configure-check.patch |   13 +++
 meta/recipes-devtools/rpm/rpm/rpmatch.patch        |   42 ++++++++++
 meta/recipes-devtools/rpm/rpm/uclibc-support.patch |   69 ++++++++++++++++
 meta/recipes-devtools/rpm/rpm_5.4.0.bb             |    7 ++-
 meta/recipes-extended/augeas/augeas.inc            |    4 +-
 .../0001-Add-missing-argument-to-escape.patch      |   29 +++++++
 meta/recipes-extended/augeas/augeas_0.10.0.bb      |    2 +-
 meta/recipes-extended/libzypp/libzypp/cstdio.patch |   49 ++++++++++++
 meta/recipes-extended/libzypp/libzypp_git.bb       |    9 ++-
 .../sat-solver/sat-solver/futimes.patch            |   32 ++++++++
 meta/recipes-extended/sat-solver/sat-solver_git.bb |    7 +-
 meta/recipes-extended/tasks/task-core-lsb.bb       |    6 +-
 meta/recipes-extended/zypper/zypper/rpmatch.patch  |   23 ++++++
 meta/recipes-extended/zypper/zypper_git.bb         |    4 +-
 meta/recipes-support/gnupg/gnupg_2.0.19.bb         |    6 +-
 meta/recipes-support/gpgme/gpgme_1.3.1.bb          |    7 +-
 meta/recipes-support/npth/npth_0.90.bb             |   17 ++++
 meta/recipes-support/pth/pth_2.0.7.bb              |   12 +++-
 24 files changed, 469 insertions(+), 18 deletions(-)
 create mode 100644 meta/recipes-devtools/binutils/binutils/0001-PR-ld-13470.patch
 create mode 100644 meta/recipes-devtools/libtool/libtool/respect-fstack-protector.patch
 create mode 100644 meta/recipes-devtools/rpm/rpm/fstack-protector-configure-check.patch
 create mode 100644 meta/recipes-devtools/rpm/rpm/rpmatch.patch
 create mode 100644 meta/recipes-devtools/rpm/rpm/uclibc-support.patch
 create mode 100644 meta/recipes-extended/augeas/augeas/0001-Add-missing-argument-to-escape.patch
 create mode 100644 meta/recipes-extended/libzypp/libzypp/cstdio.patch
 create mode 100644 meta/recipes-extended/sat-solver/sat-solver/futimes.patch
 create mode 100644 meta/recipes-extended/zypper/zypper/rpmatch.patch
 create mode 100644 meta/recipes-support/npth/npth_0.90.bb
Signature · 1 line
1.7.5.4
author
#1 lore raw

PATCH v2 1/16 binutils_2.22: Backport to fix bogus textrels

This is reported by prelinker which does not
go well with textrels.

---
 .../binutils/binutils/0001-PR-ld-13470.patch       |   82 ++++++++++++++++++++
 meta/recipes-devtools/binutils/binutils_2.22.bb    |    3 +-
 2 files changed, 84 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-devtools/binutils/binutils/0001-PR-ld-13470.patch
meta/recipes-devtools/binutils/binutils/0001-PR-ld-13470.patch new file +82 -0
new file mode 100644
index 0000000..0a0e064
@@ -0,0 +1,82 @@
+From 82fdddd1c4e37881db9b4c6a944261521c6f10ac Mon Sep 17 00:00:00 2001
+From: Alan Modra <[email protected]>
+Date: Sat, 3 Dec 2011 00:57:59 +0000
+Subject: [PATCH] 	PR ld/13470 	* elf32-ppc.c
+ (ppc_elf_copy_indirect_symbol): Revert substantive 
+ change in 2011-07-01 commit.  Comment. 	*
+ elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise.
+
+---
+ bfd/ChangeLog   |    7 +++++++
+ bfd/elf32-ppc.c |   14 ++++++++++----
+ bfd/elf64-ppc.c |   14 ++++++++++----
+ 3 files changed, 27 insertions(+), 8 deletions(-)
+
+
+Upstream-Status: Backport
+
+Signed-off-by: Khem Raj <[email protected]>
+Index: binutils-2.22/bfd/elf32-ppc.c
+===================================================================
+--- binutils-2.22.orig/bfd/elf32-ppc.c	2011-11-21 01:29:21.000000000 -0800
++++ binutils-2.22/bfd/elf32-ppc.c	2012-05-31 14:28:48.273784929 -0700
+@@ -2987,10 +2987,6 @@
+   edir->elf.needs_plt |= eind->elf.needs_plt;
+   edir->elf.pointer_equality_needed |= eind->elf.pointer_equality_needed;
+ 
+-  /* If we were called to copy over info for a weak sym, that's all.  */
+-  if (eind->elf.root.type != bfd_link_hash_indirect)
+-    return;
+-
+   if (eind->dyn_relocs != NULL)
+     {
+       if (edir->dyn_relocs != NULL)
+@@ -3022,6 +3018,16 @@
+       eind->dyn_relocs = NULL;
+     }
+ 
++  /* If we were called to copy over info for a weak sym, that's all.
++     You might think dyn_relocs need not be copied over;  After all,
++     both syms will be dynamic or both non-dynamic so we're just
++     moving reloc accounting around.  However, ELIMINATE_COPY_RELOCS 
++     code in ppc_elf_adjust_dynamic_symbol needs to check for
++     dyn_relocs in read-only sections, and it does so on what is the
++     DIR sym here.  */
++  if (eind->elf.root.type != bfd_link_hash_indirect)
++    return;
++
+   /* Copy over the GOT refcount entries that we may have already seen to
+      the symbol which just became indirect.  */
+   edir->elf.got.refcount += eind->elf.got.refcount;
+Index: binutils-2.22/bfd/elf64-ppc.c
+===================================================================
+--- binutils-2.22.orig/bfd/elf64-ppc.c	2011-11-21 01:29:24.000000000 -0800
++++ binutils-2.22/bfd/elf64-ppc.c	2012-05-31 14:28:48.285784951 -0700
+@@ -4435,10 +4435,6 @@
+   edir->elf.ref_regular_nonweak |= eind->elf.ref_regular_nonweak;
+   edir->elf.needs_plt |= eind->elf.needs_plt;
+ 
+-  /* If we were called to copy over info for a weak sym, that's all.  */
+-  if (eind->elf.root.type != bfd_link_hash_indirect)
+-    return;
+-
+   /* Copy over any dynamic relocs we may have on the indirect sym.  */
+   if (eind->dyn_relocs != NULL)
+     {
+@@ -4471,6 +4467,16 @@
+       eind->dyn_relocs = NULL;
+     }
+ 
++  /* If we were called to copy over info for a weak sym, that's all.
++     You might think dyn_relocs need not be copied over;  After all,
++     both syms will be dynamic or both non-dynamic so we're just
++     moving reloc accounting around.  However, ELIMINATE_COPY_RELOCS 
++     code in ppc64_elf_adjust_dynamic_symbol needs to check for
++     dyn_relocs in read-only sections, and it does so on what is the
++     DIR sym here.  */
++  if (eind->elf.root.type != bfd_link_hash_indirect)
++    return;
++
+   /* Copy over got entries that we may have already seen to the
+      symbol which just became indirect.  */
+   if (eind->elf.got.glist != NULL)
meta/recipes-devtools/binutils/binutils_2.22.bb +2 -1
index 9f62883..7b6adef 100644
@@ -1,6 +1,6 @@
 require binutils.inc
 
-PR = "r8"
+PR = "r9"
 
 LIC_FILES_CHKSUM="\
     file://src-release;endline=17;md5=4830a9ef968f3b18dd5e9f2c00db2d35\
@@ -32,6 +32,7 @@ SRC_URI = "\
      file://binutils-powerpc-e5500.patch \
      file://binutils-armv5e.patch \
      file://mips64-default-ld-emulation.patch \
+     file://0001-PR-ld-13470.patch \
      "
 
 SRC_URI[md5sum] = "ee0f10756c84979622b992a4a61ea3f5"
Signature · 1 line
1.7.5.4
author
#2 lore raw

PATCH v2 2/16 rpm: Fix compilation on uclibc

rpmatch is not there in uclibc therefore add logic to configure to detect it.

x* wrappers need to be defined for uclibc as well.

---
 meta/recipes-devtools/rpm/rpm/rpmatch.patch        |   42 ++++++++++++
 meta/recipes-devtools/rpm/rpm/uclibc-support.patch |   69 ++++++++++++++++++++
 meta/recipes-devtools/rpm/rpm_5.4.0.bb             |    4 +-
 3 files changed, 114 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-devtools/rpm/rpm/rpmatch.patch
 create mode 100644 meta/recipes-devtools/rpm/rpm/uclibc-support.patch
meta/recipes-devtools/rpm/rpm/rpmatch.patch new file +42 -0
new file mode 100644
index 0000000..8ea3490
@@ -0,0 +1,42 @@
+Add configure check for rpmatch() and 
+creates a compatable macro if it is not provided by the C library.
+
+This is needed for uclibc since it does not have the above function
+implemented.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <[email protected]>
+
+Index: rpm-5.4.0/configure.ac
+===================================================================
+--- rpm-5.4.0.orig/configure.ac	2012-05-31 15:40:05.985990822 -0700
++++ rpm-5.4.0/configure.ac	2012-05-31 15:41:15.601995311 -0700
+@@ -800,7 +800,7 @@
+     ftok getaddrinfo getattrlist getcwd getdelim getline getmode getnameinfo dnl
+     getpassphrase getxattr getwd iconv inet_aton lchflags lchmod lchown dnl
+     lgetxattr lsetxattr lutimes madvise mempcpy mkdtemp mkstemp mtrace dnl
+-    posix_fadvise posix_fallocate putenv realpath regcomp __secure_getenv dnl
++    posix_fadvise posix_fallocate putenv realpath regcomp rpmatch __secure_getenv dnl
+     setattrlist setenv setlocale setmode setxattr dnl
+     sigaddset sigdelset sigemptyset sighold sigrelse sigpause dnl
+     sigprocmask sigsuspend sigaction dnl
+Index: rpm-5.4.0/system.h
+===================================================================
+--- rpm-5.4.0.orig/system.h	2012-05-31 15:40:05.997991504 -0700
++++ rpm-5.4.0/system.h	2012-05-31 15:42:04.941997731 -0700
+@@ -410,6 +410,14 @@
+ #endif /* defined(__GNUC__) */
+ #endif	/* HAVE_MCHECK_H */
+ 
++#ifndef HAVE_RPMATCH
++#define rpmatch(line) \
++	( (line == NULL)? -1 : \
++	  (*line == 'y' || *line == 'Y')? 1 : \
++	  (*line == 'n' || *line == 'N')? 0 : \
++	  -1 )
++#endif
++
+ /* Retrofit glibc __progname */
+ #if defined __GLIBC__ && __GLIBC__ >= 2
+ #if __GLIBC_MINOR__ >= 1
meta/recipes-devtools/rpm/rpm/uclibc-support.patch new file +69 -0

69 lines not on this page · raw message

meta/recipes-devtools/rpm/rpm_5.4.0.bb +3 -1
index 43999e5..f4938fd 100644
@@ -45,7 +45,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
 DEPENDS = "bzip2 zlib db openssl elfutils expat libpcre attr acl popt ${extrarpmdeps}"
 extrarpmdeps = "python perl file"
 extrarpmdeps_virtclass-native = "python-native file-native"
-PR = "r38"
+PR = "r39"
 
 # rpm2cpio is a shell script, which is part of the rpm src.rpm.  It is needed
 # in order to extract the distribution SRPM into a format we can extract...
@@ -72,6 +72,8 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.0-0.20101229.src.rpm;ex
 	   file://rpm-resolvedep.patch \
 	   file://rpm-respect-arch.patch \
 	   file://rpm_fix_for_automake-1.12.patch \
+	   file://uclibc-support.patch \
+	   file://rpmatch.patch \
 	  "
 
 #	   file://rpm-autoconf.patch \
Signature · 1 line
1.7.5.4
author
#3 lore raw

PATCH v2 3/16 pth: Mark incompatible with uclibc

In reply to Khem Raj

pth does not work with uclibc

---
 meta/recipes-support/pth/pth_2.0.7.bb |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)
meta/recipes-support/pth/pth_2.0.7.bb +10 -2
index 61865b7..cdd5eaf 100644
@@ -3,9 +3,17 @@ HOMEPAGE = "http://www.gnu.org/software/pth/"
 SECTION = "libs"
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;beginline=12;endline=15;md5=a48af114a80c222cafd37f24370a77b1"
-PR = "r1"
+PR = "r2"
 
-SRC_URI = "${GNU_MIRROR}/pth/pth-${PV}.tar.gz"
+python __anonymous () {
+    import bb, re
+    uc_os = (re.match('.*uclibc*', d.getVar('TARGET_OS', True)) != None)
+    if uc_os:
+        raise bb.parse.SkipPackage("incompatible with uClibc")
+}
+
+SRC_URI = "${GNU_MIRROR}/pth/pth-${PV}.tar.gz \
+          "
 
 SRC_URI[md5sum] = "9cb4a25331a4c4db866a31cbe507c793"
 SRC_URI[sha256sum] = "72353660c5a2caafd601b20e12e75d865fd88f6cf1a088b306a3963f0bc77232"
Signature · 1 line
1.7.5.4
author
#4 lore raw

PATCH v2 4/16 libtool: Let -fstack-protector passed to link step

In reply to Khem Raj

linker should add -lssp to linker cmdline when -fstack-protector therefore add this knowledge to libtool otherwise packages will fail to link

---
 meta/recipes-devtools/libtool/libtool-2.4.2.inc    |    3 +-
 .../libtool/libtool/respect-fstack-protector.patch |   53 ++++++++++++++++++++
 2 files changed, 55 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-devtools/libtool/libtool/respect-fstack-protector.patch
meta/recipes-devtools/libtool/libtool-2.4.2.inc +2 -1
index c1ef7c4..05a2e6d 100644
@@ -8,7 +8,7 @@ LICENSE = "GPLv2 & LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
     file://libltdl/COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06"
 
-INC_PR = "r3"
+INC_PR = "r4"
 
 SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
            file://trailingslash.patch \
@@ -18,6 +18,7 @@ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
            file://fix-final-rpath.patch \
            file://avoid_absolute_paths_for_general_utils.patch \
            file://fix-rpath.patch \
+	   file://respect-fstack-protector.patch \
           "
 
 SRC_URI[md5sum] = "d2f3b7d4627e69e13514a40e72a24d50"
meta/recipes-devtools/libtool/libtool/respect-fstack-protector.patch new file +53 -0

53 lines not on this page · raw message

Signature · 1 line
1.7.5.4
author
#5 lore raw

PATCH v2 5/16 rpm: Use link time check for libssp

In reply to Khem Raj

-fstack-protector needs libssp to link with
so when checking for this option support we
need to find if libssp is staged in root file
system

---
 .../rpm/rpm/fstack-protector-configure-check.patch |   13 +++++++++++++
 meta/recipes-devtools/rpm/rpm_5.4.0.bb             |    1 +
 2 files changed, 14 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/rpm/rpm/fstack-protector-configure-check.patch
meta/recipes-devtools/rpm/rpm/fstack-protector-configure-check.patch new file +13 -0
new file mode 100644
index 0000000..84d0430
@@ -0,0 +1,13 @@
+Index: rpm-5.4.0/configure.ac
+===================================================================
+--- rpm-5.4.0.orig/configure.ac	2012-06-01 11:41:19.741480143 -0700
++++ rpm-5.4.0/configure.ac	2012-06-01 11:41:51.773481676 -0700
+@@ -193,7 +193,7 @@
+  my_save_cflags="$CFLAGS"
+  CFLAGS=$c
+  AC_MSG_CHECKING([whether GCC supports $c])
+- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
+     [AC_MSG_RESULT([yes])]
+     [my_cflags=$c],
+     [AC_MSG_RESULT([no])]
meta/recipes-devtools/rpm/rpm_5.4.0.bb +1 -0
index f4938fd..a8bff65 100644
@@ -74,6 +74,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.0-0.20101229.src.rpm;ex
 	   file://rpm_fix_for_automake-1.12.patch \
 	   file://uclibc-support.patch \
 	   file://rpmatch.patch \
+	   file://fstack-protector-configure-check.patch \
 	  "
 
 #	   file://rpm-autoconf.patch \
Signature · 1 line
1.7.5.4
author
#6 lore raw

PATCH v2 6/16 sat-solver: Fix build on uclibc

In reply to Khem Raj

futimes is not available on uclibc so use utimes

---
 .../sat-solver/sat-solver/futimes.patch            |   32 ++++++++++++++++++++
 meta/recipes-extended/sat-solver/sat-solver_git.bb |    7 +++-
 2 files changed, 37 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-extended/sat-solver/sat-solver/futimes.patch
meta/recipes-extended/sat-solver/sat-solver/futimes.patch new file +32 -0
new file mode 100644
index 0000000..b24d852
@@ -0,0 +1,32 @@
+This patch uses utimes instead of futimes for uclibc
+since futimes is not available
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <[email protected]>
+
+Index: git/examples/solv.c
+===================================================================
+--- git.orig/examples/solv.c	2012-06-01 12:06:22.041552848 -0700
++++ git/examples/solv.c	2012-06-01 12:49:17.417677449 -0700
+@@ -1027,7 +1027,8 @@
+   int flags;
+ 
+   cinfo = repo->appdata;
+-  if (!(fp = fopen(calccachepath(repo, repoext), "r")))
++  const char* fname = calccachepath(repo, repoext);
++  if (!(fp = fopen(fname, "r")))
+     return 0;
+   if (fseek(fp, -sizeof(mycookie), SEEK_END) || fread(mycookie, sizeof(mycookie), 1, fp) != 1)
+     {
+@@ -1068,7 +1069,11 @@
+       memcpy(cinfo->extcookie, myextcookie, sizeof(myextcookie));
+     }
+   if (mark)
++#ifdef __UCLIBC__
++    utimes(fname, 0);	/* try to set modification time */
++#else
+     futimes(fileno(fp), 0);	/* try to set modification time */
++#endif
+   fclose(fp);
+   return 1;
+ }
meta/recipes-extended/sat-solver/sat-solver_git.bb +5 -2
index 9d8422f..743c6f8 100644
@@ -8,7 +8,7 @@ DEPENDS = "libcheck rpm zlib expat db"
 
 SRCREV = "0a7378d5f482f477a01cf1690d76871ab8bdcc32"
 PV = "0.0-git${SRCPV}"
-PR = "r13"
+PR = "r14"
 
 PARALLEL_MAKE=""
 
@@ -20,14 +20,17 @@ SRC_URI = "git://github.com/openSUSE/sat-solver.git;protocol=git \
            file://sat-solver_core.patch \
            file://fix_gcc-4.6.0_compile_issue.patch \
            file://0001-sat_xfopen.c-Forward-port-to-zlib-1.2.6-gzFile.patch \
+           file://futimes.patch \
           "
 
 S = "${WORKDIR}/git"
 
-EXTRA_OECMAKE += "-DRPM5=RPM5 -DOE_CORE=OE_CORE"
+EXTRA_OECMAKE += "-DRPM5=RPM5 -DOE_CORE=OE_CORE -DUSE_OWN_QSORT=1"
 
 EXTRA_OECMAKE += " -DLIB=${@os.path.basename('${libdir}')}"
 
+TUNE_CCARGS += "-DUSE_OWN_QSORT=1"
+
 inherit cmake pkgconfig
 
 RDEPENDS_${PN} = "rpm-libs"
Signature · 1 line
1.7.5.4
author
#7 lore raw

PATCH v2 7/16 libzypp: Fix build with uclibc

In reply to Khem Raj

cstdio is included indrectly with eglibc based systems but not with uclibc based systems and use of functions like ::eof are then reported as warnings. Therefore we include cstdio explicitly.

---
 meta/recipes-extended/libzypp/libzypp/cstdio.patch |   49 ++++++++++++++++++++
 meta/recipes-extended/libzypp/libzypp_git.bb       |   10 +++-
 2 files changed, 57 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-extended/libzypp/libzypp/cstdio.patch
meta/recipes-extended/libzypp/libzypp/cstdio.patch new file +49 -0
new file mode 100644
index 0000000..a021d58
@@ -0,0 +1,49 @@
+include cstdio to get definitions of ::xxx functions which
+are now reported by gcc-4.7 as wanrings and warnings are treated
+as errors
+
+Signed-off-by: Khem Raj <[email protected]>
+Upstream-Status: Pending
+
+Index: git/zypp/ExternalProgram.cc
+===================================================================
+--- git.orig/zypp/ExternalProgram.cc	2012-06-01 16:25:17.098304709 -0700
++++ git/zypp/ExternalProgram.cc	2012-06-01 16:25:37.254305681 -0700
+@@ -22,6 +22,7 @@
+ #include <cstring> // strsignal
+ #include <iostream>
+ #include <sstream>
++#include <cstdio>
+ 
+ #include "zypp/base/Logger.h"
+ #include "zypp/base/String.h"
+Index: git/zypp/PluginScript.cc
+===================================================================
+--- git.orig/zypp/PluginScript.cc	2012-06-01 16:21:37.814294089 -0700
++++ git/zypp/PluginScript.cc	2012-06-01 16:24:41.002302961 -0700
+@@ -14,6 +14,7 @@
+ 
+ #include <iostream>
+ #include <sstream>
++#include <cstdio>
+ 
+ #include "zypp/base/LogTools.h"
+ #include "zypp/base/DefaultIntegral.h"
+@@ -336,7 +337,7 @@
+     if ( fd == -1 )
+       ZYPP_THROW( PluginScriptException( "Bad file descriptor" ) );
+ 
+-    ::clearerr( filep );
++    std::clearerr( filep );
+     std::string data;
+     {
+       PluginDebugBuffer _debug( data ); // dump receive buffer if PLUGIN_DEBUG
+@@ -370,7 +371,7 @@
+ 	    int retval = select( fd+1, &rfds, NULL, NULL, &tv );
+ 	    if ( retval > 0 )	// FD_ISSET( fd, &rfds ) will be true.
+ 	    {
+-	      ::clearerr( filep );
++	      std::clearerr( filep );
+ 	    }
+ 	    else if ( retval == 0 )
+ 	    {
meta/recipes-extended/libzypp/libzypp_git.bb +8 -2
index 3c3a9f0..0fe6114 100644
@@ -11,7 +11,7 @@ DEPENDS  = "rpm boost curl libxml2 zlib sat-solver expat openssl udev libproxy"
 S = "${WORKDIR}/git"
 SRCREV = "15b6c52260bbc52b3d8e585e271b67e10cc7c433"
 PV = "0.0-git${SRCPV}"
-PR = "r20"
+PR = "r21"
 
 SRC_URI = "git://github.com/openSUSE/libzypp.git;protocol=git \
            file://no-doc.patch \
@@ -23,6 +23,7 @@ SRC_URI = "git://github.com/openSUSE/libzypp.git;protocol=git \
 	   file://fix_for_compile_wth_gcc-4.6.0.patch \
 	   file://hardcode-lib-fix.patch \
 	   file://close.patch \
+	   file://cstdio.patch \
           "
 
 SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch"
@@ -31,7 +32,10 @@ SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch"
 SRC_URI_append_arm  = " file://arm-workaround-global-constructor.patch"
 
 # rpmdb2solv from sat-solver is run from libzypp
-RDEPENDS_${PN} = "sat-solver rpm-libs gzip gnupg"
+RDEPENDS_${PN} = "sat-solver rpm-libs gzip ${RDEPGNUPG}"
+
+RDEPGNUPG = "gnupg"
+RDEPGNUPG_libc-uclibc = ""
 
 PACKAGES =+ "${PN}-pkgmgt"
 
@@ -45,6 +49,8 @@ FILES_${PN}-pkgmgt = "${bindir}/package-manager \
 
 EXTRA_OECMAKE += " -DLIB=${@os.path.basename('${libdir}')}"
 
+LDFLAGS += "-lpthread"
+
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 AVOID_CONSTRUCTOR = ""
Signature · 1 line
1.7.5.4
author
#8 lore raw

PATCH v2 8/16 augeas: Fix compilation failure

In reply to Khem Raj

on uclibc we see this failure
too few arguments to function 'escape'

---
 meta/recipes-extended/augeas/augeas.inc            |    4 ++-
 .../0001-Add-missing-argument-to-escape.patch      |   29 ++++++++++++++++++++
 meta/recipes-extended/augeas/augeas_0.10.0.bb      |    2 +-
 3 files changed, 33 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-extended/augeas/augeas/0001-Add-missing-argument-to-escape.patch
meta/recipes-extended/augeas/augeas.inc +3 -1
index 9fe864d..479fb97 100644
@@ -5,7 +5,9 @@ BUGTRACKER = "https://fedorahosted.org/augeas/report/1"
 LICENSE = "LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbb461211a33b134d42ed5ee802b37ff"
 
-SRC_URI = "http://augeas.net/download/${BP}.tar.gz"
+SRC_URI = "http://augeas.net/download/${BP}.tar.gz \
+           file://0001-Add-missing-argument-to-escape.patch \
+          "
 
 DEPENDS = "readline libxml2"
 
meta/recipes-extended/augeas/augeas/0001-Add-missing-argument-to-escape.patch new file +29 -0
new file mode 100644
index 0000000..3d0d0e3
@@ -0,0 +1,29 @@
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <[email protected]>
+
+From 021ea39f8e400225e2d01b4c62eb9d56404f2ecd Mon Sep 17 00:00:00 2001
+From: Michael Chapman <[email protected]>
+Date: Fri, 16 Dec 2011 21:30:07 +1100
+Subject: [PATCH] Add missing argument to escape()
+
+Fixes ticket #242.
+---
+ src/regexp.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/regexp.c b/src/regexp.c
+index cf0ea5d..811087d 100644
+--- a/src/regexp.c
++++ b/src/regexp.c
+@@ -50,7 +50,7 @@ char *regexp_escape(const struct regexp *r) {
+     ret = fa_restrict_alphabet(r->pattern->str, strlen(r->pattern->str),
+                                &nre, &nre_len, 2, 1);
+     if (ret == 0) {
+-        pat = escape(nre, nre_len);
++        pat = escape(nre, nre_len, RX_ESCAPES);
+         free(nre);
+     }
+ #endif
+-- 
+1.7.5.4
+
meta/recipes-extended/augeas/augeas_0.10.0.bb +1 -1
index 00921aa..1a08707 100644
@@ -1,6 +1,6 @@
 require augeas.inc
 
-PR = "r1"
+PR = "r2"
 
 SRC_URI[md5sum] = "fe1834e90a066c3208ac0214622c7352"
 SRC_URI[sha256sum] = "ec111af06186216930176ebe5ecccdf7bf528528aee9acde1d5d70088484afca"
Signature · 1 line
1.7.5.4
author
#9 lore raw

PATCH v2 9/16 rpm: pass lrt and lpthread to link step explicitly for uclibc

In reply to Khem Raj

These need to appear in DT_NEEDED for librpmio.so
for uclibc somehow it does not get added to link
cmdline so we do it explicitly.

---
 meta/recipes-devtools/rpm/rpm_5.4.0.bb |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
meta/recipes-devtools/rpm/rpm_5.4.0.bb +2 -0
index a8bff65..e9d2f35e 100644
@@ -178,6 +178,8 @@ EXTRA_OECONF = "--verbose \
 
 CFLAGS_append = " -DRPM_VENDOR_WINDRIVER -DRPM_VENDOR_POKY"
 
+LDFLAGS_append_libc-uclibc = "-lrt -lpthread"
+
 PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-libs ${PN}-dev ${PN}-staticdev ${PN}-common ${PN}-build python-rpm-dbg python-rpm-staticdev python-rpm perl-module-rpm perl-module-rpm-dev ${PN}-locale"
 
 SOLIBS = "5.4.so"
Signature · 1 line
1.7.5.4
author
#10 lore raw

PATCH v2 10/16 zypper: Fix build on uclibc

In reply to Khem Raj

uclibc does not have rpmatch() so we define
it if zypper is being compiled for uclibc

---
 meta/recipes-extended/zypper/zypper/rpmatch.patch |   23 +++++++++++++++++++++
 meta/recipes-extended/zypper/zypper_git.bb        |    4 ++-
 2 files changed, 26 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-extended/zypper/zypper/rpmatch.patch
meta/recipes-extended/zypper/zypper/rpmatch.patch new file +23 -0
new file mode 100644
index 0000000..a750a3b
@@ -0,0 +1,23 @@
+rpmatch() is missing in uclibc so we provide a local definition
+in form of a macro
+
+Signed-off-by: Khem Raj <[email protected]>
+Upstream-Status: Pending
+
+Index: git/src/utils/prompt.h
+===================================================================
+--- git.orig/src/utils/prompt.h	2012-06-06 15:51:00.899112775 -0700
++++ git/src/utils/prompt.h	2012-06-06 15:52:17.003116762 -0700
+@@ -172,4 +172,12 @@
+   return errstr;
+ }
+ 
++#ifdef __UCLIBC__
++#define rpmatch(line) \
++       ( (line == NULL)? -1 : \
++         (*line == 'y' || *line == 'Y')? 1 : \
++         (*line == 'n' || *line == 'N')? 0 : \
++         -1 )
++#endif /* __UCLIBC__ */
++
+ #endif /*ZYPPERPROMPT_H_*/
meta/recipes-extended/zypper/zypper_git.bb +3 -1
index 56ccc86..c5d7c61 100644
@@ -5,7 +5,7 @@ LICENSE  = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=3201406e350b39e05a82e28b5020f413"
 
 DEPENDS  = "libzypp augeas"
-PR = "r2"
+PR = "r3"
 SRCREV = "2c5bb6ceb99ecd950ef993e43d77bf0569ea0582"
 
 inherit cmake
@@ -16,6 +16,7 @@ SRC_URI = "git://github.com/openSUSE/zypper.git;protocol=git \
            file://dso_linking_change_build_fix.patch \
            file://rpm5-flag.patch \
            file://gcc-scope.patch \
+           file://rpmatch.patch \
           "
 S = "${WORKDIR}/git"
 
@@ -25,3 +26,4 @@ RDEPENDS_${PN} = "rpm-libs"
 RRECOMMENDS_${PN} = "procps util-linux-uuidgen"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
+OECMAKE_CXX_LINK_FLAGS_libc-uclibc += "-lintl"
Signature · 1 line
1.7.5.4
author
#11 lore raw

PATCH v2 11/16 cmake.bbclass: Add OECMAKE_C_LINK_FLAGS and OECMAKE_CXX_LINK_FLAGS variables

In reply to Khem Raj

In some cases we need to specify linker flags and right
now we do not have a way to communicate that to cmake
based systems. cmake defines CMAKE_C_LINK_FLAGS and CMAKE_CXX_LINK_FLAGS for these needs. This patch therefore defines two local variables namely OECMAKE_C_LINK_FLAGS and OECMAKE_CXX_LINK_FLAGS which can be altered by recipes to tweak linker flags

---
 meta/classes/cmake.bbclass |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
meta/classes/cmake.bbclass +4 -0
index dcd974a..eda45dd 100644
@@ -23,6 +23,8 @@ OECMAKE_C_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CPPFLAGS}"
 OECMAKE_CXX_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CXXFLAGS} -fpermissive"
 OECMAKE_C_FLAGS_RELEASE ?= "${SELECTED_OPTIMIZATION} ${CPPFLAGS} -DNDEBUG"
 OECMAKE_CXX_FLAGS_RELEASE ?= "${SELECTED_OPTIMIZATION} ${CXXFLAGS} -DNDEBUG"
+OECMAKE_C_LINK_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CPPFLAGS} ${LDFLAGS}"
+OECMAKE_CXX_LINK_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CXXFLAGS} ${LDFLAGS}"
 
 OECMAKE_RPATH ?= ""
 OECMAKE_PERLNATIVE_DIR ??= ""
@@ -40,6 +42,8 @@ set( CMAKE_C_FLAGS "${OECMAKE_C_FLAGS}" CACHE STRING "CFLAGS" )
 set( CMAKE_CXX_FLAGS "${OECMAKE_CXX_FLAGS}" CACHE STRING "CXXFLAGS" )
 set( CMAKE_C_FLAGS_RELEASE "${OECMAKE_C_FLAGS_RELEASE}" CACHE STRING "CFLAGS for release" )
 set( CMAKE_CXX_FLAGS_RELEASE "${OECMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "CXXFLAGS for release" )
+set( CMAKE_C_LINK_FLAGS "${OECMAKE_C_LINK_FLAGS}" CACHE STRING "LDFLAGS" )
+set( CMAKE_CXX_LINK_FLAGS "${OECMAKE_CXX_LINK_FLAGS}" CACHE STRING "LDFLAGS" )
 
 # only search in the paths provided so cmake doesnt pick
 # up libraries and tools from the native build machine
Signature · 1 line
1.7.5.4
author
#12 lore raw

PATCH v2 12/16 libzypp: Define OECMAKE_CXX_LINK_FLAGS when compiling for uclibc

In reply to Khem Raj
---
 meta/recipes-extended/libzypp/libzypp_git.bb |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
meta/recipes-extended/libzypp/libzypp_git.bb +1 -2
index 0fe6114..ad38751 100644
@@ -48,8 +48,7 @@ FILES_${PN}-pkgmgt = "${bindir}/package-manager \
                      "
 
 EXTRA_OECMAKE += " -DLIB=${@os.path.basename('${libdir}')}"
-
-LDFLAGS += "-lpthread"
+OECMAKE_CXX_LINK_FLAGS_libc-uclibc += "-pthread"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
Signature · 1 line
1.7.5.4
author
#13 lore raw

PATCH v2 13/16 task-self-hosted.bb, task-core-lsb.bb: Conditionalize pth inclusion

In reply to Khem Raj

pth is not portable to uclibc therefore we need to exclude it for uclibc based systems.

---
 meta/recipes-core/tasks/task-self-hosted.bb  |    4 +++-
 meta/recipes-extended/tasks/task-core-lsb.bb |    6 +++++-
 2 files changed, 8 insertions(+), 2 deletions(-)
meta/recipes-core/tasks/task-self-hosted.bb +3 -1
index 64e01bb..61d08ed 100644
@@ -137,7 +137,7 @@ RDEPENDS_task-self-hosted-extended = "\
     perl-dev \
     perl-modules \
     perl-pod \
-    pth \
+    ${PTH} \
     python \
     python-compile \
     python-compiler \
@@ -199,3 +199,5 @@ RDEPENDS_task-self-hosted-graphics = "\
     python-pygtk \
     gtk-theme-clearlooks \
     "
+PTH = "pth"
+PTH_libc-uclibc = ""
meta/recipes-extended/tasks/task-core-lsb.bb +5 -1
index 4faf4d7..553b89e 100644
@@ -70,7 +70,7 @@ RDEPENDS_task-core-sys-extended = "\
     minicom \
     neon \
     parted \
-    pth \
+    ${PTH} \
     quota \
     screen \
     setserial \
@@ -197,3 +197,7 @@ RDEPENDS_task-core-lsb-runtime-add = "\
     eglibc-pic \
     eglibc-utils \
 "
+
+PTH = "pth"
+PTH_libc-uclibc = ""
+
Signature · 1 line
1.7.5.4
author
#14 lore raw

PATCH v2 14/16 npth: Add recipe

In reply to Khem Raj

npth is modern version of pth
gnugp 2.1 will drop pth in favor of npth

npth works with uclibc too whereas pth does not

---
 meta/recipes-support/npth/npth_0.90.bb |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-support/npth/npth_0.90.bb
meta/recipes-support/npth/npth_0.90.bb new file +17 -0
new file mode 100644
index 0000000..7d39ca8
@@ -0,0 +1,17 @@
+DESCRIPTION = "New GNU Portable Threads"
+HOMEPAGE = "http://www.gnupg.org/software/pth/"
+SECTION = "libs"
+LICENSE = "LGPLv3+ & GPLv2+"
+LIC_FILES_CHKSUM = "\
+    file://COPYING;md5=751419260aa954499f7abaabaa882bbe\
+    file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6\
+    "
+SRC_URI = "ftp://ftp.gnupg.org/gcrypt/npth/npth-${PV}.tar.bz2 \
+          "
+SRC_URI[md5sum] = "701665669b371385a92817ff1f9215ca"
+SRC_URI[sha256sum] = "e24e99c9e90e7c2c2272fed3a939647fdcd3a7ee0c9efb2983eed553ab2b4568"
+
+inherit autotools binconfig
+
+FILES_${PN} = "${libdir}/libnpth.so.*"
+FILES_${PN}-dev += "${bindir}/npth-config"
Signature · 1 line
1.7.5.4
author
#15 lore raw

PATCH v2 15/16 gpgme: Depend on npth for uclibc

In reply to Khem Raj
---
 meta/recipes-support/gpgme/gpgme_1.3.1.bb |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
meta/recipes-support/gpgme/gpgme_1.3.1.bb +5 -2
index 4bcb57a..43d8aad 100644
@@ -13,8 +13,11 @@ SRC_URI = "ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-${PV}.tar.bz2 \
 
 SRC_URI[md5sum] = "90afa8436ce2b2683c001c824bd22601"
 SRC_URI[sha256sum] = "15ef27a875ae0d79d7446fd931deda11438e724ffbeac74449ed19cba23df4d4"
-DEPENDS = "libgpg-error libassuan pth"
-PR = "r1"
+DEPENDS = "libgpg-error libassuan ${PTH}"
+PTH_libc-uclibc = "npth"
+PTH = "pth"
+
+PR = "r2"
 
 EXTRA_OECONF = "--with-pth=${STAGING_DIR_HOST} --without-pth-test \
                 --with-gpg=${bindir}/gpg --without-gpgsm"
Signature · 1 line
1.7.5.4
author
#16 lore raw

PATCH v2 16/16 gnupg-2.0.19: Depend on npth for uclibc

In reply to Khem Raj
---
 meta/recipes-support/gnupg/gnupg_2.0.19.bb |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
meta/recipes-support/gnupg/gnupg_2.0.19.bb +4 -2
index d014f03..24219a8 100644
@@ -4,8 +4,10 @@ LICENSE = "GPLv3 & LGPLv3"
 LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
                     file://COPYING.LIB;md5=6a6a8e020838b23406c81b19c1d46df6"
 
-DEPENDS = "pth libassuan libksba zlib bzip2 readline libgcrypt"
-PR = "r2"
+DEPENDS = "${PTH} libassuan libksba zlib bzip2 readline libgcrypt"
+PTH = "pth"
+PTH_libc-uclibc = "npth"
+PR = "r3"
 
 inherit autotools gettext
 
Signature · 1 line
1.7.5.4
author
#17 lore raw
In reply to Khem Raj
Quoted 9 lines · Khem Raj

This patch now can compile a uclibc sato image using rpm as packaging backend Introduces variables into cmake class to control linker flags which was not available
Adds npth recipe. npth is next gen pth soon gnupg 2.1 will drop pth and move on to use npth, right now its only used in uclibc case conditionalize use of pth using libc overrides since pth is not compatible with uclibc

Quoted 7 lines

The following changes since commit 75a973328d50ef3c007edb7a471ea77fb97911ea:

 kern-tools: anchor KMACHINE test (2012-06-08 11:56:21 +0100)

are available in the git repository at:
 git://git.openembedded.org/openembedded-core-contrib kraj/misc-updates
 http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/misc-updates

I have updated this pull request with two additional changes

1. Upgrade uclibc git recipes to latest tip of master this gets the eventfd patches which are needed for glib-2.32.x to function correctly.

2. Include gcc patches to exclude call-convention settings when building native and nativesdk gcc recipes.

3. Use translated target arch instead of target_arch in gcc.

Quoted 59 lines

Khem Raj (16):
 binutils_2.22: Backport to fix bogus textrels
 rpm: Fix compilation on uclibc
 pth: Mark incompatible with uclibc
 libtool: Let -fstack-protector passed to link step
 rpm: Use link time check for libssp
 sat-solver: Fix build on uclibc
 libzypp: Fix build with uclibc
 augeas: Fix compilation failure
 rpm: pass lrt and lpthread to link step explicitly for uclibc
 zypper: Fix build on uclibc
 cmake.bbclass: Add OECMAKE_C_LINK_FLAGS and OECMAKE_CXX_LINK_FLAGS variables
 libzypp: Define OECMAKE_CXX_LINK_FLAGS when compiling for uclibc task-self-hosted.bb,task-core-lsb.bb: Conditionalize pth inclusion
 npth: Add recipe
 gpgme: Depend on npth for uclibc
 gnupg-2.0.19: Depend on npth for uclibc

 meta/classes/cmake.bbclass                         |    4 + meta/recipes-core/tasks/task-self-hosted.bb        |    4 +- .../binutils/binutils/0001-PR-ld-13470.patch       |   82 ++++++++++++++++++++ meta/recipes-devtools/binutils/binutils_2.22.bb    |    3 +- meta/recipes-devtools/libtool/libtool-2.4.2.inc    |    3 +- .../libtool/libtool/respect-fstack-protector.patch |   53 +++++++++++++ .../rpm/rpm/fstack-protector-configure-check.patch |   13 +++ meta/recipes-devtools/rpm/rpm/rpmatch.patch        |   42 ++++++++++ meta/recipes-devtools/rpm/rpm/uclibc-support.patch |   69 ++++++++++++++++ meta/recipes-devtools/rpm/rpm_5.4.0.bb             |    7 ++- meta/recipes-extended/augeas/augeas.inc            |    4 +- .../0001-Add-missing-argument-to-escape.patch      |   29 +++++++ meta/recipes-extended/augeas/augeas_0.10.0.bb      |    2 +- meta/recipes-extended/libzypp/libzypp/cstdio.patch |   49 ++++++++++++ meta/recipes-extended/libzypp/libzypp_git.bb       |    9 ++- .../sat-solver/sat-solver/futimes.patch            |   32 ++++++++ meta/recipes-extended/sat-solver/sat-solver_git.bb |    7 +- meta/recipes-extended/tasks/task-core-lsb.bb       |    6 +- meta/recipes-extended/zypper/zypper/rpmatch.patch  |   23 ++++++ meta/recipes-extended/zypper/zypper_git.bb         |    4 +- meta/recipes-support/gnupg/gnupg_2.0.19.bb         |    6 +- meta/recipes-support/gpgme/gpgme_1.3.1.bb          |    7 +- meta/recipes-support/npth/npth_0.90.bb             |   17 ++++ meta/recipes-support/pth/pth_2.0.7.bb              |   12 +++-

 24 files changed, 469 insertions(+), 18 deletions(-)

 create mode 100644 meta/recipes-devtools/binutils/binutils/0001-PR-ld-13470.patch create mode 100644 meta/recipes-devtools/libtool/libtool/respect-fstack-protector.patch create mode 100644 meta/recipes-devtools/rpm/rpm/fstack-protector-configure-check.patch create mode 100644 meta/recipes-devtools/rpm/rpm/rpmatch.patch
 create mode 100644 meta/recipes-devtools/rpm/rpm/uclibc-support.patch
 create mode 100644 meta/recipes-extended/augeas/augeas/0001-Add-missing-argument-to-escape.patch create mode 100644 meta/recipes-extended/libzypp/libzypp/cstdio.patch
 create mode 100644 meta/recipes-extended/sat-solver/sat-solver/futimes.patch create mode 100644 meta/recipes-extended/zypper/zypper/rpmatch.patch
 create mode 100644 meta/recipes-support/npth/npth_0.90.bb

--
1.7.5.4

#18 lore raw
In reply to Khem Raj
Quoted 16 lines · Khem Raj

This patch now can compile a uclibc sato image using rpm as packaging backend Introduces variables into cmake class to control linker flags which was not available
Adds npth recipe. npth is next gen pth soon gnupg 2.1 will drop pth and move on to use npth, right now its only used in uclibc case conditionalize use of pth using libc overrides since pth is not compatible with uclibc

The following changes since commit 75a973328d50ef3c007edb7a471ea77fb97911ea:

kern-tools: anchor KMACHINE test (2012-06-08 11:56:21 +0100)

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib kraj/misc-updates
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/misc-updates

Quoted 11 lines

Khem Raj (16):
binutils_2.22: Backport to fix bogus textrels
pth: Mark incompatible with uclibc
libtool: Let -fstack-protector passed to link step
augeas: Fix compilation failure
cmake.bbclass: Add OECMAKE_C_LINK_FLAGS and OECMAKE_CXX_LINK_FLAGS
variables
task-self-hosted.bb,task-core-lsb.bb: Conditionalize pth inclusion
npth: Add recipe
gpgme: Depend on npth for uclibc
gnupg-2.0.19: Depend on npth for uclibc

I took the above patches.

Quoted 7 lines

rpm: Fix compilation on uclibc
rpm: Use link time check for libssp
sat-solver: Fix build on uclibc
libzypp: Fix build with uclibc
rpm: pass lrt and lpthread to link step explicitly for uclibc
zypper: Fix build on uclibc
libzypp: Define OECMAKE_CXX_LINK_FLAGS when compiling for uclibc

I haven't taken these yet as I want to get Mark's rpm update in, then see where we stand. I also was a little worried about the extra OECONF/TUNE pieces in the sat-solver patch. There wasn't any mention of that in the commit message...

Cheers,

Richard

author
#19 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Quoted 14 lines · Richard Purdie
Quoted 13 lines · Khem Raj

This patch now can compile a uclibc sato image using rpm as packaging backend Introduces variables into cmake class to control linker flags which was not available Adds npth recipe. npth is next gen pth soon gnupg 2.1 will drop pth and move on to use npth, right now its only used in uclibc case conditionalize use of pth using libc overrides since pth is not compatible with uclibc

The following changes since commit
75a973328d50ef3c007edb7a471ea77fb97911ea:

kern-tools: anchor KMACHINE test (2012-06-08 11:56:21 +0100)

Quoted 7 lines
Quoted 7 lines

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib
kraj/misc-updates
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/misc-updates

Khem Raj (16):

Quoted 16 lines
Quoted 7 lines

binutils_2.22: Backport to fix bogus textrels pth: Mark incompatible with uclibc libtool: Let -fstack-protector passed to link step augeas: Fix compilation failure cmake.bbclass: Add OECMAKE_C_LINK_FLAGS and OECMAKE_CXX_LINK_FLAGS variables task-self-hosted.bb,task-core-lsb.bb: Conditionalize pth inclusion npth: Add recipe gpgme: Depend on npth for uclibc gnupg-2.0.19: Depend on npth for uclibc

I took the above patches.

Quoted 5 lines

rpm: Fix compilation on uclibc rpm: Use link time check for libssp sat-solver: Fix build on uclibc libzypp: Fix build with uclibc rpm: pass lrt and lpthread to link step explicitly for uclibc zypper: Fix build on uclibc libzypp: Define OECMAKE_CXX_LINK_FLAGS when compiling for uclibc

Quoted 4 lines

I haven't taken these yet as I want to get Mark's rpm update in, then see where we stand. I also was a little worried about the extra OECONF/TUNE pieces in the sat-solver patch. There wasn't any mention of that in the commit message...

Thanks for looking into it. EXTRA_OECMAKE change should not be required there. however appending to TUNE_CCARGS is needed for uclibc since it does not have
same qsort expectations that sat-solver wants. I can make it apply only for uclibc here.

I will redo this patch

Quoted 9 lines

Cheers,

Richard

_______________________________________________ Openembedded-core mailing list [email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk/V+nsACgkQuwUzVZGdMxSbgACdG7VHCB6xFFHiyd6rW4/Y7HsL CxYAnAhHzM7ieDonDCLNsYMYXAT+HAFs
=SOkF
-----END PGP SIGNATURE-----

author
#20 lore raw

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Quoted 15 lines · Khem Raj
Quoted 14 lines · Richard Purdie
Quoted 13 lines · Khem Raj

This patch now can compile a uclibc sato image using rpm as packaging backend Introduces variables into cmake class to control linker flags which was not available Adds npth recipe. npth is next gen pth soon gnupg 2.1 will drop pth and move on to use npth, right now its only used in uclibc case conditionalize use of pth using libc overrides since pth is not compatible with uclibc

The following changes since commit
75a973328d50ef3c007edb7a471ea77fb97911ea:

kern-tools: anchor KMACHINE test (2012-06-08 11:56:21 +0100)

Quoted 9 lines
Quoted 9 lines
Quoted 9 lines

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib
kraj/misc-updates
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/misc-updates

Khem Raj (16):

Quoted 21 lines
Quoted 16 lines
Quoted 7 lines

binutils_2.22: Backport to fix bogus textrels pth: Mark incompatible with uclibc libtool: Let -fstack-protector passed to link step augeas: Fix compilation failure cmake.bbclass:
Add OECMAKE_C_LINK_FLAGS and OECMAKE_CXX_LINK_FLAGS variables task-self-hosted.bb,task-core-lsb.bb: Conditionalize pth inclusion npth: Add recipe gpgme: Depend on npth for uclibc gnupg-2.0.19: Depend on npth for uclibc

I took the above patches.

Quoted 5 lines

rpm: Fix compilation on uclibc rpm: Use link time check for libssp sat-solver: Fix build on uclibc libzypp: Fix build with uclibc rpm: pass lrt and lpthread to link step explicitly for uclibc zypper: Fix build on uclibc libzypp: Define OECMAKE_CXX_LINK_FLAGS when compiling for uclibc

Quoted 4 lines

I haven't taken these yet as I want to get Mark's rpm update in, then see where we stand. I also was a little worried about the extra OECONF/TUNE pieces in the sat-solver patch. There wasn't any mention of that in the commit message...

Quoted 7 lines

Thanks for looking into it. EXTRA_OECMAKE change should not be required there. however appending to TUNE_CCARGS is needed for uclibc since it does not have same qsort expectations that sat-solver wants. I can make it apply only for uclibc here.

I will redo this patch

I have redone this patch as said and updated the pull tree. Additionally I have added a patch to cache guint32/guint64 on x86_64/uclibc otherwise glib-2.32.x wont build on uclibc for x86_64

Quoted 11 lines
Quoted 11 lines

Cheers,

Richard

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk/WhQIACgkQuwUzVZGdMxT/5gCeNR+T0sYctIC6YnevtuZt8MAA tdUAniQnGkk/tjeSPZsXX8Nwh2CZUzYQ
=Dc0w
-----END PGP SIGNATURE-----

author
#21 lore raw
Quoted 3 lines · Khem Raj

I have redone this patch as said and updated the pull tree. Additionally I have added a patch to cache guint32/guint64 on x86_64/uclibc otherwise glib-2.32.x wont build on uclibc for x86_64

Richard

I have now rebased the patches in pull tree on top of rpm upgrade.

-Khem