Skip to contentSkip to conversation

gcc-5, aarch64 support for musl

PATCH In review Khem Raj 4 participants 14 messages May 6, 2015 – May 7, 2015

lore
Share & tools
lore

Khem Raj

author
#0 lore raw

cover gcc-5, aarch64 support for musl

This patchset adds gcc 5.1.0 recipes, additionally fixes gcc configure defaults for cross building, fixes aarch64 multilib case

Accomodate aach64 for musl and let glibc not build for non-glibc libcs

add patch to libart-lgpl to avoid configure time checks for datasizes

Khem Raj (6):
glibc: ignore for musl/uclibc but only for target recipes
gcc: Add 5 recipes
insane: Support aarch64 on musl
gcc-4.9,gcc-5: Use variable SYSTEMLIBS_DIR instead of hardcoding it
for aarch64
gcc-cross: Pass EXTRA_OECONF_GCC_FLOAT to configure
libart-lgpl: Fix cross compiling

 meta/classes/insane.bbclass                        |    2 +
 meta/recipes-core/glibc/glibc-collateral.inc       |    3 +
 meta/recipes-core/glibc/glibc_2.21.bb              |    9 +-
 meta/recipes-devtools/gcc/gcc-4.9.inc              |    1 +
 ...IBS_DIR-replacement-instead-of-hardcoding.patch |   24 +
 meta/recipes-devtools/gcc/gcc-5.1.inc              |  124 +
 .../0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch     |   42 +
 .../gcc/gcc-5.1/0002-uclibc-conf.patch             |   53 +
 .../0003-gcc-uclibc-locale-ctype_touplow_t.patch   |   87 +
 .../gcc/gcc-5.1/0004-uclibc-locale.patch           | 2862 ++++++++++++++++++++
 .../gcc/gcc-5.1/0005-uclibc-locale-no__x.patch     |  257 ++
 .../gcc/gcc-5.1/0006-uclibc-locale-wchar_fix.patch |   68 +
 .../gcc/gcc-5.1/0007-uclibc-locale-update.patch    |  542 ++++
 .../gcc/gcc-5.1/0008-missing-execinfo_h.patch      |   28 +
 .../gcc/gcc-5.1/0009-c99-snprintf.patch            |   28 +
 .../0010-gcc-poison-system-directories.patch       |  192 ++
 .../gcc/gcc-5.1/0011-gcc-poison-dir-extend.patch   |   39 +
 .../0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch |   73 +
 .../gcc/gcc-5.1/0013-64-bit-multilib-hack.patch    |   85 +
 .../gcc/gcc-5.1/0014-optional-libstdc.patch        |  101 +
 ...0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch |   59 +
 .../gcc/gcc-5.1/0016-COLLECT_GCC_OPTIONS.patch     |   38 +
 ...efaults.h-in-B-instead-of-S-and-t-oe-in-B.patch |   96 +
 .../gcc-5.1/0018-fortran-cross-compile-hack.patch  |   46 +
 .../gcc/gcc-5.1/0019-libgcc-sjlj-check.patch       |   74 +
 .../gcc/gcc-5.1/0020-cpp-honor-sysroot.patch       |   54 +
 .../gcc-5.1/0021-MIPS64-Default-to-N64-ABI.patch   |   57 +
 ...C_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch |  216 ++
 ...0023-gcc-Fix-argument-list-too-long-error.patch |   40 +
 .../gcc/gcc-5.1/0024-Disable-sdt.patch             |  113 +
 .../gcc/gcc-5.1/0025-libtool.patch                 |   42 +
 ...4-pass-fix-v4bx-to-linker-to-support-EABI.patch |   43 +
 ...tilib-config-files-from-B-instead-of-usin.patch |  102 +
 ...-libdir-from-.la-which-usually-points-to-.patch |   31 +
 .../gcc/gcc-5.1/0029-export-CPP.patch              |   53 +
 ...AltiVec-generation-on-powepc-linux-target.patch |   44 +
 ...-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch |   42 +
 ...Ensure-target-gcc-headers-can-be-included.patch |   98 +
 ...-t-build-with-disable-dependency-tracking.patch |   54 +
 ...h-host-directory-during-relink-if-inst_pr.patch |   38 +
 ...-link-the-plugins-with-libgomp-explicitly.patch |   83 +
 ...IBS_DIR-replacement-instead-of-hardcoding.patch |   27 +
 .../recipes-devtools/gcc/gcc-cross-canadian_5.1.bb |    5 +
 meta/recipes-devtools/gcc/gcc-cross-initial_5.1.bb |    2 +
 meta/recipes-devtools/gcc/gcc-cross.inc            |    2 +
 meta/recipes-devtools/gcc/gcc-cross_5.1.bb         |    3 +
 .../gcc/gcc-crosssdk-initial_5.1.bb                |    3 +
 meta/recipes-devtools/gcc/gcc-crosssdk_5.1.bb      |    2 +
 meta/recipes-devtools/gcc/gcc-runtime_5.1.bb       |    7 +
 meta/recipes-devtools/gcc/gcc-sanitizers_5.1.bb    |    2 +
 meta/recipes-devtools/gcc/gcc-source_5.1.bb        |    2 +
 meta/recipes-devtools/gcc/gcc_5.1.bb               |    7 +
 meta/recipes-devtools/gcc/libgcc-initial_5.1.bb    |    2 +
 meta/recipes-devtools/gcc/libgcc_5.1.bb            |    2 +
 meta/recipes-devtools/gcc/libgfortran_5.1.bb       |    3 +
 .../libart_lgpl-2.3.21-crosscompile.patch          |   84 +
 meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb     |   10 +-
 57 files changed, 6193 insertions(+), 13 deletions(-)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.9/0063-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1.inc
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0002-uclibc-conf.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0003-gcc-uclibc-locale-ctype_touplow_t.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0004-uclibc-locale.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0005-uclibc-locale-no__x.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0006-uclibc-locale-wchar_fix.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0007-uclibc-locale-update.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0008-missing-execinfo_h.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0009-c99-snprintf.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0010-gcc-poison-system-directories.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0011-gcc-poison-dir-extend.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0013-64-bit-multilib-hack.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0014-optional-libstdc.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0016-COLLECT_GCC_OPTIONS.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0018-fortran-cross-compile-hack.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0019-libgcc-sjlj-check.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0020-cpp-honor-sysroot.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0021-MIPS64-Default-to-N64-ABI.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0022-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0023-gcc-Fix-argument-list-too-long-error.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0024-Disable-sdt.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0025-libtool.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0026-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0027-Use-the-multilib-config-files-from-B-instead-of-usin.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0028-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0029-export-CPP.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0031-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0032-Ensure-target-gcc-headers-can-be-included.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0035-Dont-link-the-plugins-with-libgomp-explicitly.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-cross-canadian_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-cross-initial_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-cross_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-crosssdk-initial_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-crosssdk_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-runtime_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-sanitizers_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-source_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/libgcc-initial_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/libgcc_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/libgfortran_5.1.bb
 create mode 100644 meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch
Signature · 1 line
2.1.4
author
#1 lore raw

PATCH 1/6 glibc: ignore for musl/uclibc but only for target recipes

we still need nativesdk or native recipes for libc to come from glibc, but only be ignored for target recipes types

Change-Id Ibaf8114f2aef63f1eadf493b264e78cd928535a0
---
 meta/recipes-core/glibc/glibc-collateral.inc | 3 +++
 meta/recipes-core/glibc/glibc_2.21.bb        | 9 +++------
 2 files changed, 6 insertions(+), 6 deletions(-)
meta/recipes-core/glibc/glibc-collateral.inc +3 -0
index f82db06..60655eb 100644
@@ -17,3 +17,6 @@ do_compile[noexec] = "1"
 
 do_install[depends] += "virtual/${MLPREFIX}libc:do_populate_sysroot"
 
+COMPATIBLE_HOST_libc-musl_class-target = "null"
+COMPATIBLE_HOST_libc-uclibc_class-target = "null"
+
meta/recipes-core/glibc/glibc_2.21.bb +3 -6
index 58a9601..5295ddd 100644
@@ -64,14 +64,11 @@ TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
 GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN es_CR.ISO-8859-1"
 
 #
-# We will skip parsing glibc when system C library selection is not glibc
+# We will skip parsing glibc when target system C library selection is not glibc
 # this helps in easing out parsing for non-glibc system libraries
 #
-python __anonymous () {
-    if d.getVar('TCLIBC', True) != "glibc":
-        raise bb.parse.SkipPackage("incompatible with %s C library" %
-                                   d.getVar('TCLIBC', True))
-}
+COMPATIBLE_HOST_libc-musl_class-target = "null"
+COMPATIBLE_HOST_libc-uclibc_class-target = "null"
 
 EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
                 --without-cvs --disable-profile \
Signature · 1 line
2.1.4
author
#2 lore raw

PATCH 2/6 gcc: Add 5 recipes

Drop backports obviously
additionally drop local patches around parallel compilation since it got reworked upstream

To select set

GCCVERSION = "5.1%"
SDKGCCVERSION = "5.1%"

in local.conf

Change-Id Icdfa61017a617244128f361b022e7c8f1f9e0610
---
 meta/recipes-devtools/gcc/gcc-5.1.inc              |  123 +
 .../0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch     |   42 +
 .../gcc/gcc-5.1/0002-uclibc-conf.patch             |   53 +
 .../0003-gcc-uclibc-locale-ctype_touplow_t.patch   |   87 +
 .../gcc/gcc-5.1/0004-uclibc-locale.patch           | 2862 ++++++++++++++++++++
 .../gcc/gcc-5.1/0005-uclibc-locale-no__x.patch     |  257 ++
 .../gcc/gcc-5.1/0006-uclibc-locale-wchar_fix.patch |   68 +
 .../gcc/gcc-5.1/0007-uclibc-locale-update.patch    |  542 ++++
 .../gcc/gcc-5.1/0008-missing-execinfo_h.patch      |   28 +
 .../gcc/gcc-5.1/0009-c99-snprintf.patch            |   28 +
 .../0010-gcc-poison-system-directories.patch       |  192 ++
 .../gcc/gcc-5.1/0011-gcc-poison-dir-extend.patch   |   39 +
 .../0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch |   73 +
 .../gcc/gcc-5.1/0013-64-bit-multilib-hack.patch    |   85 +
 .../gcc/gcc-5.1/0014-optional-libstdc.patch        |  101 +
 ...0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch |   59 +
 .../gcc/gcc-5.1/0016-COLLECT_GCC_OPTIONS.patch     |   38 +
 ...efaults.h-in-B-instead-of-S-and-t-oe-in-B.patch |   96 +
 .../gcc-5.1/0018-fortran-cross-compile-hack.patch  |   46 +
 .../gcc/gcc-5.1/0019-libgcc-sjlj-check.patch       |   74 +
 .../gcc/gcc-5.1/0020-cpp-honor-sysroot.patch       |   54 +
 .../gcc-5.1/0021-MIPS64-Default-to-N64-ABI.patch   |   57 +
 ...C_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch |  216 ++
 ...0023-gcc-Fix-argument-list-too-long-error.patch |   40 +
 .../gcc/gcc-5.1/0024-Disable-sdt.patch             |  113 +
 .../gcc/gcc-5.1/0025-libtool.patch                 |   42 +
 ...4-pass-fix-v4bx-to-linker-to-support-EABI.patch |   43 +
 ...tilib-config-files-from-B-instead-of-usin.patch |  102 +
 ...-libdir-from-.la-which-usually-points-to-.patch |   31 +
 .../gcc/gcc-5.1/0029-export-CPP.patch              |   53 +
 ...AltiVec-generation-on-powepc-linux-target.patch |   44 +
 ...-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch |   42 +
 ...Ensure-target-gcc-headers-can-be-included.patch |   98 +
 ...-t-build-with-disable-dependency-tracking.patch |   54 +
 ...h-host-directory-during-relink-if-inst_pr.patch |   38 +
 ...-link-the-plugins-with-libgomp-explicitly.patch |   83 +
 .../recipes-devtools/gcc/gcc-cross-canadian_5.1.bb |    5 +
 meta/recipes-devtools/gcc/gcc-cross-initial_5.1.bb |    2 +
 meta/recipes-devtools/gcc/gcc-cross_5.1.bb         |    3 +
 .../gcc/gcc-crosssdk-initial_5.1.bb                |    3 +
 meta/recipes-devtools/gcc/gcc-crosssdk_5.1.bb      |    2 +
 meta/recipes-devtools/gcc/gcc-runtime_5.1.bb       |    7 +
 meta/recipes-devtools/gcc/gcc-sanitizers_5.1.bb    |    2 +
 meta/recipes-devtools/gcc/gcc-source_5.1.bb        |    2 +
 meta/recipes-devtools/gcc/gcc_5.1.bb               |    7 +
 meta/recipes-devtools/gcc/libgcc-initial_5.1.bb    |    2 +
 meta/recipes-devtools/gcc/libgcc_5.1.bb            |    2 +
 meta/recipes-devtools/gcc/libgfortran_5.1.bb       |    3 +
 48 files changed, 6043 insertions(+)
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1.inc
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0002-uclibc-conf.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0003-gcc-uclibc-locale-ctype_touplow_t.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0004-uclibc-locale.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0005-uclibc-locale-no__x.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0006-uclibc-locale-wchar_fix.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0007-uclibc-locale-update.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0008-missing-execinfo_h.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0009-c99-snprintf.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0010-gcc-poison-system-directories.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0011-gcc-poison-dir-extend.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0013-64-bit-multilib-hack.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0014-optional-libstdc.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0016-COLLECT_GCC_OPTIONS.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0018-fortran-cross-compile-hack.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0019-libgcc-sjlj-check.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0020-cpp-honor-sysroot.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0021-MIPS64-Default-to-N64-ABI.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0022-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0023-gcc-Fix-argument-list-too-long-error.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0024-Disable-sdt.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0025-libtool.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0026-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0027-Use-the-multilib-config-files-from-B-instead-of-usin.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0028-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0029-export-CPP.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0031-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0032-Ensure-target-gcc-headers-can-be-included.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0035-Dont-link-the-plugins-with-libgomp-explicitly.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-cross-canadian_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-cross-initial_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-cross_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-crosssdk-initial_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-crosssdk_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-runtime_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-sanitizers_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc-source_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/gcc_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/libgcc-initial_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/libgcc_5.1.bb
 create mode 100644 meta/recipes-devtools/gcc/libgfortran_5.1.bb
meta/recipes-devtools/gcc/gcc-5.1.inc new file +123 -0
new file mode 100644
index 0000000..d38a7d9
@@ -0,0 +1,123 @@
+require gcc-common.inc
+
+# Third digit in PV should be incremented after a minor release
+
+PV = "5.1.0"
+
+#SNAP = "5-20150405"
+
+# BINV should be incremented to a revision after a minor gcc release
+
+BINV = "5.1.0"
+
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-5.1:"
+
+DEPENDS =+ "mpfr gmp libmpc zlib"
+NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native"
+
+LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
+
+LIC_FILES_CHKSUM = "\
+    file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+    file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
+    file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
+    file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+    file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \
+"
+#BASEURI = "http://www.netgull.com/gcc/snapshots/${SNAP}/gcc-${SNAP}.tar.bz2"
+BASEURI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "d5525b1127d07d215960e6051c5da35e"
+SRC_URI[sha256sum] = "b7dafdf89cbb0e20333dbf5b5349319ae06e3d1a30bf3515b5488f7e89dca5ad"
+
+SRC_URI = "\
+           ${BASEURI} \
+           file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
+           file://0002-uclibc-conf.patch \
+           file://0003-gcc-uclibc-locale-ctype_touplow_t.patch \
+           file://0004-uclibc-locale.patch \
+           file://0005-uclibc-locale-no__x.patch \
+           file://0006-uclibc-locale-wchar_fix.patch \
+           file://0007-uclibc-locale-update.patch \
+           file://0008-missing-execinfo_h.patch \
+           file://0009-c99-snprintf.patch \
+           file://0010-gcc-poison-system-directories.patch \
+           file://0011-gcc-poison-dir-extend.patch \
+           file://0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \
+           file://0013-64-bit-multilib-hack.patch \
+           file://0014-optional-libstdc.patch \
+           file://0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch \
+           file://0016-COLLECT_GCC_OPTIONS.patch \
+           file://0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \
+           file://0018-fortran-cross-compile-hack.patch \
+           file://0019-libgcc-sjlj-check.patch \
+           file://0020-cpp-honor-sysroot.patch \
+           file://0021-MIPS64-Default-to-N64-ABI.patch \
+           file://0022-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \
+           file://0023-gcc-Fix-argument-list-too-long-error.patch \
+           file://0024-Disable-sdt.patch \
+           file://0025-libtool.patch \
+           file://0026-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \
+           file://0027-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
+           file://0028-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \
+           file://0029-export-CPP.patch \
+           file://0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch \
+           file://0031-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch \
+           file://0032-Ensure-target-gcc-headers-can-be-included.patch \
+           file://0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \
+           file://0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch \
+           file://0035-Dont-link-the-plugins-with-libgomp-explicitly.patch \
+          "
+
+#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${SNAP}"
+S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
+B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
+
+# Language Overrides
+FORTRAN = ""
+JAVA = ""
+
+LTO = "--enable-lto"
+
+EXTRA_OECONF_BASE = "\
+    ${LTO} \
+    --enable-libssp \
+    --disable-bootstrap \
+    --disable-libmudflap \
+    --with-system-zlib \
+    --with-linker-hash-style=${LINKER_HASH_STYLE} \
+    --enable-linker-build-id \
+    --with-ppl=no \
+    --with-cloog=no \
+    --enable-checking=release \
+    --enable-cheaders=c_global \
+"
+
+EXTRA_OECONF_INITIAL = "\
+    --disable-libmudflap \
+    --disable-libgomp \
+    --disable-libssp \
+    --disable-libquadmath \
+    --with-system-zlib \
+    --disable-lto \
+    --disable-plugin \
+    --enable-decimal-float=no \
+"
+
+EXTRA_OECONF_INTERMEDIATE = "\
+    --disable-libmudflap \
+    --disable-libgomp \
+    --disable-libquadmath \
+    --with-system-zlib \
+    --disable-lto \
+    --disable-plugin \
+    --disable-libssp \
+"
+
+EXTRA_OECONF_append_libc-uclibc = " --disable-decimal-float "
+
+EXTRA_OECONF_PATHS = "\
+    --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \
+    --with-sysroot=/not/exist \
+    --with-build-sysroot=${STAGING_DIR_TARGET} \
+"
meta/recipes-devtools/gcc/gcc-5.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch new file +42 -0

42 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0002-uclibc-conf.patch new file +53 -0

53 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0003-gcc-uclibc-locale-ctype_touplow_t.patch new file +87 -0

87 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0004-uclibc-locale.patch new file +2862 -0

2,695 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0005-uclibc-locale-no__x.patch new file +257 -0

257 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0006-uclibc-locale-wchar_fix.patch new file +68 -0

68 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0007-uclibc-locale-update.patch new file +542 -0

542 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0008-missing-execinfo_h.patch new file +28 -0
new file mode 100644
index 0000000..b2f6b18

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-5.1/0009-c99-snprintf.patch new file +28 -0
new file mode 100644
index 0000000..525b2a1

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-5.1/0010-gcc-poison-system-directories.patch new file +192 -0

192 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0011-gcc-poison-dir-extend.patch new file +39 -0
new file mode 100644
index 0000000..067d985

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-5.1/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch new file +73 -0

73 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0013-64-bit-multilib-hack.patch new file +85 -0

85 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0014-optional-libstdc.patch new file +101 -0

101 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch new file +59 -0

59 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0016-COLLECT_GCC_OPTIONS.patch new file +38 -0
new file mode 100644
index 0000000..359de35

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-5.1/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch new file +96 -0

96 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0018-fortran-cross-compile-hack.patch new file +46 -0

46 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0019-libgcc-sjlj-check.patch new file +74 -0

74 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0020-cpp-honor-sysroot.patch new file +54 -0

54 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0021-MIPS64-Default-to-N64-ABI.patch new file +57 -0

57 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0022-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch new file +216 -0

216 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0023-gcc-Fix-argument-list-too-long-error.patch new file +40 -0
new file mode 100644
index 0000000..b337df5

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-5.1/0024-Disable-sdt.patch new file +113 -0

113 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0025-libtool.patch new file +42 -0

42 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0026-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch new file +43 -0

43 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0027-Use-the-multilib-config-files-from-B-instead-of-usin.patch new file +102 -0

102 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0028-Avoid-using-libdir-from-.la-which-usually-points-to-.patch new file +31 -0
new file mode 100644
index 0000000..4902e90

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-5.1/0029-export-CPP.patch new file +53 -0

53 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch new file +44 -0

44 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0031-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch new file +42 -0

42 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0032-Ensure-target-gcc-headers-can-be-included.patch new file +98 -0

98 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch new file +54 -0

54 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-5.1/0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch new file +38 -0
new file mode 100644
index 0000000..207cd7c

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-5.1/0035-Dont-link-the-plugins-with-libgomp-explicitly.patch new file +83 -0

83 lines not on this page · raw message

meta/recipes-devtools/gcc/gcc-cross-canadian_5.1.bb new file +5 -0
new file mode 100644
index 0000000..bf53c5c

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-cross-initial_5.1.bb new file +2 -0
new file mode 100644
index 0000000..4c73e5c

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-cross_5.1.bb new file +3 -0
new file mode 100644
index 0000000..b43cca0

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-crosssdk-initial_5.1.bb new file +3 -0
new file mode 100644
index 0000000..fd90e11

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-crosssdk_5.1.bb new file +2 -0
new file mode 100644
index 0000000..40a6c4f

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-runtime_5.1.bb new file +7 -0
new file mode 100644
index 0000000..8f31e77

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-sanitizers_5.1.bb new file +2 -0
new file mode 100644
index 0000000..601f666

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc-source_5.1.bb new file +2 -0
new file mode 100644
index 0000000..234b82e

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/gcc_5.1.bb new file +7 -0
new file mode 100644
index 0000000..c4827c6

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/libgcc-initial_5.1.bb new file +2 -0
new file mode 100644
index 0000000..19f253f

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/libgcc_5.1.bb new file +2 -0
new file mode 100644
index 0000000..a5152f2

Lines of this file are not shown. View the raw message.

meta/recipes-devtools/gcc/libgfortran_5.1.bb new file +3 -0
new file mode 100644
index 0000000..71dd8b4

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.1.4

Part of the diff is not shown here. View the raw message.

author
#3 lore raw

PATCH 3/6 insane: Support aarch64 on musl

In reply to Khem Raj

musl 1.1.8 supports aarch64

Change-Id Ie8d39a29dcb7a41c8d59d2a00528b6add8a7655c
---
 meta/classes/insane.bbclass | 2 ++
 1 file changed, 2 insertions(+)
meta/classes/insane.bbclass +2 -0
index ab4bd78..14d4a3c 100644
@@ -106,6 +106,8 @@ def package_qa_get_machine_dict():
 
                       },
             "linux-musl" : { 
+                        "aarch64" :   (183,    0,    0,            True,          64),
+                        "aarch64_be" :(183,    0,    0,            False,         64),
                         "arm" :       (  40,    97,    0,          True,          32),
                         "armeb":      (  40,    97,    0,          False,         32),
                         "powerpc":    (  20,     0,    0,          False,         32),
Signature · 1 line
2.1.4
author
#4 lore raw

PATCH 4/6 gcc-4.9, gcc-5: Use variable SYSTEMLIBS_DIR instead of hardcoding it for aarch64

In reply to Khem Raj
Change-Id I54dc82a569f02d489137d88f16d6b768c4ab779b
---
 meta/recipes-devtools/gcc/gcc-4.9.inc              |  1 +
 ...IBS_DIR-replacement-instead-of-hardcoding.patch | 24 +++++++++++++++++++
 meta/recipes-devtools/gcc/gcc-5.1.inc              |  1 +
 ...IBS_DIR-replacement-instead-of-hardcoding.patch | 27 ++++++++++++++++++++++
 4 files changed, 53 insertions(+)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.9/0063-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-5.1/0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
meta/recipes-devtools/gcc/gcc-4.9.inc +1 -0
index ee31f0b..9ed3e09 100644
@@ -78,6 +78,7 @@ SRC_URI = "\
     file://0060-Only-allow-e500-double-in-SPE_SIMD_REGNO_P-registers.patch \
     file://0061-target-gcc-includedir.patch \
     file://0062-gcc-var-tracking.c-backport-from-gcc-trunk-r212178.patch \
+    file://0063-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \
 "
 SRC_URI[md5sum] = "4df8ee253b7f3863ad0b86359cd39c43"
 SRC_URI[sha256sum] = "2020c98295856aa13fda0f2f3a4794490757fc24bcca918d52cc8b4917b972dd"
meta/recipes-devtools/gcc/gcc-4.9/0063-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch new file +24 -0
new file mode 100644
index 0000000..c48bd48
@@ -0,0 +1,24 @@
+From 861bcfd4ae814f351e0c668ee26d01d1331e0422 Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Tue, 28 Apr 2015 23:15:27 -0700
+Subject: [PATCH 36/37] Use SYSTEMLIBS_DIR replacement instead of hardcoding
+ base_libdir
+
+Signed-off-by: Khem Raj <[email protected]>
+---
+ gcc/config/aarch64/aarch64-linux.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: gcc-4.9.2/gcc/config/aarch64/aarch64-linux.h
+===================================================================
+--- gcc-4.9.2.orig/gcc/config/aarch64/aarch64-linux.h
++++ gcc-4.9.2/gcc/config/aarch64/aarch64-linux.h
+@@ -21,7 +21,7 @@
+ #ifndef GCC_AARCH64_LINUX_H
+ #define GCC_AARCH64_LINUX_H
+ 
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}.so.1"
++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}.so.1"
+ 
+ #define CPP_SPEC "%{pthread:-D_REENTRANT}"
+ 
meta/recipes-devtools/gcc/gcc-5.1.inc +1 -0
index d38a7d9..db4c795 100644
@@ -67,6 +67,7 @@ SRC_URI = "\
            file://0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \
            file://0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch \
            file://0035-Dont-link-the-plugins-with-libgomp-explicitly.patch \
+           file://0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \
           "
 
 #S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${SNAP}"
meta/recipes-devtools/gcc/gcc-5.1/0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch new file +27 -0
new file mode 100644
index 0000000..b691946
@@ -0,0 +1,27 @@
+From 861bcfd4ae814f351e0c668ee26d01d1331e0422 Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Tue, 28 Apr 2015 23:15:27 -0700
+Subject: [PATCH 36/37] Use SYSTEMLIBS_DIR replacement instead of hardcoding
+ base_libdir
+
+Signed-off-by: Khem Raj <[email protected]>
+---
+ gcc/config/aarch64/aarch64-linux.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
+index 9abb252..79525ee 100644
+--- a/gcc/config/aarch64/aarch64-linux.h
++++ b/gcc/config/aarch64/aarch64-linux.h
+@@ -21,7 +21,7 @@
+ #ifndef GCC_AARCH64_LINUX_H
+ #define GCC_AARCH64_LINUX_H
+ 
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
++#define GLIBC_DYNAMIC_LINKER  SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
+ 
+ #undef  ASAN_CC1_SPEC
+ #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
+-- 
+2.1.4
+
Signature · 1 line
2.1.4
author
#5 lore raw

PATCH 5/6 gcc-cross: Pass EXTRA_OECONF_GCC_FLOAT to configure

In reply to Khem Raj

This helps in configuring the cross compiler to have sane defaults in case of ARM e.g. it will do the right thing for selecting hardfloat ABI when invoked without using TOOLCHAIN_OPTIONS on cmdline.

---
 meta/recipes-devtools/gcc/gcc-cross.inc | 2 ++
 1 file changed, 2 insertions(+)
meta/recipes-devtools/gcc/gcc-cross.inc +2 -0
index 9792950..3279efb 100644
@@ -30,6 +30,8 @@ EXTRA_OECONF_PATHS = "\
     --with-build-sysroot=${STAGING_DIR_TARGET} \
 "
 
+EXTRA_OECONF_GCC_FLOAT = "${@get_gcc_float_setting(bb, d)}"
+
 ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
 
 do_compile () {
Signature · 1 line
2.1.4
#6 lore raw

Re: [PATCH 5/6] gcc-cross: Pass EXTRA_OECONF_GCC_FLOAT to configure

Quoted 14 lines · Khem Raj

This helps in configuring the cross compiler to have sane defaults in case of ARM e.g. it will do the right thing for selecting hardfloat ABI when invoked without using TOOLCHAIN_OPTIONS on cmdline.

---
 meta/recipes-devtools/gcc/gcc-cross.inc | 2 ++
 1 file changed, 2 insertions(+)
meta/recipes-devtools/gcc/gcc-cross.inc +0 -0
index 9792950..3279efb 100644

meta/recipes-devtools/gcc/gcc-cross.inc EXTRA_OECONF_PATHS = "\ · line 37

Quoted 8 lines
meta/recipes-devtools/gcc/gcc-cross.inc +2 -0
@@ -30,6 +30,8 @@ EXTRA_OECONF_PATHS = "\
     --with-build-sysroot=${STAGING_DIR_TARGET} \
 "
 
+EXTRA_OECONF_GCC_FLOAT = "${@get_gcc_float_setting(bb, d)}"
+
 ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
 
 do_compile () {

But we build gcc-cross-arm once. This will cause it to rebuild depending on which machine you target? Worse, it likely will now do this for all architectures, not just arm.

Cheers,

Richard

author
#7 lore raw

Re: [PATCH 5/6] gcc-cross: Pass EXTRA_OECONF_GCC_FLOAT to configure

Quoted 6 lines · Richard Purdie

But we build gcc-cross-arm once. This will cause it to rebuild depending on which machine you target? Worse, it likely will now do this for all architectures, not just arm.

only when float ABI changes which may be common across a subset of architectures.

although, I think its going to become a severe usability issue. Look
at the archives there are so many issues reported in various forums which end up exactly to this problem, since users expect that once they installed the SDK it works out of box for the default architecture which is not
the case. It just seems wrong build optimization to make it common per arch it if we can’t have user expectations met.

#8 lore raw

Re: [PATCH 5/6] gcc-cross: Pass EXTRA_OECONF_GCC_FLOAT to configure

Quoted 6 lines · Khem Raj
Quoted 5 lines · Richard Purdie

But we build gcc-cross-arm once. This will cause it to rebuild depending on which machine you target? Worse, it likely will now do this for all architectures, not just arm.

Quoted 6 lines

only when float ABI changes which may be common across a subset of architectures.

although, I think its going to become a severe usability issue. Look
at the archives there are so many issues reported in various forums which end up exactly to this problem, since users expect that once they installed the SDK it works out of box for the default architecture which is not
the case. It just seems wrong build optimization to make it common per arch it if we can’t have user expectations met.

To be honest I haven't seen that many reports of the problem. We do ship an environment file and in that file we have the options gcc needs to work, the sysroot, the other cflags and the float abi. Unless we go back to a setup of hardcoding the cflags into gcc and have a gcc per set of cflags, this isn't going to work since it solves part of the problem but not all of it.

Our other alternative is to wrap gcc with a script (preferred in PATH) which ensures the right cflags are present. I'd obviously prefer not to do that but it is an option if we believe people can't cope with the environment script.

Cheers,

Richard

author
#9 lore raw

Re: [PATCH 5/6] gcc-cross: Pass EXTRA_OECONF_GCC_FLOAT to configure

Quoted 10 lines · Richard Purdie
Quoted 6 lines · Khem Raj
Quoted 5 lines · Richard Purdie

But we build gcc-cross-arm once. This will cause it to rebuild depending on which machine you target? Worse, it likely will now do this for all architectures, not just arm.

Quoted 8 lines
Quoted 6 lines

only when float ABI changes which may be common across a subset of architectures.

although, I think its going to become a severe usability issue. Look
at the archives there are so many issues reported in various forums which end up exactly to this problem, since users expect that once they installed the SDK it works out of box for the default architecture which is not
the case. It just seems wrong build optimization to make it common per arch it if we can’t have user expectations met.

To be honest I haven't seen that many reports of the problem.

search for "gnu/stubs-soft.h not found”
and most of the items you will see are OE related.
some issues are quite complex which happen in applications e.g. wrong atomics use

Quoted 7 lines

We do ship
an environment file and in that file we have the options gcc needs to work, the sysroot, the other cflags and the float abi. Unless we go back to a setup of hardcoding the cflags into gcc and have a gcc per set of cflags, this isn't going to work since it solves part of the problem but not all of it.

its also how the target libraries are compiled should match the ABI flags for target gcc

Quoted 5 lines

Our other alternative is to wrap gcc with a script (preferred in PATH) which ensures the right cflags are present. I'd obviously prefer not to do that but it is an option if we believe people can't cope with the environment script.

Would solve the cross compile scenario but on-device scenario I am not sure

#10 lore raw

Re: [PATCH 5/6] gcc-cross: Pass EXTRA_OECONF_GCC_FLOAT to configure

Quoted 10 lines · Khem Raj
Quoted 8 lines · Richard Purdie

We do ship
an environment file and in that file we have the options gcc needs to work, the sysroot, the other cflags and the float abi. Unless we go back to a setup of hardcoding the cflags into gcc and have a gcc per set of cflags, this isn't going to work since it solves part of the problem but not all of it.

its also how the target libraries are compiled should match the ABI flags for target gcc

Agreed, the other option is we have gcc pull the right config from the sysroot in question.

Quoted 7 lines
Quoted 5 lines

Our other alternative is to wrap gcc with a script (preferred in PATH) which ensures the right cflags are present. I'd obviously prefer not to do that but it is an option if we believe people can't cope with the environment script.

Would solve the cross compile scenario but on-device scenario I am not sure

On device is a completely different story. That gcc is target specific and *should* have the right flags set. That isn't what the patch in this thread is about though. On target gcc has always been target specific and will remain so.

Cheers,

Richard

#11 lore raw

Re: [PATCH 5/6] gcc-cross: Pass EXTRA_OECONF_GCC_FLOAT to configure

Quoted 10 lines · Richard Purdie
Quoted 9 lines · Khem Raj
Quoted 8 lines · Richard Purdie

We do ship
an environment file and in that file we have the options gcc needs to work, the sysroot, the other cflags and the float abi. Unless we go back to a setup of hardcoding the cflags into gcc and have a gcc per set of cflags, this isn't going to work since it solves part of the problem but not all of it.

Quoted 4 lines
Quoted 1 line

its also how the target libraries are compiled should match the ABI flags for target gcc

Agreed, the other option is we have gcc pull the right config from the sysroot in question.

FWIW: when we were upgrading from Dylan to Dizzy one MACHINE with hf, we noticed that few recipes weren't respecting CC variable and ended with mixing soft and hard fp which was luckily detected in build time by linker, so easy to fix.

Having at least QA check which will warn user that some compiled binary has different float ABI then enabled in bitbake environment could be useful. But I agree that it's recipe fault if it doesn't respect CC or *FLAGS variables and we should fix it there instead of building gcc-cross twice (if you have 2 arm MACHINEs with different float ABI).

Another option would be mfloat-abi poisoning if possible like we do with default sysroot parameter, so that the usage of default value is detected as soon as possible.

Regards,

Quoted 23 lines
Quoted 8 lines
Quoted 6 lines

Our other alternative is to wrap gcc with a script (preferred in PATH) which ensures the right cflags are present. I'd obviously prefer not to do that but it is an option if we believe people can't cope with the environment script.

Would solve the cross compile scenario but on-device scenario I am not sure

On device is a completely different story. That gcc is target specific and *should* have the right flags set. That isn't what the patch in this thread is about though. On target gcc has always been target specific and will remain so.

Cheers,

Richard

Signature · 4 lines
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
author
#12 lore raw

PATCH 6/6 libart-lgpl: Fix cross compiling

In reply to Khem Raj

We use standard ISO C data types and get rid of configure guess work which is iffy in cross compiled environment. Cleans up the re-build as well since we were deleting art_config.h without considering if the file is there in first place or not.

---
 .../libart_lgpl-2.3.21-crosscompile.patch          | 84 ++++++++++++++++++++++
 meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb     | 10 +--
 2 files changed, 87 insertions(+), 7 deletions(-)
 create mode 100644 meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch
meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch new file +84 -0
new file mode 100644
index 0000000..0261f58
@@ -0,0 +1,84 @@
+Taken from portage
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <[email protected]>
+
+From e1443c945a4cf67096d8c27721aadd7368382b3f Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <[email protected]>
+Date: Tue, 6 Apr 2010 15:22:25 +0200
+Subject: [PATCH 2/2] gentoo: use ISO types for fixed type size
+
+---
+ Makefile.am  |   11 ++---------
+ art_config.h |    5 +++++
+ configure.in |   10 ----------
+ 3 files changed, 7 insertions(+), 19 deletions(-)
+ create mode 100644 art_config.h
+
+diff --git a/Makefile.am b/Makefile.am
+index 95952da..6aa2fe3 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,13 +2,6 @@ check_PROGRAMS = testart testuta
+ 
+ bin_SCRIPTS = \
+ 	libart2-config
+-	
+-noinst_SCRIPTS = gen_art_config.sh
+-
+-BUILT_SOURCES = art_config.h
+-
+-art_config.h:
+-	./gen_art_config.sh > art_config.h
+ 
+ EXTRA_DIST = 			\
+ 	libart.def		\
+@@ -173,5 +166,5 @@ install-data-local: install-ms-lib install-libtool-import-lib
+ 
+ uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
+ 
+-CLEANFILES = $(BUILT_SOURCES) $(bin_SCRIPTS)
+-DISTCLEANFILES = $(BUILT_SOURCES) $(bin_SCRIPTS)
++CLEANFILES = $(bin_SCRIPTS)
++DISTCLEANFILES = $(bin_SCRIPTS)
+diff --git a/art_config.h b/art_config.h
+new file mode 100644
+index 0000000..5985f1f
+--- a/art_config.h
++++ b/art_config.h
+@@ -0,0 +1,5 @@
++#include <stdint.h>
++
++typedef uint8_t art_u8;
++typedef uint16_t art_u16;
++typedef uint32_t art_u32;
+diff --git a/configure.in b/configure.in
+index e4804f7..ddcac4f 100644
+--- a/configure.in
++++ b/configure.in
+@@ -92,15 +92,6 @@ AC_FUNC_ALLOCA
+ 
+ AC_C_BIGENDIAN
+ 
+-AC_CHECK_SIZEOF(char)
+-AC_SUBST(ART_SIZEOF_CHAR, $ac_cv_sizeof_char)
+-AC_CHECK_SIZEOF(short)
+-AC_SUBST(ART_SIZEOF_SHORT, $ac_cv_sizeof_short)
+-AC_CHECK_SIZEOF(int)
+-AC_SUBST(ART_SIZEOF_INT, $ac_cv_sizeof_int)
+-AC_CHECK_SIZEOF(long)
+-AC_SUBST(ART_SIZEOF_LONG, $ac_cv_sizeof_long)
+-
+ AC_CONFIG_FILES([
+ libart-features.h
+ Makefile
+@@ -109,6 +100,5 @@ libart-2.0-uninstalled.pc
+ libart-zip])
+ 
+ AC_CONFIG_FILES([libart-config],[chmod +x libart-config])
+-AC_CONFIG_FILES([gen_art_config.sh],[chmod +x gen_art_config.sh])
+ 
+ AC_OUTPUT
+-- 
+1.7.0.4
+
meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb +3 -7
index 1384616..95581b2 100644
@@ -5,7 +5,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
 PR = "r2"
 
 # can't use gnome.oeclass due to _ in filename
-SRC_URI = "${GNOME_MIRROR}/libart_lgpl/2.3/libart_lgpl-${PV}.tar.bz2"
+SRC_URI = "${GNOME_MIRROR}/libart_lgpl/2.3/libart_lgpl-${PV}.tar.bz2 \
+           file://libart_lgpl-2.3.21-crosscompile.patch \
+          "
 
 SRC_URI[md5sum] = "08559ff3c67fd95d57b0c5e91a6b4302"
 SRC_URI[sha256sum] = "fdc11e74c10fc9ffe4188537e2b370c0abacca7d89021d4d303afdf7fd7476fa"
@@ -18,9 +20,3 @@ FILES_${PN} = "${libdir}/*.so.*"
 FILES_${PN}-dev += "${bindir}/libart2-config"
 
 S = "${WORKDIR}/libart_lgpl-${PV}"
-
-do_compile_prepend() {
-	# enforce regeneration of art_config.h
-	rm ${S}/art_config.h
-}
-
Signature · 1 line
2.1.4
#13 lore raw

Re: [PATCH 6/6] libart-lgpl: Fix cross compiling

Quoted 5 lines · Khem Raj

We use standard ISO C data types and get rid of configure guess work which is iffy in cross compiled environment. Cleans up the re-build as well since we were deleting art_config.h without considering if the file is there in first place or not.

FWIW, modern autoconf has working size detection for types in cross builds.

Still can't argue against using modern types being the right thing though. :)

Oh, once this is merged I'll be moving libart_lgpl to meta-oe as nothing in oe-core uses this very old library.

Ross