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>
This reverts commit 7893e74311e53882d8f93ecb95a6bd9f5b14651e since it breaks
the builds.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There are several invalid symlinks in gcc-cross-initial,
gcc-cross-intermediate and gcc-cross, these cause the error:(56 errors)
tmp/work/i586-poky-linux/gcc-cross-initial-4.6.3+svnr184847-r23/temp/log.do_populate_sysroot:
log.do_populate_sysroot:grep: /path/to/invalid/symlink: No such file or directory
Avoid creating invalid symlinks would fix this problem.
Use the:
[ ! -e file ] || do_something
But not use:
[ -e file ] && do_something
is because that if the "file" doesn't exist, then the whole statement
would return false, and bitbake treats this an error, so use the "||" to
let it always be true.
[YOCTO #2095]
(From OE-Core rev: 7893e74311e53882d8f93ecb95a6bd9f5b14651e)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
core-image-sato/core-image-minimal builds and boots
on all qemu machines
(From OE-Core rev: 40d7a4b70d342f75e13de7872fb62e2b9d6d40bf)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Using "1" with getVar is bad coding style and "True" is preferred.
This patch is a sed over the meta directory of the form:
sed \
-e 's:\(\.getVar([^,()]*, \)1 *):\1True):g' \
-e 's:\(\.getVarFlag([^,()]*, [^,()]*, \)1 *):\1True):g' \
-i `grep -ril getVar *`
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
dash does not like >& so be explicit and say 2>&1
(From OE-Core rev: 1d262630853e65be9167d904b934b581acf64182)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We have various variables which are either not quoted at all or are half
quoted. This patch fixes the bad exmaples so everything is consistent.
(From OE-Core rev: 30253358f5e76fb7b25be27198b4c125e0dbdf2c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Corrected the error introduced by commit afb400e of dropping
DATE/SRCDATE out of the vardepsexlude list of do_patch.
(From OE-Core rev: 6546096d068b51cc9cf4557cdb35aee6f62838d5)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ensure do_patch have the same sstate hashes for nativesdk variants of
gcc family recipes, since they share the same source directory.
(From OE-Core rev: afb400e9c3ddac604906bde44df5da29a6c134d9)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
a) Use the system zlib to avoid building it for each gcc.
b) -initial and -intermediate don't need plugins or lto-plugin
so disable them.
(From OE-Core rev: a124a0883507caf4ffb7e25be666f6781b30abdd)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Dont use -q to grep we pipe to /dev/null anyway all we
care is the return status of grep
(From OE-Core rev: 9c575b5f37ee53eaf26bfdc468d4cbb661db703f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Skip the staticdev QA test since the static archives belong
with the -dev.
(From OE-Core rev: 3de810a7f745b253d4b63eea353a31514d64a2e3)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc-cross is installed into a package architecture specific directory
and is not meant to be machine specific. This patch replaces MACHINE_ARCH
with PACKAGE_ARCH to ensure this is really the case.
This was found by examining sstate checksums.
(From OE-Core rev: b3ca57418f47b16ed0a63d3291bf7d31e3ca5a45)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changes in WORKDIR were changing the do_patch stamps between gcc-crosssdk
and gcc-cross. This excludes the variable since in this case, we don't
need want those changes to affect the signatures.
(From OE-Core rev: 0de85d2ca3bc9674323302a35995dfddb6044a71)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Keep the *_nonshared.a in the libgcc-dev package as
required for linking, moved the other *.a libraries
into their respective packages (libstdc++ and libssp).
(From OE-Core rev: c2838d949ffd15282c72551b40c5fd81d0db1fa0)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
libgcov.a is moved to it's own libgcov-dev package, instead
of being part of libgcc-dev.
(From OE-Core rev: a82a3f8ec55e68a003420549392d638e565562fc)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This was duplicated from the main SRC_URI and was causing incorrect
task signatures. This simply removes the duplication.
(From OE-Core rev: cc8d02c582a72d07fd08c59d14ee5720e01a5cd9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These tasks don't do anything, this just avoids the overhead of forking
to exec them.
(From OE-Core rev: 6708b3e908ae383922703390ac2d39f40348e1b3)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The fetch/unpack/patch/headerfix tasks are shared and hence their sstate hashes
should also match. Sadly this is not the case since:
a) gcc-runtime applies an additional patch
b) The do_headerfix task was missing from libgcc
c) The do_headerfix task is a shell task and hence depends
on all exported variables which can vary between cross and target
recipes.
To fix this, the patch moves the patch to the common code, adds
the headerfix task to a common include file and disabled shell
dependencies on the do_headerfix task since its clear in this case
we don't need thsoe dependencies since we just call sed.
With this patch applied, all these recipes now share common sstate checksums.
(From OE-Core rev: 2c4569801a710f34a695b8d2a0ee7fc127fb34e4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some patches were missing Upstream-Status informantion,
this commit adds that in those patches.
(From OE-Core rev: 01c3669856538eb34d329780e03df2dc7fb985f2)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently we have a problem in our cross compiler since we use
/usr/include/c++ to be default gxx-include-dir and then expect
the patch we did to do the relocation w.r.t. sysroot however it
does not quite work so and we end up gxx-include-dirs not respecting
sysroot. A small test case would be
tst-unique4.cc
and it would fails like
tst-unique4.cc:1:18: fatal error: cstdio: No such file or directory
compilation terminated.
weather we use --sysroot or not it does not matter
arm-oe-linux-gnueabi-g++ -S tst-unique4.cc
--sysroot=/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm
failed in same way.
so we redo the GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch based on upstream
submitted patch which tries to relocate the gxx-include-dir and to
achieve the relocation it has to be specified w.r.t to --with-sysroot
directory. e.g.
--with-sysroot=${SYSROOT}
--with-gxx-include-dir=${SYSROOT}/usr/include/c++
if we configure gcc like above then it becomes relocatable when
we run the compiler and specify --sysroot=<blah> then g++ will search
for gxx-headers under <blah>/usr/include/c++
if sysroot is not defined then it will use the default sysroot
and gxx-include-dir will be w.r.t. default sysroot.
Tested on qemuarm
/arm-oe-linux-gnueabi-g++ -S tst-unique4.cc
--sysroot=/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm
-v
...
/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm/usr/include/c++
/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm/usr/include/c++/arm-oe-linux-gnueabi
/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm/usr/include/c++/backward
...
and if I now change --sysroot to something else
/arm-oe-linux-gnueabi-g++ -S tst-unique4.cc
--sysroot=/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm4
-v
...
ignoring nonexistent directory
"/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm4/usr/include/c++"
ignoring nonexistent directory
"/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm4/usr/include/c++/arm-oe-linux-gnueabi"
ignoring nonexistent directory
"/home/kraj/work/angstrom/sources/openembedded-core/build/tmp-eglibc/sysroots/qemuarm4/usr/include/c++/backward"
...
See now its looking for them in 'qemuarm4' sysroot
(From OE-Core rev: 28b772e42a20faebe1b4f415d28b42b7e0a424fb)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This script will be generated into the build directory of gcc-cross
It should be testing gcc and g++. libstdc++ tests are not run since
we build them as part of gcc-runtime but we can test them here by
building them with 'make all' and then running the tests
The script expects passwordless ssh access to target and is used
in form
./arm-oe-linux-gnueabi-testgcc kraj@192.168.7.2
inside the builddir of gcc-cross
(From OE-Core rev: 130b534fdb0b292158981a12d7d5f01c1a14cb2a)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Right now for cross recipes e.g. gcc-cross and binutils-cross
we specify --disable-nls .... --enable-nls on configure cmdline
the --enable-nls coming from gettext bbclass.
So we disable nls for all cross inheriting recipes in gettext
bbclass and then we remove the extra --disable-nls in gcc-cross
and binutils-cross
This patch needs testing. Please help
(From OE-Core rev: d66b379f809b9c75981848fcc71ed5de13382bf7)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch is a backport of http://patchwork.ozlabs.org/patch/110517/
(From OE-Core rev: 048c31c4e19d1bb060c79011cb25dfeff51c3ef1)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Make get_gcc_multiarch_setting more elegant. Use a dictionnary
to store the config options and replace bb.data.getVar with d.getVar.
Remove i686 from the architecture list because it doesn't seem
to be a valid TARGET_ARCH any more in OE.
Configure gdb (gdb and gdb-cross) with --enable-64-bit-bfd if
multiarch DISTRO_FEATURE is present
(From OE-Core rev: 0b42b2fc118bef8ce0d1473b146673182f5d1f78)
Signed-off-by: Julian Pidancet <julian.pidancet@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch introduces a distro feature which enables gcc to produce
both 32bit and 64bit code, and enables binutils to operate on both
32bit and 64bit binaries. It differs from multilib toolchains in
that it does not require to compile a version of the libc for each
architecture variant. However, the code produced for the secondary
architecture will not be linkable against the libc.
v2: - Renamed the feature name from "biarch" to "multiarch". The GCC
installation manual claims that the mips-linux can be made a tri-arch
compiler (http://gcc.gnu.org/install/configure.html)
- For x86_64, the compiler is made bi-arch by default, so nothing
has to be done in particular.
- I analyzed the gcc/config.gcc from GCC sources and added in this
patch all the architectures that could be made biarch with the version
of gcc currently used in OE, which are powerpc, and sparc, in addition
to x86. mips and s390 will probably be supported in future versions of
gcc. For x86 and sparc, only the --enable-targets=all option is valid
to make this work (this option doesn't have any other side effects than
making the compiler bi-arch). For powerpc, I used the
--enable-targets=powerpc64 option (although 'all' also works).
Note: - Untested on powerpc and sparc. But I believe it works the same
as with x86.
- gcc in meta-toolchain is also made multiarch.
(From OE-Core rev: 99e295ef30ba02db3966c66619807c037ef5089f)
Signed-off-by: Julian Pidancet <julian.pidancet@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When I was trying self-hosted-image, eglibc's do_install failed in the target:
ERROR: cannot stat bootparam_prot.h:
the cause is: rpcgen doesn't work properly: rpcgen can't exec /lib/cpp since
it doesn't exist.
According to http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/lib.html:
"if a C preprocessor is installed, /lib/cpp must be a reference to it, for
historical reasons. The usual placement of this binary is /usr/bin/cpp".
Typical distros, like Ubuntu, openSuSE, Fedora and RHEL, all comply with
the rule.
Actually in meta/recipes-devtools/gcc/gcc-package-target.inc, we do try to
package ${base_libdir}/cpp:
FILES_cpp = "\
${bindir}/${TARGET_PREFIX}cpp \
${base_libdir}/cpp \
${libexecdir}/gcc/${TARGET_SYS}/${BINV}/cc1"
But unluckily we didn't create a symbol link in do_install.
This patch adds the symbol link.
(From OE-Core rev: 58fb9fbce2af05a469691390e75aebb2de16ca96)
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Backport fix for PR 47551 fixes the ICE seen on armv7-a/qt4-x11-free
Bump up SRCREV past gcc 4.6.2 release
(From OE-Core rev: dd2fdf9f5a3923c37e4ea2e46e347bb0657c2f5b)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: da7bf75bcdd5759a0f551dcb7a0326aa2f40921c)
Signed-off-by: Michael Brown <Michael_E_Brown@dell.com>
Port patch from base openembedded. Since 4.6 already has fixes for config.gcc,
the fix only requires a one line change to gcc-cross4.inc.
The patch was imported from the OpenEmbedded git server
(git://git.openembedded.org/openembedded) as of commit id
3aa8afe97e9cf1340feb9c4442a6ed88b7e32c96.
gcc-4.5: Fix toolchain builds for SH4/SH3
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This fix is needed for gold to work. Otherwise
connman fails to build since it used hidden weak
symbols.
See
http://gcc.gnu.org/bugzilla/PR32219http://www.cygwin.com/ml/binutils/2008-02/msg00239.html
The fix proposed to gcc had reviews which were not addressed hence the
patch is not yet
applied to gcc upstream.
connman can also have workaround by changing the visibility of these
symbols to be default
__attribute__ ((weak, visibility("hidden")))
to
__attribute__ ((weak, visibility("default")))
in include/plugin.h
(From OE-Core rev: 3cb2b003db7371b3a47d02c08352a262e1e419b4)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We force the C locale when running builds for determinstic error messages. We
therefore have no need to NLS support in binutils cross or gcc cross.
We also don't need the standard base/autotools dependencies for our
toolchain components since we don't autoreconf these.
This patch turns off nls and cleans up some of the dependencies resulting
in a slightly less convoluted set of build dependencies.
(From OE-Core rev: 54a3e2ee37003fc56af0339f857b0b6442790c26)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Depending upon what hash style is in use this uses
the right flag for setting the hash style type. This
fixes the QA errors about missing GNU hash style reported
in gcc-runtime build particularly libgcc
(From OE-Core rev: f8edd9b872bcf14da037bd0b501ccc8c6fcc79bf)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
a) There is a QA warning from a .so being present in a main package.
In the case of the plugin library for gcc, this is allowed.
b) Remove the unwanted libiberty.a file with the strange path. We
don't need/want this and this removes an unpackaged file warning.
(From OE-Core rev: ca36a3edf9cede9fa0d73ba1a9538ab467cb5e3c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
First, this lib is usefull for coverage analysis-enabled building.
Second, this fixes the warning about unpackaged files in libgcc recipe.
(From OE-Core rev: 2a807a98d8be3f486e703321773db32657c71d9e)
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Long time ago a066e7ca90a28d5681c5fa895a29e999ed7c88b was committed to
address possible problems with compilation of nscd during
eglibc-nativesdk build. Problems were related to the way gcc searches
for headers to check if it should enable it's own stack smash protection
bits or it can relay on eglibc for it.
However after 934d38530c9a67562e53d4034aee5531f0f26750 things got
broken, as for gcc-crosssdk-intermediate packages:
1) EXTRA_OECONF is ignored
2) headers are installed in a different location than expected by that
patch.
This results in eglibc-nativesdk build broken on some systems (e.g. mine
Debian x86_64 squeeze). Fix that by providing with-headers options to
crosssdk-intermediate gcc configuration.
(From OE-Core rev: 63494d638b7a9b88a5b7d7a02d2afcb3aa0fa064)
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #1381]
This patch came from from GCC Bugzilla via Khem
Cc: Khem Raj <raj.khem@gmail.com>
(From OE-Core rev: 61dac2f6f68bc46d8f3f6f7a8757924f103c7c54)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Commit 35fa8dc5f7 changed the gcc recipes to use
baselib for the compiler location. This is fine as long as baselib happens to
match the platform multilib definition which is enabled at the time.
This patch fixes things so that gcc will honour whatever ${base_libdir} is
set to re-allowing suitable customisation of the system layout.
[YOCTO #1362]
(From OE-Core rev: bc5f293b151b9ba0d6660814d88ee5041efce318)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The gcc-poison-parameters was added specifically to deal with an issue
on ppc targets and a bug when we build with -Os -frename-registers.
This bug below reports the issue and is fixed in gcc-4.6.x/mainline:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44618
Backport patch to gcc 4.5.1.
(From OE-Core rev: fef385e37e82a0eec743fbd1da11021b9e7158b5)
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The gcc-poison-parameters was added specifically to deal with an issue
on ppc targets and a bug when we build with -Os -frename-registers.
This bug below reports the issue and is fixed in gcc-4.6.x:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44618
(From OE-Core rev: 0fabe078a31591f41c3fdabe5aa9de1111ef82c7)
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixes bug [YOCTO #1386]
1) Add the following lines to conf/local.conf:
SDKGCCVERSION="4.5.1"
GCCVERSION="4.5.1"
2) bitbake meta-toolchain
The we will notice the error that sed can't find the directory:
${TMPDIR}/work-shared/gcc-${PV}/gcc-${PV}-${PR}
we had changed the name of S from gcc-${PV} to gcc-${PV}-${PR}, but didn't
update meta/recipes-devtools/gcc/gcc-common.inc, so fix S in gcc-common.inc
would make it work.
(From OE-Core rev: 282773ff3e0f365c08ae7e8fe759029f33e575b1)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some place pnum=1 is used which is removed as well since
striplevel=1 is default
(From OE-Core rev: 4e108857e0d40105f7ecbc55e99bd6c367bb7386)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
libgcc now uses shared work directories so we cannot mark
these tasks as noexec. If we do, the tasks may not run
and hence gcc may not get patched for example which
results in failures.
This patch simple removes the flags since they're unneeded.
(From OE-Core rev: e2c03b2a80efeeea2298bdba385671d0ae208e95)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We ensure that:
* the shared work directory contains PR and ensure PR values are consistent across gcc builds
* the regexp to handle library directories is in a specific task and run once
This avoids breakage that was seen in incremental builds after commit
be1f70d68b where the interpretor could
become corrupted. This was due to the sed expression corrupting
the source directory.
(From OE-Core rev: 970af6b09e1d69041b0d82fa56ace19543405eb1)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rather than tweaking MULTILIB_DIRNAMES & MULTILIB_OSDIRNAMES like is
done for x86-64 via 64bithack.patch. We can just go with gcc defaults
and utilize ${base_lib} for where to find gcc libs.
(From OE-Core rev: cfcc282efef30ea1988ccbe14835254a999584ea)
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Implements basic e5500 enablement in gcc, with a scheduler, -mcpu
flag, etc...
(From OE-Core rev: b4f6fb7033d3798cae32d42bce5a0f8402ad57c1)
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The sed regex in do_configure_prepend was producing the following result:
#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "/lib64/ld-linux-x86-64.so.2"
instead of removing the leading "/lib" or "/lib64".
Now we have it do:
#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2"
Additionally, with the regex fixed the manipulation of SYSTEMLIBS_DIR
needs to be removed.
(From OE-Core rev: b343436d03fa5690b16ee8ef5d4a738c5194b301)
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since we now handle GLIBC_DYNAMIC_LINKER in gcc-configure-common.inc:
's#\(GLIBC_DYNAMIC_LINKER[^ ]*\)\( *"/lib.*\)#\1 SYSTEMLIBS_DIR\2#'
we can drop the patch which changes a hardcoded value for this.
No PR bump since there is no code change resulting from this, its just
a cleanup.
There is still a valid question over the remainder of this patch and its
interaction with multilib configurations.
(From OE-Core rev: 036faf66c3889cd8bf4cd3c9b97c80f008f3c6e2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch adds the core multilib class which can be used along with a
parameter specifying the mutlilib to use in BBCLASSEXTEND.
The MLPREFIX variable is added and can be used in cases where its too
difficult to dynmaically work out where a mutltilib prefix is needed
to be added to a variable.
This includes:
* SHLIBSDIR and PACKAGE_ARCH fixes from Lianhao Lu.
* PACKAGE_DYNAMIC mapping from Yu Ke
* PACKAGE_INSTALL mapping from Yu Ke
* RPROVIDES mapping from Yu Ke
* TARGET_VENDOR fix from Mark Hatle
* Ignorning *-native-runtime dependnecies as well as *-native from Yu Ke
* Map PKG and ALLOW_EMPTY from Dongxiao Xu
* Ensure RCONFLICTS and PKG field dependencies are remapped (from Dongxiao Xu)
* Ensure PN and MLPREFIX are set at the same time to ensure consistent BPN values (Yu Ke)
(From OE-Core rev: 5d9453049915db48ec4b5972e12287417ebb61a2)
Signed-off-by: Yu Ke <ke.yu@intel.com>
Signed-off-by: Xu Dongxiao <dongxiao.xu@intel.com>
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The base gcc package is missing liblto_plugin.so. If we try a simple
hello world compile we get something like:
root@p5020-ds:~# gcc hello.c
gcc: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found
compilation terminated.
We need to include liblto_plugin.so in the base gcc package and not
gcc-dev.
(From OE-Core rev: 282326a188467edf6caef21b07a7e51288674245)
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the library is installed without execute permission then package.bbclass
will not consider it for stripping. This is particularly unfortunate because
there seems to be a bug somewhere else which is causing all DSOs to end up with
a NEEDED dependency on libgcc_s, even if they don't actually require it, and
hence it is getting installed in all images (for uclibc on i586 at least).
(From OE-Core rev: b3724a67ad70f509181555e6be98e1eb3b184bb7)
Signed-off-by: Phil Blundell <philb@gnu.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add fix for PR45886 as proposed in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45886
(From OE-Core rev: d639fad9ce510e0a1c64c66bbda48b4a2436327b)
Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add fix for PR45052 as proposed in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45052
(From OE-Core rev: 296b2e7d90f11dc50d8c2e90bd2062733fd3d47c)
Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add fix for PR45094 as proposed in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45094
(From OE-Core rev: 2f1f920415dcf7f899d173352bf8924714352158)
Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add fix for PR44606 as proposed in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44606
(From OE-Core rev: 5ec03dc1f80e437d5660aa3e0c7db9b561603d49)
Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add fix for PR44290 as proposed in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44290
(From OE-Core rev: 94311ba57cd95b6b163d162587c6318da8c3b16a)
Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add fix for PR43810 as proposed in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810
Building on powerpc-eabi* with --enable-target-optspace
still fails for me though.
(From OE-Core rev: 7dc3865dd88cec50e4fb0660ea678736ec0eb46c)
Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The e500v2 core utilizes a unique floating point programming model / ABI.
We utilize TARGET_FPU = "ppc-efd" to distinguish this choice (Embedded
scalar single-precision floating-point). When building the toolchain for
this ABI we need configure gcc with --enable-e500_double.
(From OE-Core rev: 5136c4ad6279c1593301f6dde9b959ad26a2fd0f)
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This fixes:
| rm: cannot remove `/OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-4.5-r39.1+svnr175127/image/usr/libexec/gcc/arm-angstrom-linux-gnueabi/4.5.4/*.la': No such file or directory
| ERROR: Function 'do_install' failed (see /OE/tentacle/build/tmp-angstrom_2010_x-eglibc/work/armv7a-angstrom-linux-gnueabi/gcc-4.5-r39.1+svnr175127/temp/log.do_install.19514 for further information)
NOTE: package gcc-4.5-r39.1+svnr175127: task do_install: Failed
(From OE-Core rev: 4db073061bdd1d3361ff90d309049a1621f06704)
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Set SRCREV to match the point at which 4.6.1 was released, update PV appropriately.
(From OE-Core rev: d575031f3bcd7acbc7dae25f17a60f0d493643fb)
Signed-off-by: Phil Blundell <philb@gnu.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #1233]
This fix directly packages the contents in and adds the lib*.so
correctly to the -dev package.
(From OE-Core rev: d3c5f93714165e5c089ce80194f2be07e31d920c)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc recipes has changed, currently ${PV} is 4.6 and ${BINV} is 4.6.1 version.
Fix these QA warnings.
WARNING: For recipe gcc-runtime, the following files were installed but not shipped in any package:
WARNING: /usr/share/gcc-4.6.1/python/libstdcxx/__init__.py
WARNING: /usr/share/gcc-4.6.1/python/libstdcxx/v6/__init__.py
WARNING: /usr/share/gcc-4.6.1/python/libstdcxx/v6/printers.py
(From OE-Core rev: e29a8601c7b028696527c70aa0d4862157ce2d81)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, we stash libgcc if PN is gcc-cross or gcc-crosssdk. This patch
changes it to work for *gcc-cross and *-gcc-crosssdk which means it
will patch for multilib extended toolchains.
(From OE-Core rev: a39cbed2ec887fb83335ba93e92d971c84a0f4d8)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This avoids a QA error.
(From OE-Core rev: 6d284d656e129be526e272f61405d1b004fe0ec9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The changes in commit 553a92c442bc3a35d1520a22e640a3a0e377b8f7 were not applying correctly
due to the error: "find: paths must precede expression"
This patch corrects the find syntax.
[YOCTO #1199]
(From OE-Core rev: b8d72e3af93ff9e2808fef4fe7b9d00b68bf9715)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
But ensure that gcc-cross-intermediate always uses ld.bfd since
(e)glibc won't build with gold.
(From OE-Core rev: 207a9013670560d62c793a66f01e19f4760a71a8)
Signed-off-by: Phil Blundell <philb@gnu.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Fix configure and Makefile to read the defaults.h and t-oe from ${B},
so that the ${S} can be shared.
* Change ${S} to the shared source directory.
(From OE-Core rev: c1ec5100da76d35afb91de7353599564e5b653dc)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix configure and Makefile to read the defaults.h and t-oe from ${B},
so that the ${S} can be shared.
(From OE-Core rev: d8c6f6e01421455db30eeb4b0882720874dcb31b)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patched is derived from Richard, make gcc use the shared source
directory during the different building:
1) Make gcc-cross, gcc-cross-initial, gcc-cross-intermediate and
gcc-runtime share the same source directory.
2) The source directory is ${TMPDIR}/work-shared/gcc-${PV}, for example:
tmp/work-shared/gcc-4.5.1
3) Fix do_clean to clean the shared source directory and stamps
4) gcc uses sed and creates config files against ${S} which means the
directory should not be shared. Change the way to make it work:
* The configure option --with-headers=${STAGING_DIR_TARGET}${SYSTEMHEADERS}
can replace the sed command, see the code in configure:
if test "x$with_headers" != x; then
glibc_header_dir=$with_headers
This has the same effect as the sed command:
sed -i 's:^\([ ]*\)glibc_header_dir=\"${with_build_sysroot}/usr/include\": ...
so add the --with-headers=${STAGING_DIR_TARGET}${SYSTEMHEADERS} to
gcc-configure-cross.inc( not add to gcc-configure-common.inc, since
not all the gcc building need this, the one which has its own do_configure
doesn't need it).
* Move t-oe from ${T} to ${B}/gcc, so that the patched Makefile.in
can read it easily, please see the commit for gcc-4.5.1 and
gcc-4.6.0.
* Use the defaults.h in ${B}/gcc instead of ${S}/gcc, and the patched
configure.ac(configure) can read it correctly, please see the
commit for gcc-4.5.1 and gcc-4.6.0.
* The gcc-crosssdk.inc used sed to edit ${S}/config/*/linux*.h
to change the GLIBC_DYNAMIC_LINKER, which made the source
incompatible. To make the source compatible:
- Use:
sed -i ${S}/gcc/config/*/linux*.h -e \
's#\(GLIBC_DYNAMIC_LINKER[^ ]*\)\( *"/lib.*\)#\1 SYSTEMLIBS_DIR\2#'
so entries in the files that look like:
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
would become
#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"
and we define SYSTEMLIBS_DIR in defaults.h.
NOTE:
#define GLIBC_DYNAMIC_LINKER64 (SYSTEMLIBS_DIR "/ld-linux-x86-64.so.2")
doesn't work in in the following define:
#define LINUX_DYNAMIC_LINKER \
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
so use
#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR"/ld-linux-x86-64.so.2"
5) Add do_configure_prepend to gcc-configure-common.inc and remove the
one in gcc-crosssdk.inc, this makes it easy to share the source,
otherwise we need do extra changes in gcc-configure-sdk.inc.
6) Use "cat > file <_EOF" to replace the "echo > file"
(From OE-Core rev: 934d38530c9a67562e53d4034aee5531f0f26750)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The versioned gcc binary gets installed and the needed binutils symlinks are made.
To make it fully work again the following is needed in kernel recipes/classes:
PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.gcc-cross-kernel:"
(From OE-Core rev: 3f0ee65462acf199b69ed18897ca65755907340e)
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Most of the files that end up in the gcc include dir and other
misc files scattered throughout the install get the build users
uid and gid.
(From OE-Core rev: db99a65b3e93dfacc27ea821c788f15b5de3a497)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
I've added more licenses from SPDX and corrected the gcc license
so that it is a. parsable and b. accurate to the SPDX standard.
I've also done some cleanup of license text and gdb's LICENSE
field.
(From OE-Core rev: e47343d12ee571281238bbf5663b074c0e32049f)
Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This brings in new patches from 4.6 release branch
updates the comment section of existing branch to not
contain patch numbers.
Tested build on qemu for arm ppc mips x86 and x86_64
(From OE-Core rev: 3968f33b6542cf20cf63cf49bfbc033bd2486295)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This reverts commit c553b3934f45db8a6e77cfc7673787db3cc64f85.
This change clearly breaks builds since subsequent patches
depend on changes this patch removes. Not sure what's going
on here but this change isn't correct.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
.. since this is where collect2 seems to look for them. This seems like
it is really a bug in collect2, but installing the symlinks is an easy
workaround. Without this you get "could not find ld" errors when using -flto.
(From OE-Core rev: d69561d80a995a52f3c7abfdbfd183fc7846046d)
Signed-off-by: Phil Blundell <philb@gnu.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #1130]
This patch brings in a patch from gcc for the following issue:
http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01477.html
(From OE-Core rev: 347c30801b6f935a6aefa5578d723a8afcf52790)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
python: update upstream-status for patches
binutils: update upstream-status for patches
gcc 4.5.1 4.6.0: update upstream-status for patches
autoconf: update upstream-status for patches
automake: update upstream-status for patches
bison: update upstream-status for patches
distcc: update upstream-status of patches
fstests: update upstream-status for patches
gdb: update upstream-status of patches
intltool: update upstream-status of patches
libtool: update upstream status of patches
linux-libc-headers: update upstream-status for patches
make: update upstream-status for patches
perl: update upstream-status for patches
python-pycurl: update upstream-status for patches
python-pygobject: update upstream status for patches
python-pyrex: update upstream-status for patches
quilt: update upstream-status of patches
tcl: update upstream-status for patches
gnu-config: update upstream-status for patches
gmp: update upstream-status for patches
(From OE-Core rev: a62fa9b213b09bf48c48499d2e3c66a9ee306deb)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The liblto_plugin.so file is not packages for the target recipe causing this
gcc failure on the target.
gcc: fatal error: -fuse-linker-plugin, but liblto_plugin.so not found
(From OE-Core rev: a121494f9bdebb940e3f2f121040988be6dca592)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When TARGET_PREFIX and TARGET_SYS didn't match up, the symlinks we made
were invalid. TARGET_PREFIX is what we use when configuring so it's what we
should be using here.
This is 05143e9b5d0a42e32ee0dd3c7fde482ff8d63f63 from OE.
(From OE-Core rev: c0d6ba1ead3e68509718bea09d0b4d5a49a5f73e)
Signed-off-by: Tom Rini <tom_rini@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is set of bugfixes that has been done on
FSF gcc-4_2-branch since 4.6.0 was released
They will roll into 4.6.1 release once that
happens in coming approx 6 months time then
we can simply remove them thats the reason
so use a separate .inc file to define the
SRC_URI additions
(From OE-Core rev: b0d5b9f12adbce2c4a0df6059f5671188cd32293)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is initial set of patches for testing them out
The patches need documentation is pending
Some patches especially uclibc related are not
needed they must be dropped.
(From OE-Core rev: 26858099bc104efc3b3d15d9298018285c551b9a)
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>
Add "--enable-clocale=gun" option for gcc configuration explicitly for LSB distro
in order to make sure C++ library can use correct locale module.
Fixes [YOCTO #796]
(From OE-Core rev: 8fc7b1e8881872535379d99a8ff940249632b5f7)
Signed-off-by: Jingdong Lu <jingdong.lu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is already taken care by bitbake.conf
(From OE-Core rev: 59d0aed3615ce08203139137d70d38ea8b9fe9d9)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch is a quick proof of concept to show how source code could
be shared between recipes which use ${B} to have a separate build
directory compared to source directory ${S}.
Issues:
a) gcc uses sed and creates config files against ${S} which means
the directory should not be shared. Need to change the way that works.
b) Could be extended to cover eglibc except there is a patch applied
against nativesdk versions which again makes the source incompatible.
c) Need to clean up the layout in work-shared and make a directory level deeper
to ensure patch separation.
d) clean task does not remove stamps
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
GCC 4.5 ends up in an ICE when compiling libstdc++ pre compiled header
so we eliminate -feliminate-dwarf2-dups for gcc-runtime
(From OE-Core rev: e0eeb10144db74c0671acd684059e8a6f82a572f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In order to debug certain C++ items, you need the helper python
components. These components should live in the -dbg package, ensure
they are added to the recipe.
(From OE-Core rev: 285fbd8a206eee061e27f37430499fcbe1e7284d)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #815] Added --sysroot into COLLECT_GCC_OPTIONS to allow the
collect2 support user specifed sysroot.
(From OE-Core rev: 868f8d3dd04e3c6dbbce154742cf877fda460a3e)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The gcc-runtime package will now create the proper dbg package. The
RRECOMMENDS change is required to deal with the default. This is
documented in bug 824.
(From OE-Core rev: 724137e50762f190438e8e87d3f0f9edd99ea11d)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #795]
When we run library check of LSB on qemux86 and qemuppc, we got some failures
about 'libstdc++.so.6'.
Test environment:
Platform: Qemu-x86, Qemu-ppc
lsb image: poky-image-lsb-qemux86-test.ext3(Feb 26th, auto-build server)
Library check of LSB: 4.1.0-1
The error log:
Did not find _ZNKSt5ctypeIcE8do_widenEPKcS2_Pc (GLIBCXX_3.4) in libstdc++.so.6
Unmangled symbol name: std::ctype<char>::do_widen(char const*, char const*,
char*) const
...
found that some weak symbols ('W') change into local ('t') during link time
and be stripped. According to compiling log, the option
"-fvisibility-inlines-hidden" is used for gcc. And this option caused some weak
symbols change into local.
see http://bugzilla.pokylinux.org/show_bug.cgi?id=795 for more information on the bug.
(From OE-Core rev: 4bb281ef5f12096d0889ba8efcc3fd3bb0ed3b3c)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Jingdong Lu <jingdong.lu@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
libgcc can link against the libc and libc can be dynamically renamed
so we ensure we package after libc. There was code in the gcc core
for this in the ipk case but it wasn't moved as part of the libgcc
split, this change fixes that oversight.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Original we used absolute path in sysroot-destdir for both native and
target recipes. This commit changes target recipes to use relative path
which is same as the image directory.
[sgw: merged with libtool sysroot work]
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
This patch changes gcc's (ld's) linking behavior. It passes
--no-add-needed flag to ld. Because of it ld does not try to find
related libraries for linking, causing link failures. And these
link failures can be fixed by specifying the library to be linked
explicitely on the gcc command line.
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Currently gcc-runtime installs the files, but actually gcc-runtime's
do_configure checks if the files are available, so before we build gcc-runtime,
we should have some recipe install the files first! -- currently
gcc-cross-intermediate actually does that(gcc-cross also installs the files,
but it installs into the gcc-build-internal* directory), but
gcc-cross-intermediate will have its own sysroot in future, after that,
gcc-runtime won't build. So let us add this new target recipe and move the
installation of the files from gcc-runtime into it.
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
So far c++ include path is not relative to "--sysroot", which brings
trouble if we want to use the toolchain in a new environment where
the original build directory generating that toolchain is not
available. It's firstly exposed in multiple SDK sysroots support, and
then in the case when sstate packages are used, where c++ standard
headers are missing because gcc tries to search original build dir.
This patch makes c++ include path now relative to "--sysroot", and
then once "--sysroot" is assigned correctly in new environment, c++
include paths can be searched as expected.
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
Using TRANSLATED_TARGET_ARCH instead of TARGET_ARCH for
cross-canadian packages. This is due to the TARGET_ARCH of x86_64
would results incorrect packaging in cross-canadian packages.
The pacakge name appendix of x86_64 target in cross-canadian
packages is x86-64.
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
This commit fixes Bug #528.
1. Added the target arch name to the pkg name of gcc-cross-canadian,
gdb-cross-candian and bintuils-cross-candian.
2. Move the cross-canadian pkgs out of task-sdk-host into a new task
task-cross-canadian.
3. Added the RDEPENDS of task-cross-canadian into meta-toolchain.
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Add COPYING COPYING3 COPYING.LIB COPYING3.LIB COPYING.RUNTIME files checksum to bb file and add the "GCC RUNTIME LIBRARY EXCEPTION"
"GPLv3" "GPLv2" "LGPLv2" "LGPLv3" information according to the COPYING file
Signed-off-by: Mei Lei <lei.mei@intel.com>
Removed these patches which are not needed anymore.
gcc-4.5.0_to_svn_162697.patch.bz2 : All the commits in this patch is
part of the 4.5.1 branch. So moving to 4.5.1 makes this patch
obsolete
gcc_revert_base_version_to_4.5.0.patch: moving to 4.5.1 removes need
of this patch
gcc-pr43698-arm-rev-instr.patch: upstream has this fix.
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
[BUGID #374]
The poison directory patch that was included with gcc-4.5.0 was not previously
enabled due to the lack of the configure file changes.
The patch has been updated to include the configure fragment. It was also noted
that this patch preformed nearly the same functions as the
zecke-no-host-includes patch, but with slightly different directories.
The directories scanned were added from the zecke-no-host-includes patch to
the new gcc-poison-dir-extend.patch.
The other difference with the zecke patch is that poisoned headers is no longer
an immediate fatal error. There may be instances where someone wants to do
this.
Adding -Werror=poison-system-directories to the CFLAGS would restore the
behavior.
Also fix a small problem where --help=warnings on gcc wouldn't return the
poison-system-directories as a valid option, even though it was.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
gcc uses hardcoded path "${with-build-sysroot}/usr/include" to check target
libc ssp support. Based on GLIBC version strings in features.h in that search
path, gcc knows whether target (e)glibc implements stack protector itself.
However this breaks meta-toolchain, which actually has target libc headers
installed under {with-build-sysroot}/opt/... This way features.h is not found
and thus gcc-crosssdk-intermediate thinks that target (e)glibc doesn't support ssp.
Later when building eglibc-nativesdk, undefined reference to "__stack_chk_guard"
occurs which was caused by:
o eglibc do_configure found that gcc-crosssdk-intermediate supports ssp,
and thus enable -fstack-protector for nscd
o eglibc itself supports stack smash proctection for some architectures such
as i386, x86-64, etc. It's expected to use its own method to provide stack
protection, instead of relying on gcc. So eglibc rtld.os doesn't export
__stack_chk_guard to other modules
o then when installing nscd objects, gcc-crosssdk-intermediate sees the
flag "-fstack-protector", while it thought this eglibc doesn't implement
ssp itself, so gcc turns to the alternative to find a valid
__stack_chk_guard exported. eglibc doesn'g export it, while
gcc-crosssdk-intermediate itself disables libssp.
Then the undefined reference happens. If enabling libssp for gcc-crosssdk-
intermediate, it may also work-around this issue. But the ideal fix is still
to replace hard coded path with the actual one where target libc gets installed.
glibc-nativesdk doesn't encounter this issue because it thinks gcc doesn't
support ssp, and thus doesn't enable "-fstack-protector" for nscd. Don't know
the reason yet
This fix [BUGID #366]
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Kevin Tian <kevin.tian@intel.com>
If not configured with --enable-target-optspace, gcc will report
errors if there is '-Os' optimization in parameters.
This fixes [BUGID #342]
Also add "--enable-target-optspace" option to arm gcc configuration.
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Fix the out of memory when building webkit-gtk with gcc-4.5.0
The new feature added after 4.3.3
"http://www.pubbs.net/200909/gcc/94048-patch-add-support-for-rmipsjalr.html"
will cause cc1plus eat up all the system memory when build webkit-gtk.
The function mips_get_pic_call_symbol keeps on recursively calling itself.
Disable this feature to walk aside the bug.
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Fix one parameter order issue for base_contains function,
which impacts glibc build under new gcc.
Add new judge code to determine whether <altivec.h> is needed.
This fixes the mpeg2dec build failure under new gcc.
Use O2 as the optimization flag to tinylogin as it will meet
segfault if compiled by gcc-4.5.0 when enable both frename-registers
and Os options. Use O2 instead.
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Having one monolithic packages directory makes it hard to find things
and is generally overwhelming. This commit splits it into several
logical sections roughly based on function, recipes.txt gives more
information about the classifications used.
The opportunity is also used to switch from "packages" to "recipes"
as used in OpenEmbedded as the term "packages" can be confusing to
people and has many different meanings.
Not all recipes have been classified yet, this is just a first pass
at separating things out. Some packages are moved to meta-extras as
they're no longer actively used or maintained.
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>