- use ${libdir} instead of ${exec_prefix}/lib
Fix the following warning:
WARNING: QA Issue: gcc: Files/directories were installed but not shipped
/usr/lib64/libiberty.a
(From OE-Core rev: b3643415ad91dc77880cc5b95e9ad8cd9aef5c44)
Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- add a task to setup multilib configuration for target gcc
- this commit adapts Nitin Kamble's work to gcc 4.7
- use a hash for storing arch-dependent multilib options
- patch gcc in order to use the multilib config files from the
build directory
Tests:
root@qemux86-64:~# gcc -m64 t.c -o t
root@qemux86-64:~# file t
t: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
root@qemux86-64:~# ./t
Hello World !
root@qemux86-64:~# gcc -m32 t.c -o t
root@qemux86-64:~# file t
t: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
root@qemux86-64:~# ./t
Hello World !
[YOCTO #1369]
(From OE-Core rev: b26819c85881e82ee1b5c68840011e78c321f18e)
Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* move libgomp.info removal also outside that for cycle, can be removed outside if exists
* also use infodir variable instead of ${datadir}/info
(From OE-Core rev: 0b8fe539928c7a61ca01a4a0a0f54df47164ac6c)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, do_rootfs has a dependency on all the do_package output being present
due to its usage of the pkgdata directories. This means that if you run:
bitbake xxxx-image -c rootfs
you end up having to fetch and unpack all the do_package data which is usually
large and inefficient. It also means rm_work has to leave all the do_package
data lying around so rootfs works.
This patch splits the actual creation of the pkgdata directory off into a separate
task, "packagedata" which happens immediately after do_package. We can then remap
the dependencies so this task is depended upon, not do_package. Sstate can then be
programmed not to require do_package at the appropriate times.
Whilst this patch doesn't do so, it opens the possibility of rm_work wiping
out the do_package output from WORKDIR as long as it also removed the do_package
stamp (both normal and setscene variants) and allowing more space savings
with rm_work which has been regularly requested.
(From OE-Core rev: 6107ee294afde395e39d084c33e8e94013c625a9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Multicore embedded systems are getting more and more common.
Remove "--disable-openmp" from the GCC configuration options and
always build libgomp. This only creates a "bigger" compiler but
has no effect on the compiled binaries that don't use openmp.
Tested a clean build on mips32el and arm7a, no problems encountered.
Autoconf will not detect OpenMP after this change, because it will
build and run a target binary on the build system. In order to use
OpenMP, the variable ac_cv_prog_c_openmp=-fopenmp must be set.
(From OE-Core rev: fdf37b792c13a1fc3f63faf471f0403396414a35)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
restore FILESPATH to previous setting because the new one doesn't allow the
normal use of FILESEXTRAPATHS_prepend in the case of append recipe.
In the current implementation, in fact, the FILESPATH is statically set into
the gcc-4.7.inc and so the base_set_filespath is not invoked to manage
extrapaths.
(From OE-Core rev: acdec40f31ecd2eecf8c173b632b8fb01ca59b3d)
Signed-off-by: Giuseppe Condorelli <giuseppe.condorelli@st.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc-cross-canadian uses cross compiler during libgcc build
when building from sstate the build failed when building
gcc-cross-canadian since it did not populate gcc-cross
therefore add an explicit dependency on virtual/${TARGET_PREFIX}gcc
to make sure that gcc-cross is available before building
gcc-cross-canadian
(From OE-Core rev: d9b7478e41e3065d01aa45d8d70fae2fc5ff6066)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
See https://fedoraproject.org/wiki/Releases/FeatureBuildId for the
benefits this brings. As far as I can tell from searching the
discussion archives, there doesn't appear to be a reason not to enable
this, and the benefits are real.
Both the Red Hat Enterprise Linux 6, all Fedora, and Ubuntu Quantal
GCC builds are configured with this on. I plan to use it in
gnome-ostree.
(From OE-Core rev: f3be2b1e5e100a953d6d7fbbb19a77a5c4d547e1)
Signed-off-by: Colin Walters <walters@verbum.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc-cross cannot build without linux-libc-headers but doesn't explicitly depend on
it relying on the implied dependency through libc. With cases where pieces
can be installed through sstate, we now need this explicit dependency to
ensure builds with partial sstate work.
(From OE-Core rev: 65e5670ef429bb6c348decb1804e425f1c4d7c61)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If sstate-inputdirs and sstate-outputdirs don't match with ending '/'
characters, the manifest file can end up corrupted. This change
ensures the metadata is consistent in ending do_populate_root tasks
with this character to avoid manifest file corruption.
(From OE-Core rev: 3910eaf88d14904eef85b9e391387547df7fc54e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There was a problem in commit ad23395cd1 since
gettext-nativesdk was translated to gettext instead of nativesdk-gettext.
This fixes to use the correct dependency.
(From OE-Core rev: a6e325342cb489e05927d6cb2bb0a24fa6c20ef8)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows BSPs for architectures with no thread support to set (for
example) "GCCTHREADS=no" without having to override all the other configure
parameters.
(From OE-Core rev: 6bb0d37529a82b953d374f2d76c2412d7cee587b)
Signed-off-by: Phil Blundell <pb@pbcl.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When doing multilib builds rpm does not find libgcc1 for lib32
multilib because its not honoring the debian renaming scheme for
libgcc-multilib. Lets add MLPREFIX to fix it.
(From OE-Core rev: 9327ca868667b15f29af3123611d6f56b4249a63)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This avoids the SVN or git fetcher issues for gcc
and the tar is mirrored around the world so it will
not be slow
Fixes [YOCTO #2908]
(From OE-Core rev: 5e03d1e83d0536a2fc69a88d3e5407108836203f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The globs used for STAMPCLEAN were too greedy matching gcc-cross-initial
stamps for gcc-cross for example. This patch resolves that problem making
the assumption that PV starts with something numeric. This assumption
should hold in most cases and has a better failure case that the current
situation.
(From OE-Core rev: d7fbc70b6c6ac629d2a23ac16ab45461f88b4b26)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This takes advantage of new bitbake functionality to clean up stale stamp
files when creating new stamp files.
[YOCTO #2961]
(From OE-Core rev: e21b6c04e512a3bc2339a20045b7041f1d26e859)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This makes the libgcc builds identical when done with gcc-cross-initial
or final gcc-cross. Since eglibc only sees gcc-cross-initial it is
important that the final libgcc that appears on root file system is same
as the one against which eglibc was built.
(From OE-Core rev: bd0ab094d6c36b55848e23e63b96587773299a7f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
arm patch is a forward port from OE/classic
ppc patch should help in building images with Os
(From OE-Core rev: ac9ebcea4a2b778f6dd103a729831d9a9be281df)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As discussed on the mailing lists, using a suffix to package names is
hard and has lead to many recipes having to do PKGSUFFIX games. Its
looking extremely hard to scale nativesdk much further without hacking
many recipes.
By comparison, using a prefix like multilib does works much better and
doesn't involve "hacking" as many recipes. This change converts nativesdk
to use a prefix using the existing multilib infrastructure.
(From OE-Core rev: 81813c0e322dc04ce4b069117188d8a54dfddb8c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This avoids problems with libstdc++ having bad rpaths (/usr/lib/../.lib)
in its .la file. See the patch for more information.
(From OE-Core rev: bd27e81f1fa49e2770da9a4a65a83e9d4c3a0dd0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* missing in 30617bde61a3b0a0944b49a0c9fb7159dacbb19f, eglibc-initial fails to compile in incremental build with OEBasic
(From OE-Core rev: 495ccece87b56d696e92c5cdc39b79fd9813caa0)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These recipes arent used anymore so delete them
(From OE-Core rev: 4ef8960c8d2876914bb78cbdce5fae3c5297e942)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc-crosssdk-intermediate will go away and -initial will
assume its responsibility therefore transfer the option
(From OE-Core rev: 7f6883b225f9a0fdc44be2d1cb66ddc744174fbc)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now glibc can be compiled with gcc-cross-initial therefore prepare
the stage to drop gcc-cross-intermediate
Also drop arm-nolibfloat.patch should not be needed anymore
half of changes in this patch are meant for OABI which we dont
use anymore
(From OE-Core rev: 30617bde61a3b0a0944b49a0c9fb7159dacbb19f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The target sysroot might contain sdt.h but we don't list this in DEPENDS
and shouldn't be referencing it. Unfortunately there is no way to tell
configure this since these tests are uncached and we can't force
a particular value. The only option is therefore to patch this out.
(From OE-Core rev: 1409d9b9690e39ecc63aacfdd5785586d83633ee)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If we don't do this, a stale limits.h may be detected in STAGING_DIR_TARGET
which would result in a different limits.h getting generated by gcc-cross-initial
that references it. The referenced limits.h will then not get found by eglibc-initial
causing rather strange build failures.
The simplest solution is to create a temporary sysroot containing only the things
gcc-cross-initial should care about and this results in a correct limits.h file
regardless of what else may have been built.
(From OE-Core rev: 9c304eae0724474902fe2f3150adc6af115af9ba)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Without this set, in the case host=target (which it does for on-target
gcc), the native header directory is set to the target sysroot with
no prefix. This means it would look for sdt.h on the build system
instead of in the target headers and this can lead to build failures
and is host contamination of the build.
The correct fix is to explicitly set the native header directory to
the correct location and then the headers get detected correctly.
(From OE-Core rev: 404d2d490fc347203e89d274530c17fb5f0aa20f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
currently gcc installs a limits.h which references to another
limits.h which it expects from target sysroot and that header
in target sysroot will come from eglibc. So we need to break
this catch-22 and hence we install a self sufficient limits.h
which is then happy when referenced and doesnt complain about
missing limits.h from target sysroot.
This is mostly used when eglibc-initial configure is run
(From OE-Core rev: eeb445ecbc651ad614a4fc492039bdad0747d45d)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
do_package writes out shlibs data and libgcc can depend on the values
there. We therefore need to express the depdency so that sstate can account
for it for example.
Without this a version change in eglibc can "psersist" in the sstate cache
and corrupt builds.
(From OE-Core rev: 4148bc80c008d25c8a536c7c7dfdeac1669a6662)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove brute-force flattening and bump PR.
Refer to -ftree-switch-conversion emit_case_bit_tests(),
-ftree-if-to-switch-conversion et al in 4.8
(From OE-Core rev: 2eb0e56217137ece3d86a70676a3f3c8db525459)
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When using gold as default linker in final toolchain
gcc-cross-initial still needs to use BFD ld since it
will link eglibc-initial
(From OE-Core rev: f643f886b16f586426c744afde080a99d71a9d58)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
svn has been giving troubles with svn 1.7 upgrade
Remove duplicate definition of S and B variables
from gcc-4.7.inc
Use 4.7.1.0 for PV to maintain the upgrade path
Its an interim solution once we upgrade to 4.7.2
we will drop it.
(From OE-Core rev: 3f3b74b3fd6ba813dd69804706edcea145876e09)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These patches are backport from gcc mainline
they fix issues where eglibc was not compilable
for e5500+ due to missing vector intrinsics
It obsoletes the existing e5500 patch
(From OE-Core rev: b440aeeceb8c2e9f412d98793fb1dd55ff9d73f5)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
do_headerfix task is essentially editing configuration
headers in sources which can well be maintained as a
patch which is easier to spot errors (if any) than
dynamically edited source tree
(From OE-Core rev: ddd344e9acef88d614473581266569ce14716ccc)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If EXTRA_OECONF_FPU is left set, certain ARM variables related to hard-float
can get pulled in and trigger rebuilds of the crosssdk code. The best solution
is to simply force the variable to a known correct value for the SDK targets
currently supported in the same way as TARGET_FPU.
There is some slight rearrangement of the gcc code to ensure the variable is
always used to call the fpu function.
(From OE-Core rev: 410990445ada8cdcfaec4e6fa5791cee9a5b8983)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This fixes the issue where gcc invokes the linker with an incorrect -L
library location and gives up because it can't find libraries. It was
looking in a /lib folder instead of /lib64
(From OE-Core rev: 1b428f0151a5b86332b501871bf4a925b43580a5)
Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Needed because the equality check was failing here even though upon
printing the LHS and RHS were the same.
As per http://stackoverflow.com/a/2987975/64537, using "is" compares the
memory addresses of the two objects which is not what we want here. We
just want to compare the values.
(From OE-Core rev: 7fd82cc90a48302ed42b6bfa962bb0de2c652b45)
Signed-off-by: Kartik Mohta <kartikmohta@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We added the autoconf cache line a while back to ensure that configure doesn't
poke into some hardcoded host paths looking for things it shouldn't. Applying
it as part of do_configure wasn't getting it to the do_compile tasks
where much of the configure scripts are run by gcc. This changes it to a simple
export to ensure it reaches the places it needs to and truly gets rid of
the cross compile badness messages from the logs.
(From OE-Core rev: af58d5c3a5c5e632aa20b1d007d47dbbfb4ed6e6)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This was needed because on eglibc based builds we did not
define USE_NLS but now we define it in default config to have
a valid value so we do not need this here. Moreover it was
wrong and was not covering all cases of uclibc triplets
(From OE-Core rev: fc9492654aab2a6e3f46977193b5a5f388e4ee85)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixes build warnings like below
WARNING: For recipe libgcc, the following files/directories were installed but not shipped in any package:
WARNING: /usr/lib/arm-oe-linux-gnueabi/4.7.2/include
WARNING: /usr/lib/arm-oe-linux-gnueabi/4.7.2/include/unwind.h
(From OE-Core rev: f7ec6ea2b32207993e7fc92ed67c08f542007953)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
sourcery toolchain is available as external pluggable toolchain
if needed.
(From OE-Core rev: 7d0c7a759c29669b2b5828fd75837926506acd87)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If anyone wants it add toolchain-layer from meta-openembedded
repo to your setup
(From OE-Core rev: a78260d8d041e606ce4d10c0bb52f196dd27832e)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
when using --with-sysroot=/ and --with-gxx-headers=/usr/include/c++
configure eats up one leading / from gxx include dir
fixed thusly
(From OE-Core rev: 51064de5fb92c53c99b21487c0ebcafeaf3cc3ad)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There would be an "Argument list too long" error when the length of
tmpdir is longer than 190, this is caused by:
headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`
The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle
it, use the $(sort list) of GNU make which can handle the too long list
would fix the problem, the header would be short enough after sorted.
The "tr ' ' '\012'" was used for translating the space to "\n", the
$(sort list) doesn't need this.
This doesn't impact the output, so it doesn't need the PR bump.
[YOCTO #2591]
(From OE-Core rev: b9b75e6cf31991c046713194f75bc61027558464)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Otherwise it assumes / as sysroot on build host and starts
searching for directories in there.
[RP: Tweak to add missing = for consistent syntax]
(From OE-Core rev: d132bcc41d9956f8cc171e34232d991e2b444689)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
TARGET_ARCH is poured into TRANSLATED_TARGET_ARCH
for gcc-cross family or gcc-crosssdk family
of recipes we have to check for TRANSLATED_TARGET_ARCH
(From OE-Core rev: 03f7322b1f4e1b1cf465a46cba3b82573384ab9e)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We need to check target to be arm before enabling hard-float
ABI. There are crossdk targets or candian-cross targets built
for arm and we should not enable it for those class of recipes.
(From OE-Core rev: f48bb903218e14ba15dab452e8bb43ba25b9ea44)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If callconvention-hard is set then we build gcc defaulting
to hard-float ABI
(From OE-Core rev: 88dee5cf5265d3ea26fc9d471fc6155e48935dc7)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Backported from 523df15bcc21e1749771cca757613f3520243b8e
as suggested by Khem.
* Original commit message:
If build system has those libraries installed
gcc configure will pick them up. We want
consistent builds so we disable them since we
do not (yet) support them
(From OE-Core rev: 9de1de7c2c4e9f5accb4dd082fe819a711defbfb)
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Fixes the following error after a system library upgrade
| .../mipsel-oe-linux/4.6.4/cc1: error while loading shared libraries: libppl.so.10: cannot open shared object file: No such file or directory
(From OE-Core rev: 2c0fb8265d4876db537850f4b20c898dde3a0f4c)
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixes:
ERROR: For recipe gcc, the following files/directories were installed but not shipped in any package:
ERROR: /usr/libexec/gcc/i586-poky-linux/4.7.1/plugin/gengtype
(From OE-Core rev: 0be64cda0a20ca3aab75ee0cc360236d2dc40c95)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
shift the cmdline argument after determining
there is atleast 1 argument to shift otherwise
it ends up in error when no argument is specified
(From OE-Core rev: 4cd306ab0c9404a31f38c7e5fb67fe32fdca3d4b)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This will help in meta-linaro where it will be able
to utilize maximum recipes from OE-Core and thereby
keep close compatibility with OE-Core gcc recipes
(From OE-Core rev: 3c9f7eb2e2d70869a71a584eb1ba670b50a88379)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This should help in speeding up compilation at the expense
of a bit less info when gcc ICEs but we dont get many gcc
ICEs and therefore using --enable-checking=release is
right balance
(From OE-Core rev: a84c097cc7c52a856601e546880440d9375b0e30)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If build system has those libraries installed
gcc configure will pick them up. We want
consistent builds so we disable them since we
do not (yet) support them
(From OE-Core rev: 523df15bcc21e1749771cca757613f3520243b8e)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
create a new package to have lto dev packages bundled
(From OE-Core rev: b98fb95c594117d165a31795b6fa7b6cb583d598)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
--with-native-system-header-dir is relative to sysroot which
is what we want --with-headers is deprecated anyway
(From OE-Core rev: 2f7ac32b57e047cdaf01e0b6f77509117dbbd14c)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We need -isystem=${target_includedir} in there
(From OE-Core rev: 573949096d51bde4961b2301c20c966c324a66bd)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add new recipes for gcc-4_7-branch right now gcc 4.7.0
is latest release from this branch
(From OE-Core rev: 3f8fee75e598ad0994acc5da0a612e6eca4f35f6)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Its better than duplicating the overrides
(From OE-Core rev: 7159dad19f8cfd3e7e95523da63e91370744da7f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is needed for adjusting meta-linaro where linaro
gcc recipes leverage the core recipe infrastructure and
modifies minimal to keep compatibility with OE-Core
so that any changes in OE-Core gcc recipes does not
trigger changes in meta-linaro.
(From OE-Core rev: cb01b2a4fc82e62eacc4441fddc3fdfb04a3acf3)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
this option by default points to /usr/local no matter
what so we cant let it sit on sidelines otherwise it
will access host machine's /usr/local which may not
be desired. So disable this option. This also helps in making
gcc's shared state more consistent
(From OE-Core rev: eee3658366e1ae9d3e429b3d3c968938d8d0f00e)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently we stash the libgcc install tree and then reuse that
to populate libgcc recipe later. This mechanism does not work
for gcc 4.7/trunk since now libstdc++ needs access to build tree
of libgcc. This patch stashes the gcc-cross build tree
and then reuses this in libgcc as well as in gcc-runtime
recipe builds.
Now we build libgcc in the libgcc recipe instead of just
using the prebuilt install tree
core-image-minimal build/run tested on all qemu machines
(From OE-Core rev: 7cf9f0597648c0bdaa080976d74acfbfc4c8443d)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When building gcc-cross-canadian libgcc is built using
headers from gcc-crosssdk and not the target sysroot
because we do not pass proper CFLAGS for target bits
so it ends up using CFLAGS that were meant for compiling
canadian gcc itself. It does not show up as a problem
when building SDK with eglibc because eglibc-nativesdk
and eglibc have identical headers. The problem shows
up clearly when you try to build uclibc based meta-toolchain
since then nativesdk libc and target libc are different
(From OE-Core rev: 0e904103e9bd7fdb31bfcc129067511f9f45701b)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
WARNING: For recipe gcc, the following files/directories were installed but not shipped in any package:
WARNING: /usr/include
WARNING: /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc
WARNING: /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc/config
WARNING: /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc/config/arm
WARNING: /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc/config/arm/bpabi-lib.h
(From OE-Core rev: aff48c514174ba5fa3bb1e5df5293376b567da09)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
WARNING: For recipe libgcc, the following files/directories were installed but not shipped in any package:
WARNING: /usr/lib/powerpc-poky-linux/4.6.4/ecrti.o
WARNING: /usr/lib/powerpc-poky-linux/4.6.4/ncrti.o
WARNING: /usr/lib/powerpc-poky-linux/4.6.4/ecrtn.o
WARNING: /usr/lib/powerpc-poky-linux/4.6.4/ncrtn.o
(From OE-Core rev: b17c02d223455680324227f8de17feb8ab3e7b68)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There were puzzling failures when you make a force recompile of any gcc
component. The error was in do_configure with cross-compilation badness
being detected in config.log files.
gcc is different in that many of the config.log files are generated during
the do_compile phase. This means this host contamination issue has always
been present but only shows up on a rebuild.
The fix is to force the appropriate configuration variable to "none required"
then gcc won't look in the bad locations.
[YOCTO #2279]
(From OE-Core rev: e7135f14f3ef37f93f5c28b319464f3d6dd9b8da)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the toolchain is reused from sstate and ccache is installed, build failures
were occuring due to gcc trying to access the original sysroot rather than the
new one, particularly if the old sysroot existed but was not readable by the
current user.
This turns out of the an issue inside gcc to do with preservation of the sysroot
option. See the gcc patch for more details. It only triggers when preprocessed
sources are used which happens when ccache is used.
The same issue occurs with c++ and c++-cpp-output so the same fix is applied there.
[YOCTO #2074]
(From OE-Core rev: d3a3e81869631ba69874f6fc172240e3aac388f5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This Fixes [Ycoto #2223] bug.
The gcc osdir is obtained in the do_install by invocation of
command "gcc -print-multi-os-directory". For x32 it returns gcc
osdir for the default abi which is x86_64. Fix this by adding
target abi parameter to the gcc command line to get correct gcc
osdir with invocation of command "gcc -mx32 -print-multi-os-directory"
(From OE-Core rev: e65b6a4282d5c4882d0565b79ccba99db90161ff)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This fixes multilib issues if you try for example to use a BASELIB of /lib32
which wouldn't work without this change since the compiler install location
is taken from gcc -print-multi-os-directory which can still turn out to be
"/lib".
The reason is that a 32 bit gcc has no multilib code enabled and will always
return "." as that value rather than "../${base_libdir}" which our changes
to gcc enable and return in 64 bit mode.
(From OE-Core rev: cc953e2259bf77e9e1f7a1e3d0dbe1509c79477e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Cleaning up non shipped empty directories.
(From OE-Core rev: e2fd32919e1d96136528c61677bdfeee2b064320)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>