Skip to contentSkip to conversation

Multilib core enablement patches

PATCH In review Richard Purdie 2 participants 11 messages Jul 26, 2011 – Aug 1, 2011

lore
Share & tools
lore
#0 lore raw

cover Multilib core enablement patches

This patch series forms the core multilib enablement for OE-Core. The first patch adds the main class which can be enabled as per the local.conf.sample code.

The following patches are various misc multilib related tweaks the system needed.

Following this series, the tune changes I posted earlier and Mark's header changes, the only remaining piece is the package manager integration. I'll post those as a separate follow on series but those are likely still in need of some tweaks before merging.

The patches are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib rpurdie/ml4
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rpurdie/ml4

Dongxiao Xu (1):
distcc: fix makefile parameter order

Mark Hatle (1):
RPM: multilib file class/color

Richard Purdie (2):
multilib: Add support for compiling recipes against multiple ABIs lib/oe/util.py: Add MLPREFIX support to prune_suffix()

Yu Ke (4):
do_split_packages: revise for multilib case
eglibc: fix for multilib RPROVIDES issue
cmake.bbclass: add ${libdir}} for multilib case
linux-yocto: revise the dependency for multilib

 meta/classes/autotools.bbclass                     |    2 +-
 meta/classes/cmake.bbclass                         |    2 +-
 meta/classes/insane.bbclass                        |    3 +-
 meta/classes/multilib.bbclass                      |   87 ++++++++++++++++++++
 meta/classes/package.bbclass                       |   15 ++++
 meta/conf/bitbake.conf                             |    1 +
 meta/conf/local.conf.sample                        |    5 +
 meta/conf/multilib.conf                            |   24 ++++++
 meta/lib/oe/utils.py                               |    7 ++-
 meta/recipes-core/dbus/dbus.inc                    |    8 +-
 meta/recipes-core/eglibc/eglibc-package.inc        |    2 +-
 meta/recipes-devtools/distcc/distcc_2.18.3.bb      |    3 +-
 .../distcc/files/makefile-param-order.patch        |   20 +++++
 meta/recipes-devtools/gcc/libgcc_4.6.bb            |    6 +-
 meta/recipes-devtools/rpm/rpm/rpm-fileclass.patch  |   34 ++++++++
 meta/recipes-devtools/rpm/rpm_5.4.0.bb             |    1 +
 meta/recipes-kernel/linux/linux-tools.inc          |    2 +-
 17 files changed, 207 insertions(+), 15 deletions(-)
 create mode 100644 meta/classes/multilib.bbclass
 create mode 100644 meta/conf/multilib.conf
 create mode 100644 meta/recipes-devtools/distcc/files/makefile-param-order.patch
 create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-fileclass.patch
Signature · 1 line
1.7.4.1
#1 lore raw

PATCH 1/8 multilib: Add support for compiling recipes against multiple ABIs

This patch adds the core multilib class which can be used along with a parameter specifying the mutlilib to use in BBCLASSEXTEND.

The MLPREFIX variable is added and can be used in cases where its too difficult to dynmaically work out where a mutltilib prefix is needed to be added to a variable.

This includes:
* SHLIBSDIR and PACKAGE_ARCH fixes from Lianhao Lu.
* PACKAGE_DYNAMIC mapping from Yu Ke
* PACKAGE_INSTALL mapping from Yu Ke
* RPROVIDES mapping from Yu Ke
* TARGET_VENDOR fix from Mark Hatle
* Ignorning *-native-runtime dependnecies as well as *-native from Yu Ke

---
 meta/classes/autotools.bbclass          |    2 +-
 meta/classes/insane.bbclass             |    3 +-
 meta/classes/multilib.bbclass           |   87 +++++++++++++++++++++++++++++++
 meta/classes/package.bbclass            |   11 ++++
 meta/conf/bitbake.conf                  |    1 +
 meta/conf/local.conf.sample             |    5 ++
 meta/conf/multilib.conf                 |   24 +++++++++
 meta/recipes-core/dbus/dbus.inc         |    8 +--
 meta/recipes-devtools/gcc/libgcc_4.6.bb |    6 +-
 9 files changed, 137 insertions(+), 10 deletions(-)
 create mode 100644 meta/classes/multilib.bbclass
 create mode 100644 meta/conf/multilib.conf
meta/classes/autotools.bbclass +1 -1
index ed5637e..e5c13ae 100644
@@ -9,7 +9,7 @@ def autotools_dep_prepend(d):
 		return deps
 	deps += 'autoconf-native automake-native help2man-native '
 
-	if not pn in ['libtool', 'libtool-native', 'libtool-cross']:
+	if not pn in ['libtool', 'libtool-native'] and not pn.endswith("libtool-cross"):
 		deps += 'libtool-native '
 		if not bb.data.inherits_class('native', d) \
                         and not bb.data.inherits_class('cross', d) \
meta/classes/insane.bbclass +2 -1
index d56c9ed..5fb0d98 100644
@@ -571,12 +571,13 @@ Rerun configure task after fixing this. The path was '%s'""" % root)
 
     cnf = bb.data.getVar('EXTRA_OECONF', d, True) or ""
     if "gettext" not in bb.data.getVar('P', d, True) and "gcc-runtime" not in bb.data.getVar('P', d, True) and "--disable-nls" not in cnf:
+       ml = d.getVar("MLPREFIX", True) or ""
        if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d) or bb.data.inherits_class('crosssdk', d) or bb.data.inherits_class('nativesdk', d):
           gt = "gettext-native"
        elif bb.data.inherits_class('cross-canadian', d):
           gt = "gettext-nativesdk"
        else:
-          gt = "virtual/gettext"
+          gt = "virtual/" + ml + "gettext"
        deps = bb.utils.explode_deps(bb.data.getVar('DEPENDS', d, True) or "")
        if gt not in deps:
           for config in configs:
meta/classes/multilib.bbclass new file +87 -0

87 lines not on this page · raw message

meta/classes/package.bbclass +11 -0
index f2950e2..ea8ad05 100644
@@ -168,6 +168,17 @@ python () {
         bb.data.setVarFlag('do_package', 'deptask', " ".join(deps), d)
     else:
         d.setVar("PACKAGERDEPTASK", "")
+
+    multilib_archs = []
+    multilibs= d.getVar('MULTILIBS', True) or ""
+    if multilibs:
+        for ext in multilibs.split():
+            eext = ext.split(':')
+            if len(eext) > 1:
+                if eext[0] == 'multilib':
+                    multilib_archs.append('ml' + eext[1])
+
+    d.setVar("MULTILIB_ARCHS", ' '.join(multilib_archs))
 }
 
 def splitfile(file, debugfile, debugsrcdir, d):
meta/conf/bitbake.conf +1 -0
index 46a9a82..6e109ec 100644
@@ -735,3 +735,4 @@ BB_SIGNATURE_HANDLER ?= "basic"
 BB_HASHTASK_WHITELIST ?= "(.*-cross$|.*-native$|.*-cross-initial$|.*-cross-intermediate$|^virtual:native:.*|^virtual:nativesdk:.*)"
 BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH USERNAME STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE"
 
+MLPREFIX ??= ""
meta/conf/local.conf.sample +5 -0
index 812b896..4be7b1d 100644
@@ -189,3 +189,8 @@ NO32LIBS = "1"
 
 # Uncomment this if your host distribution provides the help2man tool.
 #ASSUME_PROVIDED += "help2man-native"
+
+# Uncomment the following lines to enable multilib builds
+#require conf/multilib.conf
+#MULTILIBS = "multilib:lib32"
+#TUNENAME_virtclass-multilib-lib32 = "x86"
meta/conf/multilib.conf new file +24 -0
new file mode 100644
index 0000000..894b7a5
@@ -0,0 +1,24 @@
+
+baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE', True) or 'INVALID'), True) or 'lib'}"
+
+MULTILIBS ??= "multilib:lib32"
+BBCLASSEXTEND_append_pn-linux-libc-headers = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-eglibc-initial = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-eglibc = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-libgcc = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gcc-runtime = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-libtool-cross = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-zlib = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-binutils-cross = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gcc-cross-initial = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gcc-cross-intermediate = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gcc-cross = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-busybox = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-update-rc.d = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-util-linux = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gettext = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-bash = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-ncurses = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-expat = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-eglibc-locale = " ${MULTILIBS}"
+
meta/recipes-core/dbus/dbus.inc +3 -5
index 5f9a8a3..6b76cba 100644
@@ -5,11 +5,9 @@ SECTION = "base"
 LICENSE = "AFL-2 | GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \
                     file://dbus/dbus.h;firstline=6;endline=20;md5=6eea2e0c7750dd8e620dcb1437312fa5"
-x11deps = "virtual/libx11 libsm"
-basedeps = "expat virtual/libintl"
-DEPENDS = "${basedeps} ${x11deps}"
-DEPENDS_virtclass-native = "${basedeps}"
-DEPENDS_virtclass-nativesdk = "${basedeps} virtual/libx11"
+DEPENDS = "expat virtual/libintl virtual/libx11 libsm"
+DEPENDS_virtclass-native = "expat-native virtual/libintl-native"
+DEPENDS_virtclass-nativesdk = "expat-nativesdk virtual/libintl-nativesdk virtual/libx11"
 
 SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
            file://tmpdir.patch; \
meta/recipes-devtools/gcc/libgcc_4.6.bb +3 -3
index 6a77ce4..a6e1146 100644
@@ -41,9 +41,9 @@ do_install () {
 	chmod +x ${D}${base_libdir}/libgcc_s.so.*
 }
 
-do_package_write_ipk[depends] += "virtual/libc:do_package"
-do_package_write_deb[depends] += "virtual/libc:do_package"
-do_package_write_rpm[depends] += "virtual/libc:do_package"
+do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_package"
+do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_package"
+do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_package"
 
 BBCLASSEXTEND = "nativesdk"
 
Signature · 1 line
1.7.4.1
#2 lore raw

PATCH 2/8 lib/oe/util.py: Add MLPREFIX support to prune_suffix()

prune_suffix() also needs be aware of MLPREFIX when changing PN for use in BPN.

---
 meta/lib/oe/utils.py |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
meta/lib/oe/utils.py +6 -1
index 5a63ed3..b3473d3 100644
@@ -58,7 +58,12 @@ def prune_suffix(var, suffixes, d):
     # remove it if found
     for suffix in suffixes:
         if var.endswith(suffix):
-            return var.replace(suffix, "")
+            var = var.replace(suffix, "")
+
+    prefix = d.getVar("MLPREFIX", True)
+    if prefix and var.startswith(prefix):
+        var = var.replace(prefix, "")
+
     return var
 
 def str_filter(f, str, d):
Signature · 1 line
1.7.4.1
#3 lore raw

PATCH 3/8 do_split_packages: revise for multilib case

In reply to Richard Purdie

From: Yu Ke <[email protected]>

in multilib case, the PACKAGE_DYNAMIC is overrided with multilib prefix. Take multilib:lib64-perl as example. the "perl-module-*" will become "lib64-perl-module-*"

the output_pattern in do_split_packages is designed to work with PACKAGE_DYNAMIC, so it should be applied with the same logic, i.e. overriding with multilib prefix. otherwise the do_split_package will split incorrect files

this patch implements the mulitlib override logic for do_split_packages

---
 meta/classes/package.bbclass |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
meta/classes/package.bbclass +4 -0
index ea8ad05..99c60e8 100644
@@ -70,6 +70,10 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
 	given package, usually plugins or modules.
 	"""
 
+	ml = d.getVar("MLPREFIX", True)
+	if ml and not output_pattern.startswith(ml):
+		output_pattern = ml + output_pattern
+
 	dvar = bb.data.getVar('PKGD', d, True)
 
 	packages = bb.data.getVar('PACKAGES', d, True).split()
Signature · 1 line
1.7.4.1
#4 lore raw

PATCH 4/8 eglibc: fix for multilib RPROVIDES issue

In reply to Richard Purdie

From: Yu Ke <[email protected]>

in eglibc-package.inc, the "PACKAGES" variable use the ${PN} reference, while RPROVIDES does not use ${PN}. This will lead multilib.bbclass not mapping its RPROVIDES, and cause "NO RPROVIDER: lib64-glibc-utils" error.

This patch unify the recipe to fix this issue

---
 meta/recipes-core/eglibc/eglibc-package.inc |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-core/eglibc/eglibc-package.inc +1 -1
index 9e71150..e5524e8 100644
@@ -43,7 +43,7 @@ PACKAGES += "${PN}-localedatas"
 RRECOMMENDS_${PN}-localedatas =  "${@" ".join([p for p in d.getVar('PACKAGES', True).split() if p.find("eglibc-localedata") != -1])}"
 
 RPROVIDES_eglibc = "glibc"
-RPROVIDES_eglibc-utils = "glibc-utils"
+RPROVIDES_${PN}-utils = "glibc-utils"
 RPROVIDES_eglibc-pic = "glibc-pic"
 RPROVIDES_eglibc-dev = "glibc-dev"
 RPROVIDES_eglibc-doc = "glibc-doc"
Signature · 1 line
1.7.4.1
#5 lore raw

PATCH 5/8 cmake.bbclass: add ${libdir}} for multilib case

In reply to Richard Purdie

From: Yu Ke <[email protected]>

---
 meta/classes/cmake.bbclass |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta/classes/cmake.bbclass +1 -1
index 5ac540c..89a154f 100644
@@ -57,7 +57,7 @@ set( CMAKE_INSTALL_RPATH ${OECMAKE_RPATH} )
 set( CMAKE_MODULE_PATH ${STAGING_DATADIR}/cmake/Modules/ )
 
 # add for non /usr/lib libdir, e.g. /usr/lib64
-LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${libdir})
+set( CMAKE_LIBRARY_PATH ${libdir} )
 
 EOF
 }
Signature · 1 line
1.7.4.1
#6 lore raw

PATCH 6/8 linux-yocto: revise the dependency for multilib

In reply to Richard Purdie

From: Yu Ke <[email protected]>

---
 meta/recipes-kernel/linux/linux-tools.inc |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-kernel/linux/linux-tools.inc +1 -1
index 729e912..950f197 100644
@@ -22,7 +22,7 @@ addtask install_perf after do_install before do_package
 do_compile_perf[umask] = 022
 do_install_perf[umask] = 022
 
-PERFDEPENDS = "virtual/libc:do_populate_sysroot elfutils:do_populate_sysroot"
+PERFDEPENDS = "virtual/${MLPREFIX}libc:do_populate_sysroot ${MLPREFIX}elfutils:do_populate_sysroot"
 PERFDEPENDS_libc-uclibc = ""
 PERFRDEPENDS = "python perl elfutils"
 PERFRDEPENDS_libc-uclibc = ""
Signature · 1 line
1.7.4.1
#7 lore raw

PATCH 7/8 distcc: fix makefile parameter order

In reply to Richard Purdie

From: Dongxiao Xu <[email protected]>

When linking with gcc, the parameter is read from left to write, if *.o calls a function contained in libxxx, the parameter order should be

"gcc ... *.o -lxxx".

This commit fixes the problem in distcc.

---
 meta/recipes-devtools/distcc/distcc_2.18.3.bb      |    3 ++-
 .../distcc/files/makefile-param-order.patch        |   20 ++++++++++++++++++++
 2 files changed, 22 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-devtools/distcc/files/makefile-param-order.patch
meta/recipes-devtools/distcc/distcc_2.18.3.bb +2 -1
index ece1b02..e474cce 100644
@@ -4,7 +4,7 @@ compilation of C/C++/ObjC code across machines on a network."
 SECTION = "devel"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-PR = "r6"
+PR = "r7"
 
 DEPENDS = "avahi ${GTKDEP}"
 GTKDEP_libc-uclibc = ""
@@ -16,6 +16,7 @@ RRECOMMENDS_${PN} = "avahi-daemon"
 # http://0pointer.de/public/distcc-avahi.patch
 SRC_URI = "http://distcc.googlecode.com/files/${PN}-${PV}.tar.bz2 \
            file://distcc-avahi.patch \	  
+           file://makefile-param-order.patch \
 	   file://default \
 	   file://distccmon-gnome.desktop \
 	   file://distcc"
meta/recipes-devtools/distcc/files/makefile-param-order.patch new file +20 -0
new file mode 100644
index 0000000..fc57414
@@ -0,0 +1,20 @@
+distcc: Put the "-lLIB" parameter in the end of the gcc command.
+
+Signed-off-by: Dongxiao Xu <[email protected]>
+
+Upstream-Status: Pending
+
+diff -ruN distcc-2.18.3-orig/Makefile.in distcc-2.18.3/Makefile.in
+--- distcc-2.18.3-orig/Makefile.in	2011-07-25 16:43:21.000000000 +0800
++++ distcc-2.18.3/Makefile.in	2011-07-25 16:45:39.000000000 +0800
+@@ -378,8 +378,8 @@
+ 
+ distccmon-gnome@EXEEXT@: $(mon_obj) $(gnome_obj)
+ 	$(CC) -o $@ $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(LIBS)	\
+-		$(GNOME_CFLAGS) $(GNOME_LIBS)			\
+-		$(mon_obj) $(gnome_obj)
++		$(GNOME_CFLAGS) 				\
++		$(mon_obj) $(gnome_obj) $(GNOME_LIBS)
+ 
+ 
+ ## Dist targets
Signature · 1 line
1.7.4.1
#8 lore raw

PATCH 8/8 RPM: multilib file class/color

In reply to Richard Purdie

From: Mark Hatle <[email protected]>

We need to include file class and file color in order to do the conflict resolution required with a multilib design. This is normally disabled when we don't use the internal dependency generator, patch enables it in all cases.

---
 meta/recipes-devtools/rpm/rpm/rpm-fileclass.patch |   34 +++++++++++++++++++++
 meta/recipes-devtools/rpm/rpm_5.4.0.bb            |    1 +
 2 files changed, 35 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-fileclass.patch
meta/recipes-devtools/rpm/rpm/rpm-fileclass.patch new file +34 -0
new file mode 100644
index 0000000..d1e4bf6
@@ -0,0 +1,34 @@
+rpmfc.c:  Always generate per-file information
+
+Even when the per-file dependency generate is disabled, we want to generate
+per file classification and other associated data.
+
+Note: this is a temporary workaround.  Eventually we will want to have a way
+to seed per-file dependency and other information in order to generate a
+package from previously determined information.
+
+Signed-off-by: Mark Hatle <[email protected]>
+
+diff --git a/lib/rpmfc.c b/lib/rpmfc.c
+index 0c3befd..9306999 100644
+--- a/lib/rpmfc.c
++++ b/lib/rpmfc.c
+@@ -1692,7 +1692,6 @@ rpmRC rpmfcGenerateDepends(void * specp, void * pkgp)
+ 	/* ... then generate dependencies using %{__find_requires} et al. */
+ 	rc = rpmfcGenerateDependsHelper(spec, pkg, fi);
+ 	printDeps(pkg->header);
+-	return rc;
+     }
+ 
+     /* Generate scriptlet Dependencies. */
+@@ -1720,8 +1719,8 @@ rpmRC rpmfcGenerateDepends(void * specp, void * pkgp)
+     av[ac] = NULL;
+ 
+     fc = rpmfcNew();
+-    fc->skipProv = !pkg->autoProv;
+-    fc->skipReq = !pkg->autoReq;
++    fc->skipProv = !pkg->autoProv || !internaldeps;
++    fc->skipReq = !pkg->autoReq || !internaldeps;
+     fc->tracked = 0;
+ 
+     {	const char * buildRootURL;
meta/recipes-devtools/rpm/rpm_5.4.0.bb +1 -0
index 9cfb3ab..c0e3208 100644
@@ -60,6 +60,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.0-0.20101229.src.rpm;ex
 	   file://rpm-solvedb.patch \
 	   file://rpm-tools-mtree-LDFLAGS.patch \
 	   file://fprint-pointer-fix.patch \
+	   file://rpm-fileclass.patch \
 	  "
 
 #           file://hdraddorappend.patch \
Signature · 1 line
1.7.4.1
#9 lore raw

Re: [PATCH 1/8] multilib: Add support for compiling recipes against multiple ABIs

In reply to Richard Purdie
Quoted 10 lines · Richard Purdie
meta/conf/multilib.conf new file +10 -0
+MULTILIBS ??= "multilib:lib32"
+BBCLASSEXTEND_append_pn-linux-libc-headers = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-eglibc-initial = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-eglibc = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-libgcc = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gcc-runtime = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-libtool-cross = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-zlib = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-binutils-cross = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gcc-cross-initial = " ${MULTILIBS}"

meta/conf/multilib.conf line 23

Quoted 10 lines
meta/conf/multilib.conf new file +10 -0
+BBCLASSEXTEND_append_pn-gcc-cross-intermediate = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gcc-cross = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-busybox = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-update-rc.d = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-util-linux = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gettext = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-bash = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-ncurses = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-expat = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-eglibc-locale = " ${MULTILIBS}"

What's the significance of this set of package names? I couldn't immediately spot an obvious reason why these particular recipes were getting special treatment.

It seems particularly weird to have update-rc.d in there since that is an allarch recipe and (one hopes) isn't going to change much under multilib.

p.

#10 lore raw

Re: [PATCH 1/8] multilib: Add support for compiling recipes against multiple ABIs

Quoted 26 lines · Phil Blundell
Quoted 10 lines · Richard Purdie
meta/conf/multilib.conf new file +10 -0
+MULTILIBS ??= "multilib:lib32"
+BBCLASSEXTEND_append_pn-linux-libc-headers = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-eglibc-initial = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-eglibc = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-libgcc = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gcc-runtime = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-libtool-cross = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-zlib = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-binutils-cross = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gcc-cross-initial = " ${MULTILIBS}"

meta/conf/multilib.conf line 23

Quoted 10 lines
meta/conf/multilib.conf new file +10 -0
+BBCLASSEXTEND_append_pn-gcc-cross-intermediate = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gcc-cross = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-busybox = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-update-rc.d = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-util-linux = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-gettext = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-bash = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-ncurses = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-expat = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-eglibc-locale = " ${MULTILIBS}"

What's the significance of this set of package names? I couldn't immediately spot an obvious reason why these particular recipes were getting special treatment.

Quoted 3 lines

It seems particularly weird to have update-rc.d in there since that is an allarch recipe and (one hopes) isn't going to change much under multilib.

It was the basic testing set of things we'd tested with multilib. We still need to better handle "all" arch, likely by adding in some RPROVIDES and disabling the class extensions themselves.

Its intended this list go away in time and the extentions work with any recipe and this is purely a transition artefact.

Cheers,

Richard