From d492ebf8b1801da99c679f465be98ce54fd3061a Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 15 Mar 2011 20:11:17 +0000 Subject: bitbake.conf/tune files: Adjust PACKAGE_EXTEA_ARCHS There is a problem with the current PACKAGE_EXTRA_ARCHS implementation since its impossible to control which extra architectures sort higher than TARGET_ARCH and which sort lower. In the x86 case for example, TARGET_ARCH might be "i586", i486 should be lower than this and i686 should be higher. There are also complications where its easy to inject duplicate entries into the variable. I tried various versions of this patch and concluded that it was simplest just to force the tune files to include TARGET_ARCH in the list in the right place if they're planning to customise it themselves. Other approaches with appends and prepends just complicated the code for no good reason. The TARGET_ARCH definitions should also move to the tune files but I'll leave this for a separate patch. Signed-off-by: Richard Purdie --- meta/conf/bitbake.conf | 3 ++- meta/conf/machine/include/tune-arm1136jf-s.inc | 2 +- meta/conf/machine/include/tune-arm920t.inc | 2 +- meta/conf/machine/include/tune-arm926ejs.inc | 2 +- meta/conf/machine/include/tune-arm9tdmi.inc | 2 +- meta/conf/machine/include/tune-armv7.inc | 2 +- meta/conf/machine/include/tune-atom.inc | 2 +- meta/conf/machine/include/tune-c3.inc | 2 +- meta/conf/machine/include/tune-cortexa8.inc | 2 +- meta/conf/machine/include/tune-ep9312.inc | 2 +- meta/conf/machine/include/tune-iwmmxt.inc | 2 +- meta/conf/machine/include/tune-ppc603e.inc | 2 +- meta/conf/machine/include/tune-ppce300c2.inc | 2 +- meta/conf/machine/include/tune-ppce500.inc | 2 +- meta/conf/machine/include/tune-xscale.inc | 2 +- 15 files changed, 16 insertions(+), 15 deletions(-) (limited to 'meta') diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 2cd115dfa..4108e2e11 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -94,7 +94,8 @@ BASE_PACKAGE_ARCH = "${HOST_ARCH}" PACKAGE_ARCH = "${BASE_PACKAGE_ARCH}" MACHINE_ARCH = "${@[bb.data.getVar('BASE_PACKAGE_ARCH', d, 1), bb.data.getVar('MACHINE', d, 1)][bool(bb.data.getVar('MACHINE', d, 1))]}" MACHINE_ARCH_qemux86-64 = "qemux86_64" -PACKAGE_ARCHS = "all any noarch ${TARGET_ARCH} ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}" +PACKAGE_EXTRA_ARCHS ??= "${TARGET_ARCH}" +PACKAGE_ARCHS = "all any noarch ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}" # MACHINE shouldn't be included here as a variable dependency since machine specific # packages are handled using multimachine PACKAGE_ARCHS[vardepsexclude] = "MACHINE" diff --git a/meta/conf/machine/include/tune-arm1136jf-s.inc b/meta/conf/machine/include/tune-arm1136jf-s.inc index a7717510e..2ea3c9d79 100644 --- a/meta/conf/machine/include/tune-arm1136jf-s.inc +++ b/meta/conf/machine/include/tune-arm1136jf-s.inc @@ -4,6 +4,6 @@ FEED_ARCH = "armv6" BASE_PACKAGE_ARCH = "armv6" ARM_INSTRUCTION_SET = "${@['thumb','arm'][bb.data.getVar('CPU_FEATURES', d, 1).find('thumb') == -1]}" -PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6" +PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te armv6" require conf/machine/include/tune-thumb.inc diff --git a/meta/conf/machine/include/tune-arm920t.inc b/meta/conf/machine/include/tune-arm920t.inc index fee5c586c..564b5572a 100644 --- a/meta/conf/machine/include/tune-arm920t.inc +++ b/meta/conf/machine/include/tune-arm920t.inc @@ -1,4 +1,4 @@ FEED_ARCH = "armv4t" BASE_PACKAGE_ARCH = "armv4t" TARGET_CC_ARCH = "-march=armv4t -mtune=arm920t" -PACKAGE_EXTRA_ARCHS += "armv4 armv4t" +PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t" diff --git a/meta/conf/machine/include/tune-arm926ejs.inc b/meta/conf/machine/include/tune-arm926ejs.inc index f41e46099..9d546c9fd 100644 --- a/meta/conf/machine/include/tune-arm926ejs.inc +++ b/meta/conf/machine/include/tune-arm926ejs.inc @@ -1,5 +1,5 @@ FEED_ARCH = "armv5te" -PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te" +PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te" # For gcc 3.x you need: #TARGET_CC_ARCH = "-march=armv5te -mtune=arm926ejs" # For gcc 4.x you need: diff --git a/meta/conf/machine/include/tune-arm9tdmi.inc b/meta/conf/machine/include/tune-arm9tdmi.inc index d788b5304..5446ce8ec 100644 --- a/meta/conf/machine/include/tune-arm9tdmi.inc +++ b/meta/conf/machine/include/tune-arm9tdmi.inc @@ -1,4 +1,4 @@ FEED_ARCH = "armv4t" BASE_PACKAGE_ARCH = "armv4t" -PACKAGE_EXTRA_ARCHS += "armv4 armv4t" +PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t" TARGET_CC_ARCH = "-mcpu=arm9tdmi -mtune=arm9tdmi" diff --git a/meta/conf/machine/include/tune-armv7.inc b/meta/conf/machine/include/tune-armv7.inc index 379a3eb01..979d6fedb 100644 --- a/meta/conf/machine/include/tune-armv7.inc +++ b/meta/conf/machine/include/tune-armv7.inc @@ -3,5 +3,5 @@ # This will NOT compile programs in 'ARM' mode, which is what you really want TARGET_CC_ARCH = "-march=armv7 -mfpu=vfp -mfloat-abi=softfp" FEED_ARCH = "armv7" -PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6 armv7" +PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te armv6 armv7" BASE_PACKAGE_ARCH = "armv7" diff --git a/meta/conf/machine/include/tune-atom.inc b/meta/conf/machine/include/tune-atom.inc index 2b4907fa3..668d0280b 100644 --- a/meta/conf/machine/include/tune-atom.inc +++ b/meta/conf/machine/include/tune-atom.inc @@ -2,7 +2,7 @@ BASE_PACKAGE_ARCH = "core2" TARGET_CC_ARCH = "-m32 -march=core2 -msse3 -mtune=generic -mfpmath=sse" #MOBLIN_CFLAGS = "-Os -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables" -PACKAGE_EXTRA_ARCHS += "x86 i386 i486 core2" +PACKAGE_EXTRA_ARCHS = "x86 i386 i486 i586 i686 core2" # Work around a gcc bug for core2 which caused matchbox-panel to segfault # and possibly others. diff --git a/meta/conf/machine/include/tune-c3.inc b/meta/conf/machine/include/tune-c3.inc index 1d636e89c..d33df5f1e 100644 --- a/meta/conf/machine/include/tune-c3.inc +++ b/meta/conf/machine/include/tune-c3.inc @@ -1,4 +1,4 @@ TARGET_CC_ARCH = "-march=c3 -mtune=c3" -PACKAGE_EXTRA_ARCHS += "i386 i486 i586" +PACKAGE_EXTRA_ARCHS = "i386 i486 i586" BASE_PACKAGE_ARCH = "i586" FEED_ARCH = "i586" diff --git a/meta/conf/machine/include/tune-cortexa8.inc b/meta/conf/machine/include/tune-cortexa8.inc index 3ec1c0350..a5b982ab7 100644 --- a/meta/conf/machine/include/tune-cortexa8.inc +++ b/meta/conf/machine/include/tune-cortexa8.inc @@ -10,4 +10,4 @@ TARGET_CC_ARCH = "-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp FEED_ARCH = "armv7a" BASE_PACKAGE_ARCH = "armv7a" -PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6 armv7 armv7a" +PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te armv6 armv7 armv7a" diff --git a/meta/conf/machine/include/tune-ep9312.inc b/meta/conf/machine/include/tune-ep9312.inc index d0c5bb2e9..e1515a01a 100644 --- a/meta/conf/machine/include/tune-ep9312.inc +++ b/meta/conf/machine/include/tune-ep9312.inc @@ -2,7 +2,7 @@ TARGET_CC_ARCH = "-march=ep9312 -mtune=ep9312 -mcpu=ep9312" # add "-mfp=maverick" for newer gcc versions > 4.0 #set arch to ep9312 for all generated packages -PACKAGE_EXTRA_ARCHS += "armv4t ep9312" +PACKAGE_EXTRA_ARCHS = "arm armv4t ep9312" BASE_PACKAGE_ARCH = "ep9312" FEED_ARCH = "ep9312" diff --git a/meta/conf/machine/include/tune-iwmmxt.inc b/meta/conf/machine/include/tune-iwmmxt.inc index f7291be80..7191ab0b3 100644 --- a/meta/conf/machine/include/tune-iwmmxt.inc +++ b/meta/conf/machine/include/tune-iwmmxt.inc @@ -2,6 +2,6 @@ # Please use tune-xscale for PXA255/PXA26x based processors. TARGET_CC_ARCH = "-march=iwmmxt -mcpu=iwmmxt -mtune=iwmmxt" BASE_PACKAGE_ARCH = "iwmmxt" -PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te iwmmxt" +PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te iwmmxt" FEED_ARCH = "iwmmxt" diff --git a/meta/conf/machine/include/tune-ppc603e.inc b/meta/conf/machine/include/tune-ppc603e.inc index 15a72d10a..dc95d0d77 100644 --- a/meta/conf/machine/include/tune-ppc603e.inc +++ b/meta/conf/machine/include/tune-ppc603e.inc @@ -1,4 +1,4 @@ TARGET_CC_ARCH = "-mcpu=603e -mhard-float" BASE_PACKAGE_ARCH = "ppc603e" FEED_ARCH = "ppc603e" -PACKAGE_EXTRA_ARCHS += "ppc603e" +PACKAGE_EXTRA_ARCHS = "powerpc ppc603e" diff --git a/meta/conf/machine/include/tune-ppce300c2.inc b/meta/conf/machine/include/tune-ppce300c2.inc index 295687518..3e552e60d 100644 --- a/meta/conf/machine/include/tune-ppce300c2.inc +++ b/meta/conf/machine/include/tune-ppce300c2.inc @@ -1,3 +1,3 @@ TARGET_CC_ARCH = "-mcpu=e300c2 -msoft-float" BASE_PACKAGE_ARCH = "ppce300" -PACKAGE_EXTRA_ARCHS += "ppce300" +PACKAGE_EXTRA_ARCHS = "powerpc ppce300" diff --git a/meta/conf/machine/include/tune-ppce500.inc b/meta/conf/machine/include/tune-ppce500.inc index 44f8742f9..45e1f0d49 100644 --- a/meta/conf/machine/include/tune-ppce500.inc +++ b/meta/conf/machine/include/tune-ppce500.inc @@ -1,4 +1,4 @@ TARGET_CC_ARCH = "-mcpu=8540" BASE_PACKAGE_ARCH = "ppce500" FEED_ARCH = "ppce500" -PACKAGE_EXTRA_ARCHS += "ppce500" +PACKAGE_EXTRA_ARCHS = "powerpc ppce500" diff --git a/meta/conf/machine/include/tune-xscale.inc b/meta/conf/machine/include/tune-xscale.inc index f1ef3d46a..cfdcc9943 100644 --- a/meta/conf/machine/include/tune-xscale.inc +++ b/meta/conf/machine/include/tune-xscale.inc @@ -5,7 +5,7 @@ INHERIT += "siteinfo" TARGET_CC_ARCH = "-march=armv5te -mtune=xscale" TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale" BASE_PACKAGE_ARCH = "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}" -PACKAGE_EXTRA_ARCHS += "${@['armv4b armv4tb armv5teb', 'armv4 armv4t armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}" +PACKAGE_EXTRA_ARCHS = "${@['armeb armv4b armv4tb armv5teb', 'arm armv4 armv4t armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}" # webkit-gtk has alignment issues with double instructions on armv5 so # disable them here -- cgit v1.2.3