Skip to contentSkip to conversation

meta: 4 fixes

PATCH In review Robert Yang 3 participants 10 messages Jan 19, 2015 – Jan 20, 2015

lore
Share & tools
lore
#0 lore raw

cover meta: 4 fixes

Hello,

I had sent the patch "cpan-base.bbclass: avoid using xxx" before, now send it again. The other 3 are new.

// Robert

The following changes since commit eaea05c88661a88a89fa6b139f7e6b243155d492:

depmodwrapper-cross: Update to use STAGING_KERNEL_BUILDDIR (2015-01-17 17:05:25 +0000)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib rbt/4fixes
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/4fixes

Robert Yang (4):
cpan-base.bbclass: avoid using immmediate assignment for PERLLIBDIRS
python3: fix for cross compiling
gnutls: fix sed command
perf: fix for rebuilding

 meta/classes/cpan-base.bbclass                     |    4 +-
 .../python/python3-native_3.3.3.bb                 |    2 +
 ...p.py-check-cross_compiling-when-get-FLAGS.patch |   50 ++++++++++++++++++
 .../sysconfig.py-add-_PYTHON_PROJECT_SRC.patch     |   54 ++++++++++++++++++++
 meta/recipes-devtools/python/python3_3.3.3.bb      |   10 ++--
 meta/recipes-kernel/perf/perf.bb                   |    3 ++
 .../gnutls/configure.ac-fix-sed-command.patch      |   31 +++++++++++
 meta/recipes-support/gnutls/gnutls_3.3.11.bb       |    1 +
 8 files changed, 149 insertions(+), 6 deletions(-)
 create mode 100644 meta/recipes-devtools/python/python3/setup.py-check-cross_compiling-when-get-FLAGS.patch
 create mode 100644 meta/recipes-devtools/python/python3/sysconfig.py-add-_PYTHON_PROJECT_SRC.patch
 create mode 100644 meta/recipes-support/gnutls/gnutls/configure.ac-fix-sed-command.patch
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/4 cpan-base.bbclass: avoid using immmediate assignment for PERLLIBDIRS

The immediate assignment:
PERLLIBDIRS := "${@perl_get_libdirs(d)}"

may cause PERLLIBDIRS get wrong values when multilib, for example, when the default target arch is x86_64 (/usr/lib64), and mutilib is lib32 (/usr/lib), the ":=" would cause lib32-BPN's PERLLIBDIRS to be /usr/lib64, and lead to build errors.

---
 meta/classes/cpan-base.bbclass |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/classes/cpan-base.bbclass +2 -2
index d9817ba..0860bee 100644
@@ -42,8 +42,8 @@ def is_target(d):
         return "yes"
     return "no"
 
-PERLLIBDIRS := "${@perl_get_libdirs(d)}"
-PERLVERSION := "${@get_perl_version(d)}"
+PERLLIBDIRS = "${@perl_get_libdirs(d)}"
+PERLVERSION = "${@get_perl_version(d)}"
 PERLVERSION[vardepvalue] = ""
 
 FILES_${PN}-dbg += "${PERLLIBDIRS}/auto/*/.debug \
Signature · 1 line
1.7.9.5
#2 lore raw

PATCH 2/4 python3: fix for cross compiling

In reply to Robert Yang

Fixed:
* python3 has introduced _PYTHON_PROJECT_BASE which is used for separate B and S, but it doesn't work when compile Modules, the target python3 runs python3-native's sysconfig to get srcdir which is the native's, there would be errors when native's srcdir has been removed, add _PYTHON_PROJECT_SRC to fix the problem.

* Check cross_compiling when get FLAGS

---
 .../python/python3-native_3.3.3.bb                 |    2 +
 ...p.py-check-cross_compiling-when-get-FLAGS.patch |   50 ++++++++++++++++++
 .../sysconfig.py-add-_PYTHON_PROJECT_SRC.patch     |   54 ++++++++++++++++++++
 meta/recipes-devtools/python/python3_3.3.3.bb      |   10 ++--
 4 files changed, 112 insertions(+), 4 deletions(-)
 create mode 100644 meta/recipes-devtools/python/python3/setup.py-check-cross_compiling-when-get-FLAGS.patch
 create mode 100644 meta/recipes-devtools/python/python3/sysconfig.py-add-_PYTHON_PROJECT_SRC.patch
meta/recipes-devtools/python/python3-native_3.3.3.bb +2 -0
index 9ae2a0b..73ce095 100644
@@ -27,6 +27,8 @@ file://fix-ast.h-dependency.patch \
 file://makerace.patch \
 ${DISTRO_SRC_URI} \
 file://python3-fix-build-error-with-Readline-6.3.patch \
+file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \
+file://setup.py-check-cross_compiling-when-get-FLAGS.patch \
 "
 SRC_URI[md5sum] = "f3ebe34d4d8695bf889279b54673e10c"
 SRC_URI[sha256sum] = "e526e9b612f623888364d30cc9f3dfc34dcef39065c713bdbcddf47df84d8dcb"
meta/recipes-devtools/python/python3/setup.py-check-cross_compiling-when-get-FLAGS.patch new file +50 -0

50 lines not on this page · raw message

meta/recipes-devtools/python/python3/sysconfig.py-add-_PYTHON_PROJECT_SRC.patch new file +54 -0

54 lines not on this page · raw message

meta/recipes-devtools/python/python3_3.3.3.bb +6 -4
index efa98c0..6147408 100644
@@ -39,6 +39,8 @@ SRC_URI += "\
             file://avoid-ncursesw-include-path.patch \
             file://python3-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \
             file://python3-setup.py-no-host-headers-libs.patch \
+            file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \
+            file://setup.py-check-cross_compiling-when-get-FLAGS.patch \
            "
 SRC_URI[md5sum] = "f3ebe34d4d8695bf889279b54673e10c"
 SRC_URI[sha256sum] = "e526e9b612f623888364d30cc9f3dfc34dcef39065c713bdbcddf47df84d8dcb"
@@ -66,6 +68,10 @@ TARGET_CC_ARCH += "-DNDEBUG -fno-inline"
 EXTRA_OEMAKE += "CROSS_COMPILE=yes"
 EXTRA_OECONF += "CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/"
 
+export CROSS_COMPILE = "${TARGET_PREFIX}"
+export _PYTHON_PROJECT_BASE = "${B}"
+export _PYTHON_PROJECT_SRC = "${S}"
+
 # No ctypes option for python 3
 PYTHONLSBOPTS = ""
 
@@ -107,8 +113,6 @@ do_compile() {
 	# then call do_install twice we get Makefile.orig == Makefile.sysroot
 	install -m 0644 Makefile Makefile.sysroot
 
-	export CROSS_COMPILE="${TARGET_PREFIX}"
-	export PYTHONBUILDDIR="${B}"
 	oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
 		HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
 		STAGING_LIBDIR=${STAGING_LIBDIR} \
@@ -135,8 +139,6 @@ do_install() {
 	# go to ${D}${STAGING...}/...
 	install -m 0644 Makefile.orig Makefile
 
-	export CROSS_COMPILE="${TARGET_PREFIX}"
-	export PYTHONBUILDDIR="${B}"
 	install -d ${D}${libdir}/pkgconfig
 	install -d ${D}${libdir}/python${PYTHON_MAJMIN}/config
 
Signature · 1 line
1.7.9.5
#3 lore raw

PATCH 3/4 gnutls: fix sed command

In reply to Robert Yang

The "sed 's/.bak//g'" matchs "bitbake", which would cause strange errors when the S contains "bitbake", fix to "sed 's/\.bak$//'`"

---
 .../gnutls/configure.ac-fix-sed-command.patch      |   31 ++++++++++++++++++++
 meta/recipes-support/gnutls/gnutls_3.3.11.bb       |    1 +
 2 files changed, 32 insertions(+)
 create mode 100644 meta/recipes-support/gnutls/gnutls/configure.ac-fix-sed-command.patch
meta/recipes-support/gnutls/gnutls/configure.ac-fix-sed-command.patch new file +31 -0
new file mode 100644
index 0000000..44a9934
@@ -0,0 +1,31 @@
+From eb93aa7b986c84da60a3db40afb29d1a70c50223 Mon Sep 17 00:00:00 2001
+From: Robert Yang <[email protected]>
+Date: Sat, 17 Jan 2015 17:02:15 +0000
+Subject: [PATCH] configure.ac: fix sed command
+
+The "sed 's/.bak//g'" matchs "bitbake", which would cause strange errors
+when the S contains "bitbake", fix to "sed 's/\.bak$//'`"
+
+Upstream-Status: Pending
+
+Signed-off-by: Robert Yang <[email protected]>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index c6818a0..1c4582d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -466,7 +466,7 @@ if test "$NEED_LIBOPTS_DIR" = "true";then
+ 	dnl replace libopts-generated files with distributed backups, if present
+ 	missing_baks=
+ 	for i in ${srcdir}/src/*-args.c.bak ${srcdir}/src/*-args.h.bak; do
+-		nam=`echo $i|sed 's/.bak//g'`
++		nam=`echo $i|sed 's/\.bak$//'`
+ 		if test -f $i;then
+ 			cp -f $i $nam
+ 		else
+-- 
+2.0.1
+
meta/recipes-support/gnutls/gnutls_3.3.11.bb +1 -0
index 1cf3a74..7ad462a 100644
@@ -3,6 +3,7 @@ require gnutls.inc
 PR = "r1"
 
 SRC_URI += "file://correct_rpl_gettimeofday_signature.patch \
+            file://configure.ac-fix-sed-command.patch \
            "
 SRC_URI[md5sum] = "b657e3010c10cae2244e7ce79ee3d446"
 SRC_URI[sha256sum] = "aef28d629b6ba824bd435f9b23506525e657e3746d4aa021296b13cbaaa6ae71"
Signature · 1 line
1.7.9.5
#4 lore raw

PATCH 4/4 perf: fix for rebuilding

In reply to Robert Yang

Fix for rebuilding error:
make[3]: *** No rule to make target /path/to/sysroots/qemuarm64/usr/src/kernel/tools/lib/traceevent//trace-seq.c', needed by .trace-seq.d'. Stop.
make[2]: *** [sub-make] Error 2

---
 meta/recipes-kernel/perf/perf.bb |    3 +++
 1 file changed, 3 insertions(+)
meta/recipes-kernel/perf/perf.bb +3 -0
index bd57c6c..ab7075e 100644
@@ -115,6 +115,9 @@ do_install() {
 }
 
 do_configure_prepend () {
+    # Fix for rebuilding
+    rm -rf ${B}/.*.d
+
     #kernels before 3.1 do not support WERROR env variable
     sed -i 's,-Werror ,,' ${S}/tools/perf/Makefile
     if [ -e "${S}/tools/perf/config/Makefile" ]; then
Signature · 1 line
1.7.9.5
#5 lore raw

Re: [PATCH 4/4] perf: fix for rebuilding

meta/recipes-kernel/perf/perf.bb do_install() { · line 119

Quoted 4 lines · Robert Yang

do_configure_prepend () {

meta/recipes-kernel/perf/perf.bb +2 -0
+    # Fix for rebuilding
+    rm -rf ${B}/.*.d

As $B != $S, could you not just delete $B entirely and re-create it (as autotools.bbclass does) in do_configure()?

Ross

#6 lore raw

Re: [PATCH 4/4] perf: fix for rebuilding

In reply to Robert Yang
Quoted 2 lines · Robert Yang

Fix for rebuilding error:
make[3]: *** No rule to make target `/path/to/sysroots/qemuarm64/usr/src/kernel/tools/lib/traceevent//trace-seq.c',

The kernel source is no longer in this location .. so at a minimum the header needs to be updated to log the work-shared directory .. and better, make sure that this is still happening with the latest master changes.

Bruce

Quoted 30 lines

needed by `.trace-seq.d'. Stop.
make[2]: *** [sub-make] Error 2

---
 meta/recipes-kernel/perf/perf.bb |    3 +++
 1 file changed, 3 insertions(+)
meta/recipes-kernel/perf/perf.bb +3 -1
index bd57c6c..ab7075e 100644
@@ -115,6 +115,9 @@ do_install() {
 }
 
 do_configure_prepend () {
+    # Fix for rebuilding
+    rm -rf ${B}/.*.d
+
     #kernels before 3.1 do not support WERROR env variable
     sed -i 's,-Werror ,,' ${S}/tools/perf/Makefile
     if [ -e "${S}/tools/perf/config/Makefile" ]; then
--

1.7.9.5

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

Signature · 2 lines
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"
#7 lore raw

Re: [PATCH 4/4] perf: fix for rebuilding

Quoted 6 lines · Bruce Ashfield

The kernel source is no longer in this location .. so at a minimum the header
needs to be updated to log the work-shared directory .. and better, make sure
that this is still happening with the latest master changes.

As I understand it the bug is stale .d files being used to add dependencies, which refer to stale paths instead of being re-generated. This is why we encourage S!=B with deletion of B when starting builds.

Ross

#8 lore raw

Re: [PATCH 4/4] perf: fix for rebuilding

Quoted 4 lines · Ross

On 20 January 2015 at 16:01, Bruce Ashfield <[email protected] <mailto:[email protected]>> wrote:

Quoted 8 lines

The kernel source is no longer in this location .. so at a minimum the header needs to be updated to log the work-shared directory .. and better, make sure that this is still happening with the latest master changes.

As I understand it the bug is stale .d files being used to add dependencies, which refer to stale paths instead of being re-generated. This is why we encourage S!=B with deletion of B when starting builds.

Yes, you are right, sounds good, I will update the patch about 2 hours later.

// Robert

Quoted 2 lines

Ross

#9 lore raw

Re: [PATCH 4/4] perf: fix for rebuilding

In reply to Burton, Ross
Quoted 4 lines · Ross

On 20 January 2015 at 16:01, Bruce Ashfield <[email protected] <mailto:[email protected]>> wrote:

Quoted 8 lines

The kernel source is no longer in this location .. so at a minimum the header needs to be updated to log the work-shared directory .. and better, make sure that this is still happening with the latest master changes.

As I understand it the bug is stale .d files being used to add dependencies, which refer to stale paths instead of being re-generated. This is why we encourage S!=B with deletion of B when starting builds.

Updated in the repo:

git://git.openembedded.org/openembedded-core-contrib rbt/4fixes

meta/recipes-kernel/perf/perf.bb +4 -0
index bd57c6c..6925eb2 100644
@@ -115,6 +115,10 @@ do_install() {
 }
 
 do_configure_prepend () {
+    # Fix for rebuilding
+    rm -rf ${B}/
+    mkdir ${B}/
+
     #kernels before 3.1 do not support WERROR env variable
     sed -i 's,-Werror ,,' ${S}/tools/perf/Makefile
     if [ -e "${S}/tools/perf/config/Makefile" ]; then

// Robert

Quoted 2 lines

Ross