All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] changing staging layout based on MULTIMACH_TARGET_SYS
@ 2008-07-24  9:14 Koen Kooi
  2008-08-05 13:10 ` Florian Boor
  0 siblings, 1 reply; 3+ messages in thread
From: Koen Kooi @ 2008-07-24  9:14 UTC (permalink / raw)
  To: openembedded-devel

Hi,

Lately I've been encountering various build problems that are caused by 
OE lumping all my ARM build together in 
staging/arm-angstrom-linux-gnueabi, which isn't quite right for the 
following reasons:

* it mixes hard- and softfloat when doing armv5te and armv6 builds, 
which introduces subtle compilation problems. The resulting binaries 
work fine together on the target, as one would expect with EABI, but 
mixing them in staging leads to troubles

* In an ideal world we would use a single compiler version for all 
subarchs, but for arm we use 4.2.4 for armv4, armv4t, armv5te and armv6, 
but 4.3.1 for armv7a. C++ apps don't like that

* You can end up statically linking an armv6 lib into an armv5te application

The same problems exist for powerpc (ppc405 vs ppc603e).

The change basically boils down to this on bitbake.conf:

-STAGING_BINDIR_CROSS  = "${STAGING_DIR_NATIVE}${layout_bindir}/${HOST_SYS}"
+STAGING_BINDIR_CROSS  = 
"${STAGING_DIR_NATIVE}${layout_bindir}/${MULTIMACH_HOST_SYS}"

-STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}"
+STAGING_DIR_HOST = "${STAGING_DIR}/${MULTIMACH_HOST_SYS}"


-STAGING_DIR_TARGET = "${STAGING_DIR}/${TARGET_SYS}"
+STAGING_DIR_TARGET = "${STAGING_DIR}/${MULTIMACH_TARGET_SYS}"

Richard and I have been talking about this for a while now and the 
change landed in Poky last week.

This is however an ABI break for staging, so we need to do this as well:

--- conf/sanity.conf	2008/07/19 11:57:00	4892
+++ conf/sanity.conf	2008/07/19 11:59:42	4893
@@ -11,7 +11,7 @@
  # that breaks the format and have been previously discussed on the 
mailing list
  # with general agreement from the core team.
  #
-SANITY_ABI = "1"
+SANITY_ABI = "2"
  SANITY_ABIFILE = "${TMPDIR}/abi_version"

And as the diff points out, ABI breaks have to be discussed on the 
mailinglist.

I'd like to apply this right after the toolchain build order changes to 
minimize the number of full rebuilds people have to do.

Comments, objections?

regards,

Koen




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [RFC] changing staging layout based on MULTIMACH_TARGET_SYS
@ 2008-07-28 12:43 Marcin Juszkiewicz
  0 siblings, 0 replies; 3+ messages in thread
From: Marcin Juszkiewicz @ 2008-07-28 12:43 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 983 bytes --]

On Thursday 24 of July 2008 11:14:40 Koen Kooi wrote:

> * In an ideal world we would use a single compiler version for all
> subarchs, but for arm we use 4.2.4 for armv4, armv4t, armv5te and
> armv6, but 4.3.1 for armv7a. C++ apps don't like that

I just ended Poky build for armv4t/5te/6/7a with gcc 4.3.1 and poky-
image-sato got built for each architecture.

> Richard and I have been talking about this for a while now and the
> change landed in Poky last week.

> I'd like to apply this right after the toolchain build order changes
> to minimize the number of full rebuilds people have to do.

> Comments, objections?

+1 from me as this helps to get ARM builds more sane.

It will also break some recipes which works fine now. Thats due to fact 
that some stuff (like distutils from Python) use ARCH to create paths. 

Attached patch is fast hack to make Python buildable after staging 
changes. Would be nice if someone (Mickeyl?) would review it.


[-- Attachment #2: python-distutils-hack.patch --]
[-- Type: text/x-patch, Size: 4325 bytes --]

diff --git a/trunk/meta-extras/packages/python/python-native_2.5.1.bb b/trunk/meta-extras/packages/python/python-native_2.5.1.bb
index ea6e257..21e5c79 100644
--- a/trunk/meta-extras/packages/python/python-native_2.5.1.bb
+++ b/trunk/meta-extras/packages/python/python-native_2.5.1.bb
@@ -4,15 +4,19 @@ LICENSE = "PSF"
 SECTION = "devel/python"
 PRIORITY = "optional"
 DEPENDS = ""
-PR = "ml1"
+PR = "ml3"
 
 EXCLUDE_FROM_WORLD = "1"
 
-SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \
-           file://bindir-libdir.patch;patch=1 \
-           file://cross-distutils.patch;patch=1 \
-           file://dont-modify-shebang-line.patch;patch=1 \
-           file://default-is-optimized.patch;patch=1"
+SRC_URI = "\
+  http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.bz2 \
+  file://bindir-libdir.patch;patch=1 \
+  file://cross-distutils.patch;patch=1 \
+  file://dont-modify-shebang-line.patch;patch=1 \
+  file://default-is-optimized.patch;patch=1 \
+  file://catchup-with-swig.patch;patch=1 \
+  file://fix-staging.patch;patch=1 \
+"
 S = "${WORKDIR}/Python-${PV}"
 
 inherit autotools native
@@ -22,12 +26,8 @@ exec_prefix = "${STAGING_DIR_NATIVE}/${layout_exec_prefix}"
 
 EXTRA_OECONF = "--with-threads --with-pymalloc --with-cyclic-gc \
                 --without-cxx --with-signal-module --with-wctype-functions"
-EXTRA_OEMAKE = 'BUILD_SYS="" HOST_SYS=""'
-
-#do_configure() {
-#	# the autofoo stuff is too old to allow regenerating
-#	oe_runconf
-#}
+EXTRA_OEMAKE = 'BUILD_SYS="" HOST_SYS="" STAGING_LIBDIR=${STAGING_LIBDIR} \
+		STAGING_INCDIR=${STAGING_INCDIR}'
 
 do_stage_append() {
 	install -m 0755 Parser/pgen ${STAGING_BINDIR_NATIVE}/
diff --git a/trunk/meta-extras/packages/python/python-scons-native_0.97.bb b/trunk/meta-extras/packages/python/python-scons-native_0.97.bb
index 31bce55..45eeee1 100644
--- a/trunk/meta-extras/packages/python/python-scons-native_0.97.bb
+++ b/trunk/meta-extras/packages/python/python-scons-native_0.97.bb
@@ -4,6 +4,8 @@ DEPENDS = "python-native"
 RDEPENDS = ""
 
 do_stage() {
+        STAGING_LIBDIR=${STAGING_LIBDIR} \
+        STAGING_INCDIR=${STAGING_INCDIR} \
         BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
         ${STAGING_BINDIR}/python setup.py install --prefix=${STAGING_LIBDIR}/.. --install-data=${STAGING_DATADIR} || \
         oefatal "python setup.py install execution failed."
diff --git a/trunk/meta/classes/distutils.bbclass b/trunk/meta/classes/distutils.bbclass
index 7a18e71..ef761be 100644
--- a/trunk/meta/classes/distutils.bbclass
+++ b/trunk/meta/classes/distutils.bbclass
@@ -1,12 +1,16 @@
 inherit distutils-base
 
 distutils_do_compile() {
+	 STAGING_INCDIR=${STAGING_INCDIR} \
+	 STAGING_LIBDIR=${STAGING_LIBDIR} \
          BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
          ${STAGING_BINDIR_NATIVE}/python setup.py build || \
          oefatal "python setup.py build_ext execution failed."
 }
 
 distutils_stage_headers() {
+	 STAGING_INCDIR=${STAGING_INCDIR} \
+	 STAGING_LIBDIR=${STAGING_LIBDIR} \
         BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
         ${STAGING_BINDIR_NATIVE}/python setup.py install_headers --install-dir=${STAGING_INCDIR}/${PYTHON_DIR} || \
         oefatal "python setup.py install_headers execution failed."
@@ -14,6 +18,8 @@ distutils_stage_headers() {
 
 distutils_stage_all() {
         install -d ${STAGING_DIR_HOST}${layout_prefix}/${PYTHON_DIR}/site-packages
+	STAGING_INCDIR=${STAGING_INCDIR} \
+	STAGING_LIBDIR=${STAGING_LIBDIR} \
         PYTHONPATH=${STAGING_DIR_HOST}${layout_prefix}/${PYTHON_DIR}/site-packages \
         BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
         ${STAGING_BINDIR_NATIVE}/python setup.py install --prefix=${STAGING_DIR_HOST}${layout_prefix} --install-data=${STAGING_DATADIR} || \
@@ -22,6 +28,8 @@ distutils_stage_all() {
 
 distutils_do_install() {
         install -d ${D}${libdir}/${PYTHON_DIR}/site-packages
+	STAGING_INCDIR=${STAGING_INCDIR} \
+	STAGING_LIBDIR=${STAGING_LIBDIR} \
         PYTHONPATH=${D}/${libdir}/${PYTHON_DIR}/site-packages \
         BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
         ${STAGING_BINDIR_NATIVE}/python setup.py install --prefix=${D}/${prefix} --install-data=${D}/${datadir} || \

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [RFC] changing staging layout based on MULTIMACH_TARGET_SYS
  2008-07-24  9:14 [RFC] changing staging layout based on MULTIMACH_TARGET_SYS Koen Kooi
@ 2008-08-05 13:10 ` Florian Boor
  0 siblings, 0 replies; 3+ messages in thread
From: Florian Boor @ 2008-08-05 13:10 UTC (permalink / raw)
  To: openembedded-devel

Hi,

Koen Kooi schrieb:

> Comments, objections?

+1 from me

Greetings

Florian

-- 
The dream of yesterday                  Florian Boor
is the hope of today                    Tel: +49 271-771091-15
and the reality of tomorrow.            Fax: +49 271-771091-19
[Robert Hutchings Goddard, 1904]        florian.boor@kernelconcepts.de

1D78 2D4D 6C53 1CA4 5588  D07B A8E7 940C 25B7 9A76



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-08-05 13:10 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-24  9:14 [RFC] changing staging layout based on MULTIMACH_TARGET_SYS Koen Kooi
2008-08-05 13:10 ` Florian Boor
  -- strict thread matches above, loose matches on Subject: below --
2008-07-28 12:43 Marcin Juszkiewicz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.