pseudo 1.4.2: linkat() and bitrot cleanup
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
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
@@ -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
@@ -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
@@ -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
@@ -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
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
Signed-off-by Peter Seebach <[email protected]>--- 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@@ -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} distcleanmeta/recipes-devtools/pseudo/pseudo_1.4.1.bb deleted +0
-8@@ -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@@ -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@@ -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"