Skip to contentSkip to conversation

Update pseudo to 1.4 (target improvements)

PATCH Applied Peter Seebach 3 participants 4 messages Jul 27, 2012 – Aug 1, 2012

lore
Share & tools
lore
#0 lore raw

cover Update pseudo to 1.4 (target improvements)

Someone managed to do something which caused pseudo to try to build on ARM, where -m32 doesn't work, and I looked at the sort of half-baked --arch fix in tree, concluded I hated it, and redid it. So as of 1.4, pseudo now has support for a --cflags configure option, so the build system can pass in its own cflags instead of relying on pseudo being able to guess the correct way to change bit widths around.

It still relies on the guesswork for the native build, but at least so far that's always x86. And at least we now have the correct tool so that, if we ever do develop a clean way to create the cflags for a different width, we'll be able to pass them in without major alterations.

I also changed the upstream to point to the yoctoproject.org git server, which I've been using as the primary upstream for a couple of months now. Verified that at least pseudo-native can build from both the _git and 1.4 recipes.

The following changes since commit 651b223c5fc93c7504e304e954b9ae4640ed47c6:
Paul Eggleton (1):
usbutils: avoid dependency on bash

are available in the git repository at:

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

Peter Seebach (1):
pseudo.inc/pseudo_1.4.bb: update pseudo to 1.4

 meta/recipes-devtools/pseudo/pseudo.inc      |   12 +++++++++---
 meta/recipes-devtools/pseudo/pseudo_1.3.1.bb |    8 --------
 meta/recipes-devtools/pseudo/pseudo_1.4.bb   |    8 ++++++++
 meta/recipes-devtools/pseudo/pseudo_git.bb   |    8 ++++----
 4 files changed, 21 insertions(+), 15 deletions(-)
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo_1.3.1.bb
 create mode 100644 meta/recipes-devtools/pseudo/pseudo_1.4.bb
#1 lore raw

PATCH 1/1 pseudo.inc/pseudo_1.4.bb: update pseudo to 1.4

This update replaces the half-baked --arch logic with the use of $CFLAGS to pick compiler flags, on the grounds that it makes a lot more sense for the build system to pick flags than for pseudo to try to guess what they should be; this should allow pseudo to at least compile for targets, and possibly run on them.

This doesn't solve the problem of guessing how to forcibly build the 32-bit variant on hosts, because we really don't have a general solution for that. There's no idiom for "given this set of compiler flags and this architecture, what flags would you use to request a 32-bit compile instead?" So we basically ignore that for now. If someone comes along trying to use the build system to build pseudo-native on a 64-bit host that also supports 32-bit binaries and isn't x86, we will revisit this.

---
 meta/recipes-devtools/pseudo/pseudo.inc      |   12 +++++++++---
 meta/recipes-devtools/pseudo/pseudo_1.3.1.bb |    8 --------
 meta/recipes-devtools/pseudo/pseudo_1.4.bb   |    8 ++++++++
 meta/recipes-devtools/pseudo/pseudo_git.bb   |    8 ++++----
 4 files changed, 21 insertions(+), 15 deletions(-)
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo_1.3.1.bb
 create mode 100644 meta/recipes-devtools/pseudo/pseudo_1.4.bb
meta/recipes-devtools/pseudo/pseudo.inc +9 -3
index 8798018..ac898d2 100644
@@ -3,7 +3,7 @@
 # BBFETCH2=True PSEUDO_BUILD=1 ../bitbake/bin/bitbake pseudo-native [-c CMD]
 
 DESCRIPTION = "Pseudo gives fake root capabilities to a normal user"
-HOMEPAGE = "http://wiki.github.com/wrpseudo/pseudo/"
+HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/pseudo"
 LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad"
 SECTION = "base"
 LICENSE = "LGPL2.1"
@@ -11,6 +11,8 @@ DEPENDS = "sqlite3"
 
 SRC_URI_append_virtclass-nativesdk = " file://symver.patch"
 
+SRC_URI_append_virtclass-native = " file://symver.patch"
+
 FILES_${PN} = "${libdir}/pseudo/lib*/libpseudo.so ${bindir}/* ${localstatedir}/pseudo ${prefix}/var/pseudo"
 FILES_${PN}-dbg += "${libdir}/pseudo/lib*/.debug"
 PROVIDES += "virtual/fakeroot"
@@ -28,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} --bits=${SITEINFO_BITS} --enable-static-sqlite --without-rpath
+	  ${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
 	else
-	  ${S}/configure --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --bits=${SITEINFO_BITS} --enable-static-sqlite --without-rpath
+	  ${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
 	fi
 	oe_runmake ${MAKEOPTS}
 }
@@ -41,6 +43,8 @@ do_compile () {
 do_compile_prepend_virtclass-native () {
 	if [ "${SITEINFO_BITS}" = "64" -a -e "/usr/include/gnu/stubs-32.h" -a "${PN}" = "pseudo-native" -a "${NO32LIBS}" != "1" ]; then
 		# 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
 		oe_runmake ${MAKEOPTS} libpseudo
 		# prevent it from removing the lib, but remove everything else
@@ -51,6 +55,8 @@ do_compile_prepend_virtclass-native () {
 do_compile_prepend_virtclass-nativesdk () {
 	if [ "${SITEINFO_BITS}" = "64" -a -e "/usr/include/gnu/stubs-32.h" -a "${PN}" = "pseudo-native" -a "${NO32LIBS}" != "1" ]; then
 		# 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
 		oe_runmake ${MAKEOPTS} libpseudo
 		# prevent it from removing the lib, but remove everything else
meta/recipes-devtools/pseudo/pseudo_1.3.1.bb deleted +0 -8
deleted file mode 100644
index d64e0e5..0000000
@@ -1,8 +0,0 @@
-require pseudo.inc
-
-PR = "r11"
-
-SRC_URI = "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2"
-
-SRC_URI[md5sum] = "aa7dbe925d065187833e1171746e9a94"
-SRC_URI[sha256sum] = "dc896c06b0f5bc253faaeb21ed78157db7ef7553e3ecae15a1eb6faf64942110"
meta/recipes-devtools/pseudo/pseudo_1.4.bb new file +8 -0
new file mode 100644
index 0000000..e1e1f6f
@@ -0,0 +1,8 @@
+require pseudo.inc
+
+PR = "r12"
+
+SRC_URI = "http://www.yoctoproject.org/downloads/${BPN}/${BPN}-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "bc04c6c9d13cfdb789ffc2f3cca9ab08"
+SRC_URI[sha256sum] = "147fa7b177061a145d330b9e159529a185be94550f123c6acb0d3b75d480c5b4"
meta/recipes-devtools/pseudo/pseudo_git.bb +4 -4
index 2f58072..27ae4b2 100644
@@ -1,12 +1,12 @@
 require pseudo.inc
 
-SRCREV = "2e0189ba5368b1e88d509d0ab82bccb15cfb3653"
-PV = "1.3.1+git${SRCPV}"
-PR = "r26"
+SRCREV = "9b792e4cb91bc22374f47d0b0902dbc4ecd7d6dd"
+PV = "1.4+git${SRCPV}"
+PR = "r27"
 
 DEFAULT_PREFERENCE = "-1"
 
-SRC_URI = "git://github.com/wrpseudo/pseudo.git;protocol=git"
+SRC_URI = "git://git.yoctoproject.org/pseudo;protocol=git"
 
 S = "${WORKDIR}/git"
 
Signature · 1 line
1.7.0.4
#2 lore raw

Re: [PATCH 1/1] pseudo.inc/pseudo_1.4.bb: update pseudo to 1.4

Quoted 16 lines · Peter Seebach

This update replaces the half-baked --arch logic with the use of $CFLAGS to pick compiler flags, on the grounds that it makes a lot more sense for the build system to pick flags than for pseudo to try to guess what they should be; this should allow pseudo to at least compile for targets, and possibly run on them.

This doesn't solve the problem of guessing how to forcibly build the 32-bit variant on hosts, because we really don't have a general solution for that. There's no idiom for "given this set of compiler flags and this architecture, what flags would you use to request a 32-bit compile instead?" So we basically ignore that for now. If someone comes along trying to use the build system to build pseudo-native on a 64-bit host that also supports 32-bit binaries and isn't x86, we will revisit this.

Quoted 8 lines
---
 meta/recipes-devtools/pseudo/pseudo.inc      |   12 +++++++++---
 meta/recipes-devtools/pseudo/pseudo_1.3.1.bb |    8 --------
 meta/recipes-devtools/pseudo/pseudo_1.4.bb   |    8 ++++++++
 meta/recipes-devtools/pseudo/pseudo_git.bb   |    8 ++++----
 4 files changed, 21 insertions(+), 15 deletions(-)
 delete mode 100644 meta/recipes-devtools/pseudo/pseudo_1.3.1.bb
 create mode 100644 meta/recipes-devtools/pseudo/pseudo_1.4.bb

Merged to master, thanks.

Richard

#3 lore raw
In reply to Peter Seebach
Quoted 6 lines · Peter Seebach

Someone managed to do something which caused pseudo to try to build on ARM, where -m32 doesn't work, and I looked at the sort of half-baked --arch fix in tree, concluded I hated it, and redid it. So as of 1.4, pseudo now has support for a --cflags configure option, so the build system can pass in its own cflags instead of relying on pseudo being able to guess the correct way to change bit widths around.

thats someone was me. Thanks for fixing it.