change use of eglibc related variabled to glibc equivalents
(From OE-Core rev: fd15d6e0c8da75951a91d4467eda23c229b1026d)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
musl e.g. is configured to not use fixed-include
which is an improvement btw. but libgcc-initial configure
has tests which probe for limits.h and since we put
it in include-fixed/ dir and that dir does not appear
in gcc's internal default search path the configure tests
for CPP detection fail and libgcc-initial can not be compiled.
(From OE-Core rev: 3bdc225a9e622e9d594944833964fe396200db01)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The gcc-runtime recipe builds the gcc libraries including libstdc++ with
$TARGET_CC_ARCH flags, which include -march=FOO flags that affect
whether atomic instructions are available. This causes an ABI
incompatibility when the compiler by default generates code for less
capable architectures. For example, gcc-runtime libraries on a
Cortex-A8 are built with a different C++11/C++14 mutex implementation
than is used code compiled outside OE and without architecture-specific
flags.
This commit fixes the problem specifically for ABI issues related to
atomic instructions available in ARMV6 and subsequent architectures.
Other ABI incompatibilities may remain in other architectures.
See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62100
(From OE-Core rev: 0ba6ab39f187ecd4261f08e768f365f461384a3a)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A long-standing bug in gcc turns out to cause problems with unpatched
Linux versions due to improved optimization enabled by gcc 4.9. The
upstream fix missed the gcc-4.9.1 cut-off. It's also been applied
upstream to the 4.8 branch so is being added for OE's 4.8 as well.
(From OE-Core rev: 06f911894a367f395139c2b0d6c2ba6371398478)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
musl does not support IBM 128 long double for ppc, instead of
doing complex overrides move it into a pythong snippet which
is easier to read and more compact.
(From OE-Core rev: e7011429e40ae96b9c9f1e7f3c6f4c1f1102607f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This variable is used to ensure the proper version of --with-float=FOO
is passed to gcc's configure script. gcc also has a --with-fpu=FOO
option that means something different. To avoid confusion, change the
names to be consistent.
(From OE-Core rev: c17d883fa99b6967d83c3796d22fc0c1dbe704e6)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: 9ec30be63ad6d991646a7ce0ee22acdad7a81184)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
--enable-libunwind-exceptions was removed from gcc at release 3.4.3
about ten years ago.
(From OE-Core rev: 285d3579727177e6962d7ad16677429e7dec65f4)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Apply to gcc 4.9 the recent fix to the --with-gxx-include-dir override.
Original OE-Core rev: 5a2ff3e8f7cd7a47a5ab4e581847ecc4df87fca
(From OE-Core rev: 5fec278316fa9466241b9134c4553bad6db1c1a9)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
0037-gcc-4.8-PR56797.patch was originally added as an OE backport during
4.8.0. Upstream merged it in 4.8.1, and it was present in 4.9.0.
The original patch still applies to 4.9.1 (and presumably 4.8.2), but
now is modifying store_multiple_sequence instead of
load_multiple_sequence (the two functions are nearly identical). It may
or may not be necessary in store_multiple_sequence, but absent a bug
report upstream supporting its application in this case, or a least an
updated comment and upstream status in the patch, I think this patch
should be dropped.
(From OE-Core rev: c89443e0f98249b9f9ea33f686c27babe35fd024)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Consistent use of whitespace in multi-line assignment, with special
focus on OECONF modifications. Quotes on separate lines, four-space
indentation, one value per line.
(From OE-Core rev: d971db8b2259e4c35b871cccf130fba193849560)
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We already indicate our intentions to use ld.bfd by
specifying it in configure using --with-ld which works
ok unless here where we manually create symlinks to
binutils-cross components, when we use ld-is-gold feature
default ld points to gold and this symlinking has to be
aware of the fact that we configured binutils and gcc-cross to use
gold as default ld but gcc-cross-initial uses BFD ld
This would be visible when using gold and rebuilding
eglibc
(From OE-Core rev: 77cab553ee6caa940e21cca46ff134f84e65c171)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix an issue on a multilib configuration that contains more then 1 multilib.
I.e. on MIPS64:
DEFAULTTUNE = "mips64"
MULTILIBS = "lib32n:mips64_n32 lib32:mips32"
While normally you'd use 'libn32', the above is legal.
With the startswith code, the system will look to expand the 'lib32' element
and find the 'lib32n' instead, and will result in a warning:
lib32 doesn't have a corresponding tune. Skipping...
(From OE-Core rev: ced919f6013fc0dbb8b8f75f87a8c0a4f416b1fe)
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>
Drop patches which are already available in 4.9.1
(From OE-Core rev: b2ecf4065fa5930b896b8790d153389e400eb0ec)
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>
The gcc-ar.o, gcc-nm.o, gcc-ranlib.o and errors.o included
config.h which was a generated file. But no explicity rule
to clarify the dependency. There was potential building
failure while parallel make.
For gcc-ar.o, gcc-nm.o and gcc-ranlib.o, they were compiled from one C
source file gcc-ar.c, we add them to ALL_HOST_BACKEND_OBJS, so the
'$(ALL_HOST_OBJS) : | $(generated_files)' rule could work for these
objects.
For errors.o, it is part of gengtype, and the gengtype generator program
is special: Two versions are built. One is for the build machine, and one
is for the host. We refered what gengtype-parse.o did (which also is part
of gengtype).
[YOCTO #6568]
(From OE-Core rev: aea4b2d58856226c471922dfa40650cba2f5a36a)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In subdir 'gcc', Most C source files included config.h which was
generated by a rule. But no related prerequisites was added to
the C source compiling rule. There was potential building failure
while makefile enabled parallel.
The C source compiling rule used suffix rule '.c.o', but the suffix
rule doesn't support prerequisites.
https://www.gnu.org/software/make/manual/html_node/Suffix-Rules.html
We used the pattern rule '%.o : %.c' to instead, and add the config.h
as its prerequisite
We also moved the '%.o : %.c' rule down to the 'build/%.o :' rule, which
makes '%.o : %.c' rule doesn't override 'build/%.o :'.
[YOCTO #6568]
(From OE-Core rev: 86c2483f0fe05fb763d280ae22d70e54cb4bb0bc)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
MULTILIB_OPTIONS takes the parameters which trigger a given multilib to be
selected. It supports *one* option per multilib, '/' separated. Spaces
separate options used to generate additional multilib combinations.
Adding in all of CFLAGS to this is therefore clearly a really bad idea
but how do we fix things?
The best option I've come up with so far is a list of whitelist variables
to use to trigger the multilibs. Its populated with the standard multilibs
we support, anyone setting up an advanced multilib can populate the variable
with the correct trigger parameters.
This has the advantage of simplifying the code and allowing us to remove
the code filtering blocks since there is no longer option duplication. Testing
after this change shows a much improved sdk toolchain functionality.
(From OE-Core rev: 29202cd1b9d2e5d56e5b9f7a596e44e229c90492)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* GLIBC_DYNAMIC_LINKER64 reglex does not work for rs6000/linux64.h,
update it.
* it turns out that UCLIBC_DYNAMIC_LINKER reglex will strip the 32/64
chars from UCLIBC_DYNAMIC_LINKER64/UCLIBC_DYNAMIC_LINKER32, add '\b'.
my two PCs: Centos 6.5 (python 2.7.5) and Fedora 13 (python 2.7.3)
(From OE-Core rev: a0b408191d64804df1748163060313af31433ac8)
Signed-off-by: Ting Liu <ting.liu@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It was observed that code using STLport 4.6 fails to compile under the
SDK with the following error message:
.../includes/cstddef:38:46: fatal error: ../4.7.2/cstddef: No such file
or directory
STLport 4.6 (screwily) assumes that the C++ system headers live in a
gcc-versioned subdirectory, for gcc>=3.0; cf
http://sourceforge.net/p/stlport/code/ci/STLport-4.6-patch/tree/stlport/config/stl_gcc.h#l269.
This assumption is *almost always* valid, because that matches the
default setting of --with-gxx-include-dir. We can match that behavior by
appending "/${BINV}" to our own --with-gxx-include-dir settings.
Natinst-CAR-ID: 446449
Natinst-Reviewboard-ID: 57209
Acked-by: Ken Sharp <ken.sharp@ni.com>
Acked-by: Ben Shelton <ben.shelton@ni.com>
(From OE-Core rev: 5a2ff3e8f7cd7a47a5ab4e581847ecc4df87fca3)
Signed-off-by: Richard Tollerton <rich.tollerton@ni.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When enabling a lib32-gcc in a 64 bit build, without doing any
other configuration, the mutilib dir is unspecified, which is
represented internally in gcc as "." and as such uncovers an
invalid free on a non-malloc'd pointer.
As suggested by the gcc folks, simply make sure the "." case
is also stored in a malloc'd pointer, so that the intended
runtime behaviour of the code remains unchanged.
Patch has been accepted by upstream maintainers of gcc.
(From OE-Core rev: bf1473d0c1b099b8d919835cc430b99606134aab)
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
While we're not going to package the libgcc component as part of the SDK,
we do need to generate it to get the unwind, and quadmath headers. Without
this change it is not possible to build eglibc or other components that
require these headers with the SDK toolchain.
(From OE-Core rev: e67b24401a366b20644510703c7140be975869ea)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The gengtype patch we apply to gcc aims to ensure that the build and host
config headers don't get confused. We're seeing build failures where
both headers have been included, likely due to a race over the configuration
files.
It seems the gengtype-lex.c file isn't being regenerated when it should
and the unconditional inclusion of bconfig.h is resulting in these issues.
The fix is therefore to remove the file, forcing its regeneration.
[YOCTO #6393]
(From OE-Core rev: dd649374b30eb2d9980dce6eae95db0563593ef7)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The do_configure_prepend was duplicated in gcc-4.X.inc and
gcc-configure-common.inc leading to confusion when reading the resulting
do_configure task where the file was processed twice.
The only difference was the removal of the include line for gcc 4.8/4.9.
On mingw were were seeing two issues, firstly that the if statements meant
the values we wanted weren't being set, the second that the include
paths were still wrong as there was no header path set.
To fix the first issue, the #ifdef conditionals were removed, we want
to set these things unconditionally. The second issue is addressed by
setting the NATIVE_SYSTEM_HEADER_DIR variable here (it was already
set in t-oe).
(From OE-Core rev: db44be06c75f2ac17a55dd1764471e869e872b8b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixes [YOCTO #4497]
Usage of FILESPATH is discouraged, since it can make recipes harder to
bbappend. Instead FILESEXTRAPATHS should be used to extend the path.
(From OE-Core rev: 879ff7e931a80fd090db4485b6b6dee8e4c71d30)
Signed-off-by: Petter Mabäcker <petter@technux.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We need to handle the UCLIBC_* linker variables in the same way
as we do the GLIBC_* ones to allow uclibc multilib to work properly.
(From OE-Core rev: 025ec5958b7e1fd71caa0079ec3c573126b30886)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There is a fix about to go into bitbake to ensure that datastores
being accessed with a name other than "d" are correctly reflected
in checksums. This will cause this function to add in a number of
dependencies we don't want.
These do need to be properly unravelled in due course but would
only really affect multilib builds. For now therefore just exclude
the variables as per the old behaviour.
(From OE-Core rev: cbc41a573dd3a073e7b862ca9d763ce815e8f927)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The class itself currently does nothing. The idea is to mark all recipes that
make use of the texinfo utilities. In the future, this class could be used to
suppress the generation/formatting of documentation for performance,
explicitly track dependencies on these utilities, and eliminate Yocto's
current dependency on the host system's texinfo utilities.
(From OE-Core rev: e6fb2f9afe2ba6b676c46d1eb297ca9cc532d405)
Signed-off-by: Max Eliaser <max.eliaser@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Within the OE build environment, we supply the correct fpu settings. These
only need to be spelt out for the on-target gcc.
Doing this means the checksums for the core compiler don't depend on the fpu
settings. We exclude the compiler tunes for similar reasons, it doesn't need
to influence the compiler build.
(From OE-Core rev: ce1f3fd20d81545d6d5dfc68f86f9fddf8ac9bbf)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since we no longer build target libs within gcc-cross, we can drop the
TARGET_CC_ARCH flags and hence make it independent of tune.
(From OE-Core rev: 74d8866814aec520822518cc4cb8a942f7069bf7)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As far as I can tell this variable is now completely unneeded. It would
only ever get used in target builds and these are now correctly done
in the target environment namespace, not any of our cross environments.
As such, CC and other variables contain the correct compilers and other
tune options and these are correctly picked up when building libgcc,
libstdc++ and others.
I tried to figure out where else these would make any sense and couldn't
find anything. Builds appear fine without them so lets drop the complexity
including the patch adding in this flag to gcc.
(From OE-Core rev: 5484596f4252e707ff791feedf143a72dbb613f6)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This command modifies ${S} and can race against other tasks running do_configure and
having the scripts disappear from under them. To avoid this move to its own
task and work on the shared work directory as a common task.
It needs to be a python task to avoid lots of shell exported variables as
dependencies.
(From OE-Core rev: 55ed9ffbab5118140baac5d0d29dcc919e1f1668)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently the gcc builds are building copies of the target libraries
that we never use (it isn't installed in do_install). This is a rather
pointless waste of cpu time.
Instead just compile the host targets. Comparing the package output of
this compared to a previous build shows that the unwind.h header is
missing since its provided by gcc. Fix this simply by copying it in.
(From OE-Core rev: 19448a50c106684ee7e3862f759418c982363a29)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows them to co-exist together in the native sysroot, with one
set of cross tools per target architecture.
(From OE-Core rev: a2c5509520d5c3e082f55844e6545d0309565f8f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The base_contains is kept as a compatibility method and we ought to
not use it in OE-Core so we can remove it from base metadata in
future.
(From OE-Core rev: d83b16dbf0862be387f84228710cb165c6d2b03b)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
BitBake has the exact same code as oe.utils.contains so there's no
reason to duplicate it. We now rely on the bb.utils.contains code for
metadata.
(From OE-Core rev: 93499ebc46547f5bf6dcecd5a786ead9f726de28)
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Its useful to separate out the native (cross) binaries from the target
compilation. We already do this for libgcc, this now takes the same
approach for -initial.
(From OE-Core rev: 8a2aaf8b6bdca2d28c0047093c7f668750d57666)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rather than building the whole of libgcc to obtain the unwind.h header
file, simply configure it and then install the file. This avoids copying
chunks of data around when we don't need to and building the same thing
twice.
After doing this we need to make sure the target build directory exists
in the libgcc case since it will no longer be created automatically.
(From OE-Core rev: 459e4dc25462771038459567c22e87d4cd38b117)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Prepare the ground for the creation of libgcc-initial by splitting common
libgcc code into a libgcc-common.inc file.
(From OE-Core rev: 7c9f4a22d5c14d768be872beb9fc798163d6d204)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There are two places unwind.h is installed, even by the Makefile's admission.
Disable one of them to prevent build failure races.
(From OE-Core rev: d3b02218dcfedda8e4efb43b8fa6d13af8d91f78)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* it uses autotools but doesn't call autotools_do_install
* fixes QA warning:
gcc-4.8.2: The /usr/share/info/dir file is not meant to be shipped in a particular package.
(From OE-Core rev: 0b62f8b012d8a128f34bd85a26aa97ea939cbf64)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Duplicate parameters in the tune args are repeated in the
MULTILIB_OPTIONS variable. This leads to incorrect configurations
if the order of the parameters is bad.
(Eg. "mhard-float m32/mhard-float m64" leads to an incorrect config)
This patch finds the common parameters and removes the duplicates.
(From OE-Core rev: 90dc31c24adfa8e916a9c475ae1afc58ad179dfb)
Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
GCC 4.8 includes a new runtime library, libatomic, which supports
atomic operations not supported by hardware or the OS. Build it,
so other packages can link against it, if needed.
(From OE-Core rev: a4dd6dfccee0be50d3addce3dd1bf903e051ad5a)
Signed-off-by: Cosmin Paraschiv <cosmin.paraschiv@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of using oe.path.relative, use the Python Standard Library function
os.path.relpath.
(From OE-Core rev: 90c3a0401c566e26d89a5c0410b2a51fe27b95b2)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When adding extra symlinks, we have to make sure that the directory
that the links are created in is valid. Added a check for this.
This is an incremental addition to commit
97f2a81d6796ddaf7bbaab86c2ab9039673c732c
(From OE-Core rev: ea297e807f4f84c281e0f8c6c4470ee3f3fa949b)
Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix for internal compiler error hit when building lttng-tools_4.2.0:
kernel-consumer.c:324:1: internal compiler error: in gen_movsi, at
config/arm/arm.md:5539
(From OE-Core rev: ec1d5bdf4cc0a7a3e4747b42b7b95805752bea07)
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[ADT bug #5761] -- https://bugzilla.yoctoproject.org/show_bug.cgi?id=5761
Also this patch adds symlinks to libgcc such that a GCC configured
by passing the target parameter without LIBCEXTENSION and ABIEXTENSION
specifiers to find the correct startup files from a libgcc configured
with these variables.
(From OE-Core rev: 97f2a81d6796ddaf7bbaab86c2ab9039673c732c)
Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
GCC 4.8.0, 4.8.1 and 4.8.2 can generate broken epilogues for the
ABI used by the kernel. Apply the patch that is included for GCC
4.8.3 from http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854.
The issue was found on Yocto/Dora and the patch should be backported
to this branch. A kernel built with Dora's GCC 4.8.1 misbehaved on:
while true;
do
(for i in `seq 1 100`;
do
echo "Log message... $RANDOM";
done) | logger;
done
busybox's syslogd would from time to read a huge negative value and
then exit, strace would get stuck waiting on a syscall. After this
patch it appears to work better.
(From OE-Core rev: 3004eb3b7ee5fd8dfe9c4e5749b4e125d0bd4b59)
Signed-off-by: Holger Hans Peter Freyther <holger@moiji-mobile.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We've had 4.8 around for a while now, I'm not aware of any issues with
it so we can drop the older 4.7 version.
(From OE-Core rev: 15685dccd37f7636bbdd56af04a9dbc9b7595612)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix statement indenting and spacing issues that I happened to notice.
(From OE-Core rev: d11e297b007aba625b398c52952ec929c3b02b83)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A lot of our recipes had short one-line DESCRIPTION values and no
SUMMARY value set. In this case it's much better to just set SUMMARY
since DESCRIPTION is defaulted from SUMMARY anyway and then the SUMMARY
is at least useful. I also took the opportunity to fix up a lot of the
new SUMMARY values, making them concisely explain the function of the
recipe / package where possible.
(From OE-Core rev: b8feee3cf21f70ba4ec3b822d2f596d4fc02a292)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently the code has problems differentiating between "gcc-cross" and "gcc-cross-initial"
sstate files. We could add in a ton of special casing but tests show this isn't scaling
well. Using a more unique separator resolves the issue.
The choice of which separator to use is a hard one. We need something which isn't commonly
used in PN, PV, PR, *_OS and *_ARCH which rules out '-', '_' and it needs to work ok with
webservers/http which makes ';' and '%' harder.
The change also sets SSTATE_SWSPEC globally since writing out differently named siginfo
files for the fetch/unpack/patch tasks is a waste of diskspace, the hashes match for
all PN in the majority of cases and if they don't, its not a big issue as the hash is
different. This makes the results from sstate debugging more understandable.
(From OE-Core rev: 6f823a23c5f1d0ffa0a27db1c1bc1907de788505)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For a shared workdir, any one of the fetch/unpack/patch tasks may run yet the
PN and architecture fields in SSTATE_PKGSPEC may differ. This makes looking up
the appropriate siginfo file near impossible.
I've tried several different ways of resolving this and this is the neatest
solution I could find, its still rather ugly. I believe the usefulness of
better sstate debugging outweighs the ugliness of the code.
This patch also changes the sstate_checkhashes() code to look for siginfo
files rather than the actual sstate packages themselves. This means the
function can be used in other contexts to find info files for tasks that
may not have sstate data. It is assumed that sstate mirrors will have both
files available. This is done to allow bitbake to query whether tasks have
matching signatures in sstate directories or not.
(From OE-Core rev: 068e4289b597699cbff2dfde44ba833af4535281)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We had disabled the sdt from configure, let's also disable it from
confgure.ac to keep them compatible.
BTW, the libstdc++-v3 of gcc-4.7 doesn't use the sdt, so we don't need
to edit libstdc++-v3/configure as gcc-4.8.
NOTE, this commit edit the patch gcc-4.7/disablesdt.patch directly.
[YOCTO #5657]
(From OE-Core rev: 452c6afc3883b0304e06eb1764614348fb6599c8)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We may meet such an error when building gcc/libstdc++-v3:
gcc-4.8.1/libstdc++-v3/libsupc++/unwind-cxx.h:41:21: fatal error:
sys/sdt.h: No such file or directory
We already have a patch to disable the sdt for gcc, we also need disable
it for libstdc++-v3.
BTW, we need edit both configure.ac and configure to make them keep
compatible.
NOTE, this commit edit the patch gcc-4.8/0031-Disable-sdt.patch directly.
[YOCTO #5657]
(From OE-Core rev: 32854af3cc6c0626620e827dc1915f61c51250b8)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Without this sstate builds can fail with missing dependencies.
(From OE-Core rev: f92ebf78d94cb8f4010f8d444d1d0336c1fb1341)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc 4.8 fortran presents some challenges:
* libquadmath headers need to be in the libexec include dir. It turns out
to be easiest just to manually do this.
* libgfortran configure needs libquadmath to be compiled. This means
a separate recipe is needed (the alternative is gross hacks)
* the libtool uses to link libgfortran doesn't have our improved rpath
handling and puts bogus RPATHS into the libraries. We can avoid this
by tweaking libtool with sed.
This patch resolves those issues. Any user of fortran does need to DEPEND
on libgfortran in order to trigger it to build but this shouldn't be a major
issue.
(From OE-Core rev: a5e7ee5770b9e0cf719c573efffd874440f74289)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Using the contains function results in more optimal sstate checksums
resulting in better cache reuse as we as more consistent code.
(From OE-Core rev: 9c93526756e7cbbff027c88eb972f877bcb1f057)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When fortran was enabled, builds were failing due to a extra files.
For now we can remove these and avoid the build failure.
(From OE-Core rev: 2e60ef7fe63974e443a9ddc25c5eb4249ec37963)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc has cross and target components with a shared workdir. The unpack umask
settings need to match for all of these. We need to use strings in each
case to ensure the sstate code matches them correctly.
This patch tweaks various things to ensure the change adding the unpack umask
change doesn't break the compiler builds.
(From OE-Core rev: 67162438ee9c402b23c32853af9d313949eb6e4a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
MIPS gcc is not configured with multiarch enabled. This causes
compiler generates local label with $ prefix, which is specified
in default o32 abi. It is not recognized as local symbol by n64
assembler, so we get a lot of unexpected external symbols. We
should configure MIPS gcc with --enable-targets=all, as for other
archs.
(From OE-Core rev: c210393b3e0c54606493e311d7c2040efebc4dcd)
Signed-off-by: Lei Liu <lei.liu2@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
PowerPC toolchains can use the OS "linux" or "linux-gnuspe". This
patch links them together so the one cross-canadian toolchain can support
both.
GCC_FOR_TARGET is set for the GCC recipe as otherwise configure
can pick up an incorrect value.
[YOCTO #5354]
(From OE-Core rev: a1d6331238982b0c5d39b0a18794f6654b00d46a)
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>
The cross-canadian compilers are now build once per architecture but were being
installed into tune specific locations which is incorrect. This adjusts things
so they are make TARGET_ARCH specific. We gain the tune specific parts from the
target sysroot which remains tune specific, the compiler and tools are independent
ot that.
binutils/gcc require sysroot options but since we reset at runtime, these shouldn't
have dependencies in the sstate checksums. They are therefore also excluded.
With these patches, switching machines does not result in a rebuild of *-cross-canadian
and the compiler is correctly located and referenced in the target images.
(From OE-Core rev: f58acab6414fe96d9e07ebbe86b348d2ac2bed5f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We only care about the end result in this case, not the specific inputs
that went into determining the gcc option. This change updates the code
to reflect that.
(From OE-Core rev: 83055511dab1e2aeefe84262ebe52595848c844b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If sed-native is built before these programs, hardcoded paths to sed-native
can end up in scripts and other parts of the system which may cause issues
if they are later used from sstate and sed-native is not installed.
To avoid this, this patch changes the global site configuration to
specify that plain "sed" is fine to be used. We need to spell this
out for gcc since it doesn't see the site files since we don't autoreconf
it. We can remove the values from libtool. We tell perl to use "/bin/sed"
since it requires a path and the system sed should be just fine for it.
[YOCTO #4971]
(From OE-Core rev: 2ec171cb188601bf18c6c2895870907024b1c52a)
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>
The --enable-dependency-tracking option was added to workaround build
issues in libatomic. This fixes that build problem properly and removes
the flag since the dependency tracking code appears to be full of races
which are much deeper and harder to fix.
As per the automake manual, dependency tracking is only useful and worth
the build performance cost if you are doing more than one compile of the same
source code which in most cases we are not so this is a good thing anyway.
(From OE-Core rev: a3b665a80abed4c0659925e1cceb1568af023711)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* temporary work around for build issue on armv4t:
| cp/decl.o: In function `bad_specifiers':
| gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7171:(.text.unlikely+0x24): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
| gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7173:(.text.unlikely+0x32): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
| gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7176:(.text.unlikely+0x3e): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
| gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7180:(.text.unlikely+0x4c): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
| gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7182:(.text.unlikely+0x5a): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
| gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7185:(.text.unlikely+0x66): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
| gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7189:(.text.unlikely+0x74): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
| gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7191:(.text.unlikely+0x82): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
| gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7194:(.text.unlikely+0x8e): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
| gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7198:(.text.unlikely+0x9c): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
| gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7200:(.text.unlikely+0xaa): additional relocation overflows omitted from the output
| collect2: error: ld returned 1 exit status
| make[2]: *** [cc1plus] Error 1
(From OE-Core rev: 148c7e990831ed708f7fb064ec8f05657a323850)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently we have a hierarchy of pkgdata directories and the code has to put together
a search path and look through each in turn until it finds the data it needs.
This has lead to a number of hardcoded paths and file globing which
is unpredictable and undesirable. Worse, certain tricks that should be
easy like a GL specific package architecture become problematic with the
curretn search paths.
With the modern sstate code, we can do better and construct a single pkgdata
directory for each machine in just the same way as we do for the sysroot. This
is already tried and well tested. With such a single directory, all the code that
iterated through multiple pkgdata directories and simply be removed and give
a significant simplification of the code. Even existing build directories adapt
to the change well since the package contents doesn't change, just the location
they're installed to and the stamp for them.
The only complication is the we need a different shlibs directory for each
multilib. These are only used by package.bbclass and the simple fix is to
add MLPREFIX to the shlib directory name. This means the multilib packages will
repackage and the sstate checksum will change but an existing build directory
will adapt to the changes safely.
It is close to release however I believe the benefits this patch give us
are worth consideration for inclusion and give us more options for dealing
with problems like the GL one. It also sets the ground work well for
shlibs improvements in 1.6.
(From OE-Core rev: 1b8e4abd2d9c0901d38d89d0f944fe1ffd019379)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add packaging for libgfortran and libquadmath as well as tweak the packaging
for libmudflap since it was broken.
(From OE-Core rev: 8a726d14a345ef35c6d8d8e369bf3691cee879bf)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These have been deprecated for a long time, convert the remaining
references to the correct modules and prepare for removal of the
compatibility support from bitbake.
(From OE-Core rev: 6a39835af2b2b3c7797fe05479341d71a3f3aaf6)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* http://gcc.gnu.org/bugzilla//show_bug.cgi?id=57717#c7
* fix the segfault issue of dd on e500v2 targets
Since double-float is disabled for e500v2 targets build due to ICE of gcc-4.8.1,
accordingly %Ld format of sprintf is disabled.
Address Bug 4910 - [p1022ds]urandom: segmentation fault
(From OE-Core rev: a4fefac26d91bc56d5d28e1c9973a189d2509d45)
Signed-off-by: Chunrong Guo <B40290@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For some platforms its useful to be able to configure LTO so provide a variable
to allow this to happen.
(From OE-Core rev: e4582a51a2500ad3b418e53170f5fb6b2cbd98a5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
See the patch headers for more information about the cross-canadian build failures
these patches avoid.
(From OE-Core rev: 2bae60b8a3cb7783c06e35a2962e56110e876957)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Remove the duplicate EXTRA_OECONF_PATHS that is overwritten
* Merge the do_compile and do_compile_prepend
* Group dependency and configuration variables together
(From OE-Core rev: 430b1d6fcbf60df35036fe5bbf8e55f7fb8f5341)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This also has the advantage of removing the confusing sdk naming which
has been purged everywhere else in favour of cross-canadian.
(From OE-Core rev: cbb63ca9e7e6d397198808e862f812f1012c74a7)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Hardcoding -nativesdk as the sdk package architecture is inflexible. We may have
multiple different target OS and we need a way to be able to separate them. Turning
this into a configurable value allows the flexibility we need to build different
SDKMACHINEs with different OS targets.
The commit should have no behaviour change, just makes things more configurable.
(From OE-Core rev: a2110e86b98d646e136de9ec6b8e668079b0d4f4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This removes duplication and follows the pattern of the other gcc recipes.
(From OE-Core rev: 3296c896f5a5ef7dd50ab4e00ddbf1c2476462dc)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some SDK platforms have elfutils support, some do not, therefore allow
this to be configured.
(From OE-Core rev: 717e940d2c2beccfda31dda16a2d0d6d9a495042)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The include was useful historically, its not anymore so lets remove it.
This should have no functional change except on any layers directly depending
on it or gcc-cross.inc but even then it would only impact sh4 and is easily
fixed if there was a problem.
(From OE-Core rev: e7e8fe11c34bf05179f3bbaa2fb1af7b7125696a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
I don't understand why we're building the target libgcc in the canadian-cross build
since it should have been built elsewhere. The compiler configuration isn't correct
to build a working target libgcc in all cases anyway.
To avoid various weird build errors, stop building it.
(From OE-Core rev: b0d1ab6242b6ce2bcdd0e4e3e61600344fcd2907)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
On platforms like windows, executables have extensions. Whilst I'm not proposing
we wholesale support windows extensions, this small tweak allows a cross compiler
targetting mingw to be built which does seem like a good use case.
The patch therefore adds an EXEEXT which the mingw layer can set for the libexec
symlinks.
(From OE-Core rev: 8dcf0d95b654fa6cc56193168aaa744052ad8ffc)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We already use relative links for other gcc libexec links, this changes the sdk
do_install to match elsewhere and use relative symlinks too. This makes things
slightly easier in the SDK installation process and standardises.
(From OE-Core rev: ecfa1141e731224cc5a099f8dfd22878f23359ec)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This disabling of PARALLEL_MAKE has been forward ported for gcc-cross-canadian
since at least 2009-09 and gcc 4.3.3, probably older.
I've tested this with high values of parallel make and it all seems to work and
we usually build gcc with parallel make so it seems unlikely there are issues.
Lets therefore enable it.
(From OE-Core rev: cee90d230899eb1255d586e6ee4fad0d94348cfd)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This should fix the problem seen where gcc ICE
was happening when compiling iperf with older 2.6.x
kernel
Test this patch by reverting below commit in meta-fsl-arm
commit daf582c93a7283fb0af3b25fe2ada48f4c9985c4
Author: Otavio Salvador <otavio@ossystems.com.br>
Date: Tue Jul 2 11:52:51 2013 -0300
perf: Disable FPU tune for i.MX5 SoCs to workaround GCC ICE
(From OE-Core rev: 8ab1d16b6c6d946b625b6872e5d0f155206f4bad)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
CC: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
libtool is picking up libstdc++.so from /usr/lib when trying to link
libasan due to libstdc++.la containing libdir="/usr/lib". If compiling
for x86 and the host has 64-bit /usr/lib/libstdc++.so, the compilation
fails linking libasan with:
/usr/lib/libstdc++.so: could not read symbols: File in wrong format
To resolve this, patch libtool to look for the library in the path the
.la is contained in rather than use the libdir which usually points to
a host path.
[YOCTO #4879]
(From OE-Core rev: ec95dfeea1f17eb232563e105085852058a86c0b)
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This fixes the issue where g++ is not able to
find C++ headers when sysroot is '/'
The patch needs to be upstreamed into gcc as well.
[Yocto #4812]
(From OE-Core rev: 18537025ca8777a45cb24f1d9ee781323695607a)
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>
Rename patches to make them easly to apply with git
(From OE-Core rev: 040a55d0b730bf78aad0f51e0018faa88655e279)
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>
The original fix worked some of the time, but not on all machines. Fix
this by applying the change in a different way. Following the example of
the existing BUILD_CFLAGS.
Below is the commit message from the original change to help explain why
this is needed:
Configure identifies a number of warning flags (WARN_CFLAGS and
WARN_CXXFLAGS) from the $CC value. The cross compiler may be different
from the host compiler and may not support the same set of flags. This
leads to problems such as:
cc1plus: error: unrecognized command line option "-Wno-narrowing"
cc1plus: error: unrecognized command line option "-Wno-overlength-strings"
Work around this problem by removing the warning flags from the
BUILD_CXXFLAGS value, in a way similar to the BUILD_CFLAGS.
(From OE-Core rev: be21c6e8e4f810e826538337dac6e34ed96e1f6f)
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>
Add build directory to include directories by -I${B}/include which will
be searched before standard system include directories.
Both libunwind and gcc supply unwind.h, once gcc use libunwind's unwind.h,
the compiling will fail.
This patch is generally not applicable to the upstream as they do not
use libunwind.
(From OE-Core rev: 2b47bce78536a800205b2385bba69038351545e5)
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When cross compiling the target compiler, both the cross-compiler
and the host compiler are used. However, the -W options used were
discovered from the cross-compiler and may be incompatible with the
host compiler.
(From OE-Core rev: 1f40202ce3c1282674b6cea39ef709972275f201)
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>
Some distros have newer makeinfo which does not go well with
anything below gcc 4.8, this fix avoids regenerating info files
(From OE-Core rev: 50ac2ed5299e2b47b2f3fd9c9cde9d733d2f8d9b)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixes errors seen while compiling gcc 4.8 for target, errors like
| /home/khem/work/angstrom/build/tmp-angstrom_next-eglibc/work-shared/gcc-4.8.0-r0/gcc-4.8.0/libatomic/cas_n.c:125:1: fatal error: opening dependency file .deps/cas_1_.lo.Ppo: No such file or directory
which are due to disabled dependency tracking but dependency files being still generated
while compiling libatomics.
(From OE-Core rev: c83cbc80af078d7be5deec44bba6e0ca29a5ee1a)
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>
Backport fix for internal compiler error when building gcc-4.7.2 with a
gcc-4.8.0 host gcc.
See upstream bug here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56308
(From OE-Core rev: b1dc91969f9bb0c2a3a4336f5e9a2f57aabb9f78)
Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If we didn't build libgomp then we won't have installed anything into
${infodir} or ${libdir}/gcc/${TARGET_SYS}/${BINV}/finclude. Check
whether those directories exist before trying to remove them, else we
will lose.
(From OE-Core rev: 507e14ecdc5b4ff2ee7f1128d9f30c2948e10d5a)
Signed-off-by: Phil Blundell <philb@gnu.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
armv5t was seeing ICE on code from elfutils it has been fixed upstream
so lets backport it.
(From OE-Core rev: 6c50d60ce3fd7242e67a531d5875edeb8b7a3651)
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>
* this is needed only for 4.7 series, newer works fine with texinfo-5*
[YOCTO #3947]
(From OE-Core rev: d85d15972d78b5dda7a03dd273a64305f115282b)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
AVAILTUNES is only used as a sanity check, we don't need to
include it in the sstate checksum in this case. If included
it can cause problems when switching machines with a common
package architecture.
[YOCTO #3667]
(From OE-Core rev: b1cc5a4055c6402595eac1a93eac4c946210d130)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If fortran is not built, soft links to gfortran and g77 are created
even though the fortran compiler doesn't exist...
[YOCTO #4023]
(From OE-Core rev: c5c135bc5e71a6f9b14f249358bf5d217050ee55)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch backport the fix where -Wcast-qual
reports a bogus warning with 4.7.2, There is
no workaround in code that can be done to avoid
it hence the fix to gcc is backported.
(From OE-Core rev: 5d8ef98225773a6ec88b5e1a76ce01d76163b3a5)
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>
- 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>