Skip to contentSkip to conversation

pseudo 1.4.2: linkat() and bitrot cleanup

PATCH In review Peter Seebach 2 participants 3 messages Dec 15, 2012 – Dec 24, 2012

lore
Share & tools
lore
#0 lore raw

cover pseudo 1.4.2: linkat() and bitrot cleanup

The major change here is the addition of linkat(), and the change of link() to be written in terms of it (for consistency with othe *at() calls).

I checked this out on Darwin (which hasn't got *at() functions) and picked off a couple little bits of bitrot.

The other change is that the WR build system turns out to have reasons to, in some cases, actually use a lib64 directory for things like the host sqlite3 library. So I cleaned up the computation of the sqlite library path; of course, this then broke oe-core on 64-bit hosts, but I'd anticipated that, and pseudo's configure can take an explicit full path to libsqlite3.a if it's not in a directory with the same name as $(LIB). Did that to the various 32-bit and 64-bit forms. Note that on 64-bit hosts, this means that 32-bit libpseudo (if it's being built) is being configured with the explicit path to our 64-bit libsqlite3.a; that's okay, because we only build libpseudo for the 32-bit case. Confirmed that, with NO32LIBS = 0, I get both 32-bit and 64-bit libpseudo.

I did have build failures in perl-native when I was first testing this, but updating oe-core made them go away, so it was probably just my tree being pretty old before I started on the pull request.

The tarball is already on yoctoproject.org (thanks, pidge!) and I have verified that the build still succeeds.

The following changes since commit ad79360c1d992830d4f0e06a3bbf0622658c0540:
Mark Hatle (1):
populate_sdk_base: Add perl modules as needing to be relocated

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib seebs/pseudo_1_4_2
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=seebs/pseudo_1_4_2

Peter Seebach (1):
pseudo_git.bb and friends: Update to 1.4.2.

 meta/recipes-devtools/pseudo/pseudo.inc      |    9 +++++----
 meta/recipes-devtools/pseudo/pseudo_1.4.1.bb |    8 --------
 meta/recipes-devtools/pseudo/pseudo_1.4.2.bb |    8 ++++++++
 meta/recipes-devtools/pseudo/pseudo_git.bb   |    6 +++---
 4 files changed, 16 insertions(+), 15 deletions(-)
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo_1.4.1.bb
 create mode 100644 meta/recipes-devtools/pseudo/pseudo_1.4.2.bb
#1 lore raw

PATCH 1/1 pseudo_git.bb and friends: Update to 1.4.2.

Pseudo 1.4.2 adds a linkat() wrapper, needed for coreutils to work on some newer systems. It also changes the way $(LIB) is used with enable-static-sqlite, because this was broken for some 64-bit builds (not in yocto, though). As a side-effect, the pseudo.inc recipe has to be altered to use --with-static-sqlite=(explicit path), because the default is that 64-bit pseudo would use lib64/libsqlite3.a.

Note that the same --with-static-sqlite= is used for both 64-bit and 32-bit builds on 64-bit systems with NO32LIBS = 0. This sounds scary, but it's harmless; we only build the library for 32-bit, and the library never actually uses the sqlite library; it just has to be specfied for configure to complete. (This is going to become a low-priority bug report for pseudo: It should have a configuration option for "library only, and don't worry about sqlite.")

---
 meta/recipes-devtools/pseudo/pseudo.inc      |    9 +++++----
 meta/recipes-devtools/pseudo/pseudo_1.4.1.bb |    8 --------
 meta/recipes-devtools/pseudo/pseudo_1.4.2.bb |    8 ++++++++
 meta/recipes-devtools/pseudo/pseudo_git.bb   |    6 +++---
 4 files changed, 16 insertions(+), 15 deletions(-)
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo_1.4.1.bb
 create mode 100644 meta/recipes-devtools/pseudo/pseudo_1.4.2.bb
meta/recipes-devtools/pseudo/pseudo.inc +5 -4
index 98f706c..e38bec8 100644
@@ -30,9 +30,9 @@ NO32LIBS ??= "1"
 # Compile for the local machine arch...
 do_compile () {
 	if [ "${SITEINFO_BITS}" = "64" ]; then
-	  ${S}/configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite --without-rpath
+	  ${S}/configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-static-sqlite=${prefix}/lib/libsqlite3.a --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --without-rpath
 	else
-	  ${S}/configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite --without-rpath
+	  ${S}/configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-static-sqlite=${prefix}/lib/libsqlite3.a --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --without-rpath
 	fi
 	oe_runmake ${MAKEOPTS}
 }
@@ -51,7 +51,7 @@ do_compile_prepend_class-native () {
 		# built this will fail and be ignored.
 		make ${MAKEOPTS} distclean || :
 
-		./configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --bits=32 --without-rpath
+		./configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-static-sqlite=${prefix}/lib/libsqlite3.a --bits=32 --without-rpath
 		oe_runmake ${MAKEOPTS} libpseudo
 		# prevent it from removing the lib, but remove everything else
 		make 'LIB=foo' ${MAKEOPTS} distclean 
@@ -63,7 +63,8 @@ do_compile_prepend_class-nativesdk () {
 		# We need the 32-bit libpseudo on a 64-bit machine...
                 # ... and we really, really, hope that the native host is
                 # x86, or else --bits may not work.
-		./configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --bits=32 --without-rpath
+
+		./configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-static-sqlite=${prefix}/lib/libsqlite3.a --bits=32 --without-rpath
 		oe_runmake ${MAKEOPTS} libpseudo
 		# prevent it from removing the lib, but remove everything else
 		make 'LIB=foo' ${MAKEOPTS} distclean 
meta/recipes-devtools/pseudo/pseudo_1.4.1.bb deleted +0 -8
deleted file mode 100644
index 70fe9c0..0000000
@@ -1,8 +0,0 @@
-require pseudo.inc
-
-PR = "r13"
-
-SRC_URI = "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2"
-
-SRC_URI[md5sum] = "b49bb87c7e1de33f37fea479ddb99dca"
-SRC_URI[sha256sum] = "ae4bfba2bd1e3954ea8f83bf06571ee4958bf7623e4fa897056281dddfe6446d"
meta/recipes-devtools/pseudo/pseudo_1.4.2.bb new file +8 -0
new file mode 100644
index 0000000..fb0d178
@@ -0,0 +1,8 @@
+require pseudo.inc
+
+PR = "r14"
+
+SRC_URI = "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "44270e55c3b1323a5f0a1473ecb708a6"
+SRC_URI[sha256sum] = "c848f5555162e4d3eeed99b0993c794e625714b876315c24273490e0376ce3a8"
meta/recipes-devtools/pseudo/pseudo_git.bb +3 -3
index e394ffb..5d5ff8c 100644
@@ -1,8 +1,8 @@
 require pseudo.inc
 
-SRCREV = "398a264490713c912b4ce465251a8a82a7905f45"
-PV = "1.4.1+git${SRCPV}"
-PR = "r28"
+SRCREV = "2f56acf04e85cfd617eaded954c1ce40403d7f66"
+PV = "1.4.2+git${SRCPV}"
+PR = "r29"
 
 DEFAULT_PREFERENCE = "-1"
 
Signature · 1 line
1.7.0.4
#2 lore raw

Re: [PATCH 1/1] pseudo_git.bb and friends: Update to 1.4.2.

Quoted 7 lines · Peter Seebach

Pseudo 1.4.2 adds a linkat() wrapper, needed for coreutils to work on some newer systems. It also changes the way $(LIB) is used with enable-static-sqlite, because this was broken for some 64-bit builds (not in yocto, though). As a side-effect, the pseudo.inc recipe has to be altered to use --with-static-sqlite=(explicit path), because the default is that 64-bit pseudo would use lib64/libsqlite3.a.

Quoted 8 lines

Note that the same --with-static-sqlite= is used for both 64-bit and 32-bit builds on 64-bit systems with NO32LIBS = 0. This sounds scary, but it's harmless; we only build the library for 32-bit, and the library never actually uses the sqlite library; it just has to be specfied for configure to complete. (This is going to become a low-priority bug report for pseudo: It should have a configuration option for "library only, and don't worry about sqlite.")

This patch continues to have issues after I fixed up the pathes. There is still and issue when build for a 32bit host, works for 64bit, but not 32bit. I will look into this later in the week, but this patch is on hold for now.

Sau!

Quoted 90 lines
---
  meta/recipes-devtools/pseudo/pseudo.inc      |    9 +++++----
  meta/recipes-devtools/pseudo/pseudo_1.4.1.bb |    8 --------
  meta/recipes-devtools/pseudo/pseudo_1.4.2.bb |    8 ++++++++
  meta/recipes-devtools/pseudo/pseudo_git.bb   |    6 +++---
  4 files changed, 16 insertions(+), 15 deletions(-)

delete mode 100644 meta/recipes-devtools/pseudo/pseudo_1.4.1.bb create mode 100644 meta/recipes-devtools/pseudo/pseudo_1.4.2.bb

meta/recipes-devtools/pseudo/pseudo.inc +5 -4
index 98f706c..e38bec8 100644
@@ -30,9 +30,9 @@ NO32LIBS ??= "1"
  # Compile for the local machine arch...
  do_compile () {
  	if [ "${SITEINFO_BITS}" = "64" ]; then
-	  ${S}/configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite --without-rpath
+	  ${S}/configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-static-sqlite=${prefix}/lib/libsqlite3.a --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --without-rpath
  	else
-	  ${S}/configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite --without-rpath
+	  ${S}/configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-static-sqlite=${prefix}/lib/libsqlite3.a --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --without-rpath
  	fi
  	oe_runmake ${MAKEOPTS}
  }
@@ -51,7 +51,7 @@ do_compile_prepend_class-native () {
  		# built this will fail and be ignored.
  		make ${MAKEOPTS} distclean || :
 
-		./configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --bits=32 --without-rpath
+		./configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-static-sqlite=${prefix}/lib/libsqlite3.a --bits=32 --without-rpath
  		oe_runmake ${MAKEOPTS} libpseudo
  		# prevent it from removing the lib, but remove everything else
  		make 'LIB=foo' ${MAKEOPTS} distclean
@@ -63,7 +63,8 @@ do_compile_prepend_class-nativesdk () {
  		# We need the 32-bit libpseudo on a 64-bit machine...
                  # ... and we really, really, hope that the native host is
                  # x86, or else --bits may not work.
-		./configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --bits=32 --without-rpath
+
+		./configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-static-sqlite=${prefix}/lib/libsqlite3.a --bits=32 --without-rpath
  		oe_runmake ${MAKEOPTS} libpseudo
  		# prevent it from removing the lib, but remove everything else
  		make 'LIB=foo' ${MAKEOPTS} distclean
meta/recipes-devtools/pseudo/pseudo_1.4.1.bb deleted +0 -8
deleted file mode 100644
index 70fe9c0..0000000
@@ -1,8 +0,0 @@
-require pseudo.inc
-
-PR = "r13"
-
-SRC_URI = "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2"
-
-SRC_URI[md5sum] = "b49bb87c7e1de33f37fea479ddb99dca"
-SRC_URI[sha256sum] = "ae4bfba2bd1e3954ea8f83bf06571ee4958bf7623e4fa897056281dddfe6446d"
meta/recipes-devtools/pseudo/pseudo_1.4.2.bb new file +8 -0
new file mode 100644
index 0000000..fb0d178
@@ -0,0 +1,8 @@
+require pseudo.inc
+
+PR = "r14"
+
+SRC_URI = "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "44270e55c3b1323a5f0a1473ecb708a6"
+SRC_URI[sha256sum] = "c848f5555162e4d3eeed99b0993c794e625714b876315c24273490e0376ce3a8"
meta/recipes-devtools/pseudo/pseudo_git.bb +3 -3
index e394ffb..5d5ff8c 100644
@@ -1,8 +1,8 @@
  require pseudo.inc
 
-SRCREV = "398a264490713c912b4ce465251a8a82a7905f45"
-PV = "1.4.1+git${SRCPV}"
-PR = "r28"
+SRCREV = "2f56acf04e85cfd617eaded954c1ce40403d7f66"
+PV = "1.4.2+git${SRCPV}"
+PR = "r29"
 
  DEFAULT_PREFERENCE = "-1"