[OE-core] [PATCH v2 0/8] Fix BUILD_* family of variables

Jérémy Rosen jeremy.rosen at smile.fr
Wed Sep 7 09:08:41 UTC 2016


The BUILD_* family of variables allow the user to specify the name of the host
compiler to use at build time. This feature is particularly important for long
term maintainance. Future versions of gcc might not be compatible with old
yocto distributions and we can't assume that "gcc" is the correct name for the
compiler.

This problem is already an issue with Jethro which can't be compiled on a
machine wher gcc-6 is the default compiler. pkgconfig-native will refuse to
compile because it uses -Werror and gcc-6 has new warnings compared to gcc-5

This patch serie fixes multiple hard-coded references to gcc in various recipes
and build infrastructure

This patch was tested by building core-image-minimal for qemu-x86_64 with a
directory with the following content added to the PATH

 g++ -> /bin/false
 gcc -> /bin/false
 myg++ -> /usr/bin/g++
 mygcc -> /usr/bin/gcc

And the following variables added to local.conf

export BUILD_CC = "mygcc"
export BUILD_CXX = "myg++"
export BUILD_CPP = "mygcc -E"
export BUILD_CCLD = "mygcc"

---
V2
* rewording in some commits messages
* no need for a patch to KConfig, use OE_RUNMAKE_FLAGS instead
* change all patch titles to use : in the short commit message
* rpm : manually remove files instead of calling make distclean
* libpcre : explicitely set CCLD_FOR_BUILD in the recipe since it's the only
  recipe using it.
* glibc patch has been submited upstream

It would be interesting to modify yocto's builders to use the BUILD_*
variable in order to have some early warning wrt gcc polution in recipes, but
seeing the various recipes I had to patch, I would expect such a change to
trigger a high number of build failures.

Jérémy Rosen (8):
  cross: export CC family from BUILD_* for cross compilers
  linux-yocto: allow overriding compiler name in KConfig
  linux-libc-headers: allow overriding compiler name in KConfig
  busybox: allow overriding compiler name in KConfig
  sanity: fix hardcoded references to gcc
  glibc: remove hard-coded reference to gcc -E
  rpm: manually cleanup sysck
  libpcre: explicitely specify CCLD_FOR_BUILD for this recipe

 meta/classes/cross.bbclass                                                        | 12 ++++++++++++
 meta/classes/kernel.bbclass                                                       |  1 +
 meta/classes/sanity.bbclass                                                       | 14 +++++++-------
 meta/recipes-core/busybox/busybox.inc                                             |  2 +-
 meta/recipes-core/glibc/glibc/0001-locale-fix-hard-coded-reference-to-gcc-E.patch | 39 +++++++++++++++++++++++++++++++++++++++
 meta/recipes-core/glibc/glibc_2.24.bb                                             |  3 ++-
 meta/recipes-devtools/rpm/rpm_5.4.16.bb                                           |  2 +-
 meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc                     |  2 ++
 meta/recipes-support/libpcre/libpcre_8.39.bb                                      |  2 ++
 9 files changed, 67 insertions(+), 10 deletions(-)
 create mode 100644 meta/recipes-core/glibc/glibc/0001-locale-fix-hard-coded-reference-to-gcc-E.patch

-- 
git-series 0.8.9


More information about the Openembedded-core mailing list