* [v2 PATCH 1/8] multilib_header.bbclass: Add oe_multilib_header wrapper
2011-07-26 21:31 [v2 PATCH 0/8] Number of multilib related fixes Mark Hatle
@ 2011-07-26 21:31 ` Mark Hatle
2011-07-30 17:17 ` Khem Raj
2011-07-26 21:31 ` [v2 PATCH 2/8] binutils: Fix multilib header conflict - bfd.h Mark Hatle
` (7 subsequent siblings)
8 siblings, 1 reply; 12+ messages in thread
From: Mark Hatle @ 2011-07-26 21:31 UTC (permalink / raw)
To: openembedded-core
This helper function and associated header will allow us to
resolve two/three header files that conflict due to contents
that change based on wordsize and ABI.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
| 29 ++++++++++++++++++
| 55 ++++++++++++++++++++++++++++++++++
2 files changed, 84 insertions(+), 0 deletions(-)
create mode 100644 meta/classes/multilib_header.bbclass
create mode 100644 scripts/multilib_header_wrapper.h
--git a/meta/classes/multilib_header.bbclass b/meta/classes/multilib_header.bbclass
new file mode 100644
index 0000000..867bce4
--- /dev/null
+++ b/meta/classes/multilib_header.bbclass
@@ -0,0 +1,29 @@
+inherit siteinfo
+
+# If applicable on the architecture, this routine will rename the header and add
+# a unique identifier to the name for the ABI/bitsize that is being used. A wrapper will
+# be generated for the architecture that knows how to call all of the ABI variants for that
+# given architecture.
+#
+# TODO: mips64 n32 is not yet recognized in this code
+# when that is identified the name of the wrapped item should be "n32" and appropriately
+# determined int he if coding...
+#
+oe_multilib_header() {
+ # Do nothing on ARM, only one ABI is supported at once
+ if echo ${TARGET_ARCH} | grep -q arm; then
+ return
+ fi
+ for each_header in "$@" ; do
+ if [ ! -f "${D}/${includedir}/$each_header" ]; then
+ bberror "oe_multilib_header: Unable to find header $each_header."
+ continue
+ fi
+ stem=$(echo $each_header | sed 's#\.h$##')
+ ident=${SITEINFO_BITS}
+ # if mips64/n32 set ident to n32
+ mv ${D}/${includedir}/$each_header ${D}/${includedir}/${stem}-${ident}.h
+
+ sed -e "s#ENTER_HEADER_FILENAME_HERE#${stem}#g" ${COREBASE}/scripts/multilib_header_wrapper.h > ${D}/${includedir}/$each_header
+ done
+}
--git a/scripts/multilib_header_wrapper.h b/scripts/multilib_header_wrapper.h
new file mode 100644
index 0000000..5a87540
--- /dev/null
+++ b/scripts/multilib_header_wrapper.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2005-2011 by Wind River Systems, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ */
+
+#include <bits/wordsize.h>
+
+#ifdef __WORDSIZE
+
+#if __WORDSIZE == 32
+
+#ifdef _MIPS_SIM
+
+#if _MIPS_SIM == _ABIO32
+#include <ENTER_HEADER_FILENAME_HERE-32.h>
+#elif _MIPS_SIM == _ABIN32
+#include <ENTER_HEADER_FILENAME_HERE-n32.h>
+#else
+#error "Unknown _MIPS_SIM"
+#endif
+
+#else /* _MIPS_SIM is not defined */
+#include <ENTER_HEADER_FILENAME_HERE-32.h>
+#endif
+
+#elif __WORDSIZE == 64
+#include <ENTER_HEADER_FILENAME_HERE-64.h>
+#else
+#error "Unknown __WORDSIZE detected"
+#endif /* matches #if __WORDSIZE == 32 */
+
+#else /* __WORDSIZE is not defined */
+
+#error "__WORDSIZE is not defined"
+
+#endif
+
--
1.7.3.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* [v2 PATCH 2/8] binutils: Fix multilib header conflict - bfd.h
2011-07-26 21:31 [v2 PATCH 0/8] Number of multilib related fixes Mark Hatle
2011-07-26 21:31 ` [v2 PATCH 1/8] multilib_header.bbclass: Add oe_multilib_header wrapper Mark Hatle
@ 2011-07-26 21:31 ` Mark Hatle
2011-07-26 21:31 ` [v3 PATCH 3/8] apr: Fix multilib header conflict - apr.h Mark Hatle
` (6 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Mark Hatle @ 2011-07-26 21:31 UTC (permalink / raw)
To: openembedded-core
bfd.h conflicts between 32-bit and 64-bit versions.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
meta/recipes-devtools/binutils/binutils.inc | 4 +++-
meta/recipes-devtools/binutils/binutils_2.21.1.bb | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-devtools/binutils/binutils.inc b/meta/recipes-devtools/binutils/binutils.inc
index 9a6b9c8..58fee85 100644
--- a/meta/recipes-devtools/binutils/binutils.inc
+++ b/meta/recipes-devtools/binutils/binutils.inc
@@ -13,7 +13,7 @@ LICENSE = "GPLv3"
DEPENDS = "flex-native bison-native zlib-native"
-inherit autotools gettext
+inherit autotools gettext multilib_header
PACKAGES += "${PN}-symlinks"
@@ -116,6 +116,8 @@ do_install () {
done
rm ${D}${bindir}/ar ${D}${bindir}/strings
+
+ oe_multilib_header bfd.h
}
do_install_virtclass-native () {
diff --git a/meta/recipes-devtools/binutils/binutils_2.21.1.bb b/meta/recipes-devtools/binutils/binutils_2.21.1.bb
index e1a16a6..1f36117 100644
--- a/meta/recipes-devtools/binutils/binutils_2.21.1.bb
+++ b/meta/recipes-devtools/binutils/binutils_2.21.1.bb
@@ -1,6 +1,6 @@
require binutils.inc
-PR = "r2"
+PR = "r3"
LIC_FILES_CHKSUM="\
file://src-release;endline=17;md5=4830a9ef968f3b18dd5e9f2c00db2d35\
--
1.7.3.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* [v3 PATCH 3/8] apr: Fix multilib header conflict - apr.h
2011-07-26 21:31 [v2 PATCH 0/8] Number of multilib related fixes Mark Hatle
2011-07-26 21:31 ` [v2 PATCH 1/8] multilib_header.bbclass: Add oe_multilib_header wrapper Mark Hatle
2011-07-26 21:31 ` [v2 PATCH 2/8] binutils: Fix multilib header conflict - bfd.h Mark Hatle
@ 2011-07-26 21:31 ` Mark Hatle
2011-07-26 21:31 ` [v2 PATCH 4/8] beecrypt: Fix multilib header conflict - beecrypt/gnu.h Mark Hatle
` (5 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Mark Hatle @ 2011-07-26 21:31 UTC (permalink / raw)
To: openembedded-core
apr.h conflicts between 32-bit and 64-bit versions
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
meta/recipes-support/apr/apr_1.4.2.bb | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-support/apr/apr_1.4.2.bb b/meta/recipes-support/apr/apr_1.4.2.bb
index 89bdadf..b37001d 100644
--- a/meta/recipes-support/apr/apr_1.4.2.bb
+++ b/meta/recipes-support/apr/apr_1.4.2.bb
@@ -6,7 +6,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0c35ff3c4c83b89d2f076e315caac28b \
file://include/apr_lib.h;endline=17;md5=ee42fa7575dc40580a9e01c1b75fae96"
-PR = "r0"
+PR = "r1"
SRC_URI = "${APACHE_MIRROR}/apr/${P}.tar.bz2 \
file://configure_fixes.patch;patch=1 \
@@ -17,7 +17,7 @@ SRC_URI = "${APACHE_MIRROR}/apr/${P}.tar.bz2 \
SRC_URI[md5sum] = "4b00e8f70c067893d075577962656b35"
SRC_URI[sha256sum] = "2017ca700694d09d2b0b21dd7c4d195e43a48735aac88526160c6195ee8f5391"
-inherit autotools lib_package binconfig
+inherit autotools lib_package binconfig multilib_header
OE_BINCONFIG_EXTRA_MANGLE = " -e 's:location=source:location=installed:'"
@@ -34,6 +34,10 @@ do_configure_append() {
sed -i -e 's/LIBTOOL=\(.*\)top_build/LIBTOOL=\1apr_build/' build/apr_rules.mk
}
+do_install_append() {
+ oe_multilib_header apr.h
+}
+
SYSROOT_PREPROCESS_FUNCS += "apr_sysroot_preprocess"
apr_sysroot_preprocess () {
--
1.7.3.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* [v2 PATCH 4/8] beecrypt: Fix multilib header conflict - beecrypt/gnu.h
2011-07-26 21:31 [v2 PATCH 0/8] Number of multilib related fixes Mark Hatle
` (2 preceding siblings ...)
2011-07-26 21:31 ` [v3 PATCH 3/8] apr: Fix multilib header conflict - apr.h Mark Hatle
@ 2011-07-26 21:31 ` Mark Hatle
2011-07-26 21:31 ` [v2 PATCH 5/8] linux-libc-headers: Fix file conflict -- ..install.cmd Mark Hatle
` (4 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Mark Hatle @ 2011-07-26 21:31 UTC (permalink / raw)
To: openembedded-core
beecrypt/gnu.h conflicts between 32-bit and 64-bit versions.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
meta/recipes-support/beecrypt/beecrypt_4.2.1.bb | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-support/beecrypt/beecrypt_4.2.1.bb b/meta/recipes-support/beecrypt/beecrypt_4.2.1.bb
index f660641..2913b46 100644
--- a/meta/recipes-support/beecrypt/beecrypt_4.2.1.bb
+++ b/meta/recipes-support/beecrypt/beecrypt_4.2.1.bb
@@ -17,11 +17,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=9894370afd5dfe7d02b8d14319e729a1 \
DEPENDS = "icu"
-PR = "r0"
+PR = "r1"
-inherit autotools
+inherit autotools multilib_header
acpaths=""
+do_install_append() {
+ oe_multilib_header beecrypt/gnu.h
+}
+
EXTRA_OECONF="--without-python --enable-shared --enable-static --disable-openmp"
FILES_${PN} = "${sysconfdir} ${libdir}/*.so.* ${libdir}/${BPN}/*.so.*"
--
1.7.3.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* [v2 PATCH 5/8] linux-libc-headers: Fix file conflict -- ..install.cmd
2011-07-26 21:31 [v2 PATCH 0/8] Number of multilib related fixes Mark Hatle
` (3 preceding siblings ...)
2011-07-26 21:31 ` [v2 PATCH 4/8] beecrypt: Fix multilib header conflict - beecrypt/gnu.h Mark Hatle
@ 2011-07-26 21:31 ` Mark Hatle
2011-07-27 12:09 ` Andrea Adami
2011-07-26 21:31 ` [v2 PATCH 6/8] eglibc_2.13: Resolve multilib header conflicts Mark Hatle
` (3 subsequent siblings)
8 siblings, 1 reply; 12+ messages in thread
From: Mark Hatle @ 2011-07-26 21:31 UTC (permalink / raw)
To: openembedded-core
The ..install.cmd conflicts between various configure runs.
This isn't used anywhere, so remove it to avoid the conflict.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
| 5 ++++-
| 5 ++++-
| 5 +++++
3 files changed, 13 insertions(+), 2 deletions(-)
--git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers-yocto_git.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers-yocto_git.bb
index a9b041f..1c709cb 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers-yocto_git.bb
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers-yocto_git.bb
@@ -10,7 +10,7 @@ RPROVIDES_${PN}-dev = "linux-libc-headers-dev"
RPROVIDES_${PN}-dbg = "linux-libc-headers-dbg"
SRCREV = "69cfbdf9f1ff461a75e5b77d6d7ba35e97db4cc3"
PV = "2.6.37+git-${SRCPV}"
-PR = "r3"
+PR = "r4"
SRCREV_FORMAT = "meta_machine"
SRC_URI = "git://git.yoctoproject.org/linux-yocto-2.6.37;protocol=git;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta"
@@ -47,6 +47,9 @@ do_compile () {
do_install() {
set_arch
oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
+
+ # The ..install.cmd conflicts between various configure runs
+ find ${D}${includedir} -name ..install.cmd | xargs rm -f
}
BBCLASSEXTEND = "nativesdk"
--git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.37.2.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.37.2.bb
index 51c4926..55d7527 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.37.2.bb
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.37.2.bb
@@ -2,7 +2,7 @@ require linux-libc-headers.inc
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS += "unifdef-native"
-PR = "r1"
+PR = "r2"
SRC_URI += " file://connector-msg-size-fix.patch"
@@ -43,6 +43,9 @@ do_install() {
oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
# Kernel should not be exporting this header
rm -f ${D}${exec_prefix}/include/scsi/scsi.h
+
+ # The ..install.cmd conflicts between various configure runs
+ find ${D}${includedir} -name ..install.cmd | xargs rm -f
}
BBCLASSEXTEND = "nativesdk"
--git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.39.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.39.bb
index 65c19ec..14f5e8a 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.39.bb
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.39.bb
@@ -9,6 +9,8 @@ SRC_URI[sha256sum] = "584d17f2a3ee18a9501d7ff36907639e538cfdba4529978b8550c461d4
S = "${WORKDIR}/linux-${PV}"
+PR = "r2"
+
set_arch() {
case ${TARGET_ARCH} in
alpha*) ARCH=alpha ;;
@@ -44,6 +46,9 @@ do_install() {
oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
# Kernel should not be exporting this header
rm -f ${D}${exec_prefix}/include/scsi/scsi.h
+
+ # The ..install.cmd conflicts between various configure runs
+ find ${D}${includedir} -name ..install.cmd | xargs rm -f
}
BBCLASSEXTEND = "nativesdk"
--
1.7.3.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [v2 PATCH 5/8] linux-libc-headers: Fix file conflict -- ..install.cmd
2011-07-26 21:31 ` [v2 PATCH 5/8] linux-libc-headers: Fix file conflict -- ..install.cmd Mark Hatle
@ 2011-07-27 12:09 ` Andrea Adami
0 siblings, 0 replies; 12+ messages in thread
From: Andrea Adami @ 2011-07-27 12:09 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
On Tue, Jul 26, 2011 at 11:31 PM, Mark Hatle <mark.hatle@windriver.com> wrote:
> The ..install.cmd conflicts between various configure runs.
>
> This isn't used anywhere, so remove it to avoid the conflict.
>
> Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
> ---
> .../linux-libc-headers-yocto_git.bb | 5 ++++-
> .../linux-libc-headers_2.6.37.2.bb | 5 ++++-
> .../linux-libc-headers_2.6.39.bb | 5 +++++
> 3 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers-yocto_git.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers-yocto_git.bb
> index a9b041f..1c709cb 100644
> --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers-yocto_git.bb
> +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers-yocto_git.bb
> @@ -10,7 +10,7 @@ RPROVIDES_${PN}-dev = "linux-libc-headers-dev"
> RPROVIDES_${PN}-dbg = "linux-libc-headers-dbg"
> SRCREV = "69cfbdf9f1ff461a75e5b77d6d7ba35e97db4cc3"
> PV = "2.6.37+git-${SRCPV}"
> -PR = "r3"
> +PR = "r4"
>
> SRCREV_FORMAT = "meta_machine"
> SRC_URI = "git://git.yoctoproject.org/linux-yocto-2.6.37;protocol=git;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta"
> @@ -47,6 +47,9 @@ do_compile () {
> do_install() {
> set_arch
> oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
> +
> + # The ..install.cmd conflicts between various configure runs
> + find ${D}${includedir} -name ..install.cmd | xargs rm -f
> }
>
> BBCLASSEXTEND = "nativesdk"
> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.37.2.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.37.2.bb
> index 51c4926..55d7527 100644
> --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.37.2.bb
> +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.37.2.bb
> @@ -2,7 +2,7 @@ require linux-libc-headers.inc
>
> INHIBIT_DEFAULT_DEPS = "1"
> DEPENDS += "unifdef-native"
> -PR = "r1"
> +PR = "r2"
>
> SRC_URI += " file://connector-msg-size-fix.patch"
>
> @@ -43,6 +43,9 @@ do_install() {
> oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
> # Kernel should not be exporting this header
> rm -f ${D}${exec_prefix}/include/scsi/scsi.h
> +
> + # The ..install.cmd conflicts between various configure runs
> + find ${D}${includedir} -name ..install.cmd | xargs rm -f
> }
>
> BBCLASSEXTEND = "nativesdk"
> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.39.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.39.bb
> index 65c19ec..14f5e8a 100644
> --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.39.bb
> +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_2.6.39.bb
> @@ -9,6 +9,8 @@ SRC_URI[sha256sum] = "584d17f2a3ee18a9501d7ff36907639e538cfdba4529978b8550c461d4
>
> S = "${WORKDIR}/linux-${PV}"
>
> +PR = "r2"
> +
> set_arch() {
> case ${TARGET_ARCH} in
> alpha*) ARCH=alpha ;;
> @@ -44,6 +46,9 @@ do_install() {
> oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
> # Kernel should not be exporting this header
> rm -f ${D}${exec_prefix}/include/scsi/scsi.h
> +
> + # The ..install.cmd conflicts between various configure runs
> + find ${D}${includedir} -name ..install.cmd | xargs rm -f
> }
>
> BBCLASSEXTEND = "nativesdk"
> --
> 1.7.3.4
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
Thanks for having fixed that.
I noticed two kinds of cruft while packaging: .install and ..install.cmd
# remove Linux headers .install and ..install.cmd files
find ${D}${base_libdir}/klibc/include -name '.install' -delete
find ${D}${base_libdir}/klibc/include -name '..install.cmd' -delete
I'll check now after your patch.
Regards
Andrea
^ permalink raw reply [flat|nested] 12+ messages in thread
* [v2 PATCH 6/8] eglibc_2.13: Resolve multilib header conflicts
2011-07-26 21:31 [v2 PATCH 0/8] Number of multilib related fixes Mark Hatle
` (4 preceding siblings ...)
2011-07-26 21:31 ` [v2 PATCH 5/8] linux-libc-headers: Fix file conflict -- ..install.cmd Mark Hatle
@ 2011-07-26 21:31 ` Mark Hatle
2011-07-26 21:31 ` [v2 PATCH 7/8] ncurses: Resolve header and man page multilib conflicts Mark Hatle
` (2 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Mark Hatle @ 2011-07-26 21:31 UTC (permalink / raw)
To: openembedded-core
Due to mismatches between various header definitions in i386 and x86_64
we need to overwrite the i386 versions of the headers with their x86_64
equivalents.
This can not be done for the syscall.h as it's dynamically generated,
so use the header conflict resolution helper for that.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
meta/recipes-core/eglibc/eglibc-package.inc | 4 +-
meta/recipes-core/eglibc/eglibc_2.13.bb | 91 +++++++++++++++++++++++++++
2 files changed, 94 insertions(+), 1 deletions(-)
diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
index 9e71150..a995f4f 100644
--- a/meta/recipes-core/eglibc/eglibc-package.inc
+++ b/meta/recipes-core/eglibc/eglibc-package.inc
@@ -86,10 +86,12 @@ SUMMARY_eglibc-utils = "Miscellaneous utilities provided by eglibc"
DESCRIPTION_eglibc-utils = "Miscellaneous utilities including getconf, iconf, locale, gencat, tzselect, zic, rpcinfo, ..."
DESCRIPTION_libsotruss = "Library to support sotruss which traces calls through PLTs"
-inherit libc-common
+inherit libc-common multilib_header
do_install_append () {
rm -f ${D}${sysconfdir}/localtime
+
+ oe_multilib_header bits/syscall.h
}
do_install_locale () {
diff --git a/meta/recipes-core/eglibc/eglibc_2.13.bb b/meta/recipes-core/eglibc/eglibc_2.13.bb
index 6076ab9..f88a071 100644
--- a/meta/recipes-core/eglibc/eglibc_2.13.bb
+++ b/meta/recipes-core/eglibc/eglibc_2.13.bb
@@ -80,6 +80,97 @@ do_move_ports() {
fi
}
+do_patch_append() {
+ bb.build.exec_func('do_fix_ia_headers', d)
+}
+
+# We need to ensure that all of the i386 and x86_64 headers are identical
+# to support the multilib case. We do this by copying headers from x86_64
+# to i386 directories. Normally when hand building eglibc or a combined
+# system you would build 32-bit, and then overwrite any files with the x86_64
+# versions.
+#
+# Each time eglibc is updated, this will need to be re-evaluated. In order
+# to do this, disable this function. Build eglibc for a 32-bit and a 64-bit
+# IA32 target. Compare the contents of the include files -- comments specific
+# to the x86_64 version compared to the 32-bit one.
+#
+# For eglibc 2.13, each conflict noted below:
+# bits/a.out.h - Add support for __WORDSIZE = 64
+# bits/byteswap.h - Copyright date mismatch, add support for __WORDSIZE = 64
+# bits/endian.h - Comment mismatch
+# bits/environment.h - add support for __WORDSIZE = 64
+# bits/fcntl.h - Comment/Copyright date mismatch, add support for __WORDSIZE = 64
+# bits/fenv.h - Copyright date mismatch, add support for __WORDSIZE = 64
+# bits/huge_vall.h - Comment/Copyright date mismatch, remove support for older gcc
+# bits/link.h - Function name difference, add x86_64 definitions
+# bits/mathdef.h - Copyright date mismatch, add support for __WORDSIZE = 64
+# bits/mathinline.h - Copyright date mismatch, contributed by mismatch, remove support for older gcc/assembly optimization, add support for __WORDSIZE = 64
+# bits/mman.h - Header/Copyright date mismatch, add MAP_32BIT definition
+# bits/msq.h - Copyright date mismatch, add __WORDSIZE = 32 definitions
+# bits/pthread_type.h -- Contributed by added, add support for __WORDSIZE = 64
+# bits/select.h - Copyright date mismatch, add support for __WORDSIZE = 64
+# bits/semaphore.h - Copyright date mismatch, add support for __WORDSIZE = 64
+# bits/sem.h - Copyright date mismatch
+# bits/setjmp.h - Copyrgiht date mismatch, add support for __WORDSIZE = 64
+# bits/shm.h - Copyright date mismatch, add support for __WORDSIZE = 32
+# bits/sigcontext.h - Copyright date mismatch, license wording mismatch, add support for __WORDSIZE = 32
+# bits/stat.h - Copyright date mismatch, add support for __WORDSIZE = 32 and __WORDSIZE = 64
+# bits/string.h - Header/Copyright date mismatch, remove assembly optimizations
+# bits/syscall.h - different order, some different syscalls listed
+# bits/wchar.h - Change the way the definitions are done
+# bits/wordsize.h - Different header, remove license notice, add __x86_64__ support
+# bits/xtitypes.h - Header difference, different typedef format
+# bits/fpu_control.h - header difference, revised comments, updated assembly macros
+# sys/debugreg.h - Copyright date mismatch, new definition and added __WORDSIZE=64 support
+# sys/epoll.h - Copyright date mismatch, slightly different definitions
+# sys/io.h - Copyright date mismatch, slightly different assembly formats
+# sys/perm.h - Copyright date mismatch
+# sys/procfs.h - Copyright date mismatch, support for __WORDSIZE = 32
+# sys/reg.h - Copyright date mismatch, support for __WORDSIZE = 64
+# sys/ucontext.h - Copyright date mismatch, support for __WORDSIZE = 64
+# sys/user.h - Copyright date mismatch, support for __WORDSIZE = 64
+#
+# we rm something to return to the default version
+#
+do_fix_ia_headers() {
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/a.out.h ${S}/sysdeps/unix/sysv/linux/i386/bits/a.out.h
+ cp ${S}/sysdeps/x86_64/bits/byteswap.h ${S}/sysdeps/i386/bits/byteswap.h
+ cp ${S}/sysdeps/x86_64/bits/endian.h ${S}/sysdeps/i386/bits/endian.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/environments.h ${S}/sysdeps/unix/sysv/linux/i386/bits/environments.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h ${S}/sysdeps/unix/sysv/linux/i386/bits/fcntl.h
+ cp ${S}/sysdeps/x86_64/fpu/bits/fenv.h ${S}/sysdeps/i386/fpu/bits/fenv.h
+ rm ${S}/sysdeps/i386/bits/huge_vall.h
+ cp ${S}/sysdeps/x86_64/bits/link.h ${S}/sysdeps/i386/bits/link.h
+ cp ${S}/sysdeps/x86_64/bits/mathdef.h ${S}/sysdeps/i386/bits/mathdef.h
+ cp ${S}/sysdeps/x86_64/fpu/bits/mathinline.h ${S}/sysdeps/i386/fpu/bits/mathinline.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/mman.h ${S}/sysdeps/unix/sysv/linux/i386/bits/mman.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/msq.h ${S}/sysdeps/unix/sysv/linux/i386/bits/msq.h
+ cp ${S}/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h ${S}/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
+ cp ${S}/sysdeps/x86_64/bits/select.h ${S}/sysdeps/i386/bits/select.h
+ cp ${S}/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h ${S}/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h
+ rm ${S}/sysdeps/unix/sysv/linux/x86_64/bits/sem.h
+ cp ${S}/sysdeps/x86_64/bits/setjmp.h ${S}/sysdeps/i386/bits/setjmp.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/shm.h ${S}/sysdeps/unix/sysv/linux/i386/bits/shm.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h ${S}/sysdeps/unix/sysv/linux/i386/bits/sigcontext.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/bits/stat.h ${S}/sysdeps/unix/sysv/linux/i386/bits/stat.h
+ rm ${S}/sysdeps/i386/i486/bits/string.h ; cp ${S}/sysdeps/x86_64/bits/string.h ${S}/sysdeps/i386/bits/string.h
+ # Skip syscall.h, see do_install
+ rm ${S}/sysdeps/unix/sysv/linux/i386/bits/wchar.h
+ cp ${S}/sysdeps/x86_64/bits/wordsize.h ${S}/sysdeps/i386/bits/wordsize.h
+ cp ${S}/sysdeps/x86_64/bits/xtitypes.h ${S}/sysdeps/i386/bits/xtitypes.h
+ # i386 version is correct, x86_64 is incorrect for fpu_control.h
+ cp ${S}/sysdeps/i386/fpu_control.h ${S}/sysdeps/x86_64/fpu_control.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h ${S}/sysdeps/unix/sysv/linux/i386/sys/debugreg.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/epoll.h ${S}/sysdeps/unix/sysv/linux/i386/sys/epoll.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/io.h ${S}/sysdeps/unix/sysv/linux/i386/sys/io.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/perm.h ${S}/sysdeps/unix/sysv/linux/i386/sys/perm.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/procfs.h ${S}/sysdeps/unix/sysv/linux/i386/sys/procfs.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/reg.h ${S}/sysdeps/unix/sysv/linux/i386/sys/reg.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h ${S}/sysdeps/unix/sysv/linux/i386/sys/ucontext.h
+ cp ${S}/sysdeps/unix/sysv/linux/x86_64/sys/user.h ${S}/sysdeps/unix/sysv/linux/i386/sys/user.h
+}
+
do_configure () {
# override this function to avoid the autoconf/automake/aclocal/autoheader
# calls for now
--
1.7.3.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* [v2 PATCH 7/8] ncurses: Resolve header and man page multilib conflicts
2011-07-26 21:31 [v2 PATCH 0/8] Number of multilib related fixes Mark Hatle
` (5 preceding siblings ...)
2011-07-26 21:31 ` [v2 PATCH 6/8] eglibc_2.13: Resolve multilib header conflicts Mark Hatle
@ 2011-07-26 21:31 ` Mark Hatle
2011-07-26 21:31 ` [v2 PATCH 8/8] package.bbclass: fixup_perms - change symlink processing Mark Hatle
2011-07-28 0:41 ` [v2 PATCH 0/8] Number of multilib related fixes Saul Wold
8 siblings, 0 replies; 12+ messages in thread
From: Mark Hatle @ 2011-07-26 21:31 UTC (permalink / raw)
To: openembedded-core
By default man pages are compressed, the way ncurses compresses
them causes differences (timestamp and name) to be embedded into
the gziped file. So each build will end up with a slightly
different file. Avoid this, by not compressing the man pages.
Avoid header conflict with curses.h using the multilib header
helper.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
meta/recipes-core/ncurses/ncurses.inc | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
index 1e139a3..be7d387 100644
--- a/meta/recipes-core/ncurses/ncurses.inc
+++ b/meta/recipes-core/ncurses/ncurses.inc
@@ -6,9 +6,9 @@ LIC_FILES_CHKSUM = "file://ncurses/base/version.c;beginline=1;endline=27;md5=cbc
SECTION = "libs"
DEPENDS = "ncurses-native"
DEPENDS_virtclass-native = ""
-INC_PR = "r0"
+INC_PR = "r1"
-inherit autotools binconfig
+inherit autotools binconfig multilib_header
# Upstream has useful patches at times at ftp://invisible-island.net/ncurses/
SRC_URI = "${GNU_MIRROR}/ncurses/ncurses-${PV}.tar.gz"
@@ -61,6 +61,7 @@ do_configure() {
--enable-sigwinch \
--enable-pc-files \
--disable-rpath-hack \
+ --with-manpage-format=normal \
"$@"
cd ..
done
@@ -161,6 +162,8 @@ do_install() {
f=${D}${libdir}/libtermcap.so
echo '/* GNU ld script */' >$f
echo 'INPUT(AS_NEEDED(-ltinfo))' >>$f
+
+ oe_multilib_header curses.h
}
python populate_packages_prepend () {
--
1.7.3.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* [v2 PATCH 8/8] package.bbclass: fixup_perms - change symlink processing
2011-07-26 21:31 [v2 PATCH 0/8] Number of multilib related fixes Mark Hatle
` (6 preceding siblings ...)
2011-07-26 21:31 ` [v2 PATCH 7/8] ncurses: Resolve header and man page multilib conflicts Mark Hatle
@ 2011-07-26 21:31 ` Mark Hatle
2011-07-28 0:41 ` [v2 PATCH 0/8] Number of multilib related fixes Saul Wold
8 siblings, 0 replies; 12+ messages in thread
From: Mark Hatle @ 2011-07-26 21:31 UTC (permalink / raw)
To: openembedded-core
We switch to using os.lchown in order to avoid following a symlink.
We also now check if an item is a symlink, if so we avoid the
os.chmod as a symlink inherits the mode of it's target.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
meta/classes/package.bbclass | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index f2950e2..076a532 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -472,7 +472,7 @@ python fixup_perms () {
else:
return int(mode,8)
- # Note uid/gid -1 has special significance in os.chown
+ # Note uid/gid -1 has special significance in os.lchown
def _procuid(self, uid):
if uid is None or uid == "-":
return -1
@@ -514,14 +514,14 @@ python fixup_perms () {
# Fix the permission, owner and group of path
def fix_perms(path, mode, uid, gid, dir):
- if mode:
+ if mode and not os.path.islink(path):
#bb.note("Fixup Perms: chmod 0%o %s" % (mode, dir))
os.chmod(path, mode)
# -1 is a special value that means don't change the uid/gid
- # if they are BOTH -1, don't bother to chown
+ # if they are BOTH -1, don't bother to lchown
if not (uid == -1 and gid == -1):
- #bb.note("Fixup Perms: chown %d:%d %s" % (uid, gid, dir))
- os.chown(path, uid, gid)
+ #bb.note("Fixup Perms: lchown %d:%d %s" % (uid, gid, dir))
+ os.lchown(path, uid, gid)
# Return a list of configuration files based on either the default
# files/fs-perms.txt or the contents of FILESYSTEM_PERMS_TABLES
--
1.7.3.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* Re: [v2 PATCH 0/8] Number of multilib related fixes
2011-07-26 21:31 [v2 PATCH 0/8] Number of multilib related fixes Mark Hatle
` (7 preceding siblings ...)
2011-07-26 21:31 ` [v2 PATCH 8/8] package.bbclass: fixup_perms - change symlink processing Mark Hatle
@ 2011-07-28 0:41 ` Saul Wold
8 siblings, 0 replies; 12+ messages in thread
From: Saul Wold @ 2011-07-28 0:41 UTC (permalink / raw)
To: Patches and discussions about the oe-core layer
On 07/26/2011 02:31 PM, Mark Hatle wrote:
> Fix a number of multilib issues include IA32 eglibc header generation,
> misc header conflicts and ncurses man page collisions.
>
> This is v2 of the patch set, original was sent by Richard.
>
> The following changes since commit dad2169cfb331b7af5c6d380347ea279a59bd716:
>
> classes/image_types: IMAGE_TYPES was missing some entries (2011-07-26 15:52:40 +0100)
>
> are available in the git repository at:
> git://git.pokylinux.org/poky-contrib mhatle/ml_fixes
> http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=mhatle/ml_fixes
>
> Mark Hatle (8):
> multilib_header.bbclass: Add oe_multilib_header wrapper
> binutils: Fix multilib header conflict - bfd.h
> apr: Fix multilib header conflict - apr.h
> beecrypt: Fix multilib header conflict - beecrypt/gnu.h
> linux-libc-headers: Fix file conflict -- ..install.cmd
> eglibc_2.13: Resolve multilib header conflicts
> ncurses: Resolve header and man page multilib conflicts
> package.bbclass: fixup_perms - change symlink processing
>
> meta/classes/multilib_header.bbclass | 29 ++++++
> meta/classes/package.bbclass | 10 +-
> meta/recipes-core/eglibc/eglibc-package.inc | 4 +-
> meta/recipes-core/eglibc/eglibc_2.13.bb | 91 ++++++++++++++++++++
> meta/recipes-core/ncurses/ncurses.inc | 7 +-
> meta/recipes-devtools/binutils/binutils.inc | 4 +-
> meta/recipes-devtools/binutils/binutils_2.21.1.bb | 2 +-
> .../linux-libc-headers-yocto_git.bb | 5 +-
> .../linux-libc-headers_2.6.37.2.bb | 5 +-
> .../linux-libc-headers_2.6.39.bb | 5 +
> meta/recipes-support/apr/apr_1.4.2.bb | 8 ++-
> meta/recipes-support/beecrypt/beecrypt_4.2.1.bb | 8 ++-
> scripts/multilib_header_wrapper.h | 55 ++++++++++++
> 13 files changed, 217 insertions(+), 16 deletions(-)
> create mode 100644 meta/classes/multilib_header.bbclass
> create mode 100644 scripts/multilib_header_wrapper.h
>
Merged into OE-Core
Thanks
Sau!
^ permalink raw reply [flat|nested] 12+ messages in thread