Commit Graph

291 Commits

Author SHA1 Message Date
Lianhao Lu 74ee8de04b libgcc: corrected -nativesdk package namings.
1. Corrected the -nativesdk package namings.

2. Fixed package QA warnings:
WARNING: QA Issue: non -staticdev package contains static .a library:
libgcc-nativesdk-dev path
'/work/x86_64-nativesdk-pokysdk-linux/libgcc-nativesdk-4.6.3+svnr184847-r23/packages-split/libgcc-nativesdk-dev/opt/poky/1.1+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/x86_64-pokysdk-linux/4.6.4/libgcc.a'
WARNING: QA Issue: non -staticdev package contains static .a library:
libgcc-nativesdk-dev path
'/work/x86_64-nativesdk-pokysdk-linux/libgcc-nativesdk-4.6.3+svnr184847-r23/packages-split/libgcc-nativesdk-dev/opt/poky/1.1+snapshot/sysroots/x86_64-pokysdk-linux/usr/lib/x86_64-pokysdk-linux/4.6.4/libgcc_eh.a'

(From OE-Core rev: aff0373d8bfb7e9ea600fcc558433387818c520a)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-23 12:13:07 +00:00
Richard Purdie cb771ef55a Revert "gcc-cross: aviod creating invalid symlinks"
This reverts commit 7893e74311e53882d8f93ecb95a6bd9f5b14651e since it breaks
the builds.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-14 15:23:46 +00:00
Robert Yang d6426b63a3 gcc-cross: aviod creating invalid symlinks
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>
2012-03-14 13:17:41 +00:00
Khem Raj 8ed044e499 gcc: Upgrade to 4.6.3 release
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>
2012-03-08 11:55:36 -08:00
Richard Purdie b1aeaa8b0d meta: Replace bb.data.expand(xxx, d) -> d.expand(xxx)
sed \
 -e 's:bb.data.\(expand([^,()]*\), *\([^) ]*\) *):\2.\1):g' \
 -i `grep -ril bb.data.expand *`

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-05 10:23:53 -08:00
Richard Purdie 06f2f8ce0a meta: Convert getVar/getVarFlag(xxx, 1) -> (xxx, True)
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>
2012-03-05 10:22:56 -08:00
Khem Raj d3b88ec632 gcc-cross.inc: Fix cross testing scripts to work with dash
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>
2012-03-04 05:41:10 -08:00
Richard Purdie 36e918b8a8 Quoting fixes
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>
2012-02-26 12:52:12 +00:00
Lianhao Lu ab5eed4af1 gcc: Excluding the DATE/SRCDATE from do_patch dependency.
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>
2012-02-21 17:59:36 +00:00
Lianhao Lu a2a03ba68b gcc: Ensure same sstate hashes for shared soruce directory
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>
2012-02-10 14:38:46 +00:00
Richard Purdie c62296dab6 gcc-4.6: Some small performance tweaks
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>
2012-02-10 14:38:45 +00:00
Khem Raj 54fd9ad71b gcc-cross-testing: Fix evaluation of user and target name
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>
2012-02-08 00:50:29 +00:00
Saul Wold 22181a759d gcc-runtime: fix override from poky-lsb to linuxstdbase
(From OE-Core rev: 1f5de4b36ad5853e489e47078c830f12a1c71ce9)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-01 15:07:44 +00:00
Saul Wold f54a443aa7 libgcc: Add INSANE_SKIP of staticdev for libgcc-dev and libgcov-dev
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>
2012-01-26 20:48:02 +00:00
Richard Purdie 0287f645f1 gcc-cross: Don't reference machine specific variables
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>
2012-01-25 14:30:57 +00:00
Richard Purdie 6b2cb82802 gcc-common.inc: Fix comment
(From OE-Core rev: a4a98b6d6273d4e716afbff0880d0ac2ff7be0a9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-24 14:38:39 +00:00
Richard Purdie ef3c1dd356 gcc-common.inc: Ensure WORKDIR doesn't adversly affect sstate checksums
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>
2012-01-24 12:19:01 +00:00
Saul Wold eccece9553 gcc: move shared .a to their own package
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>
2012-01-24 11:54:21 +00:00
Saul Wold 307fcba065 libgcc: Seperate out libgcov.a from libgcc-dev
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>
2012-01-24 11:54:21 +00:00
Richard Purdie c47def3b04 gcc_4.6.bb: Drop duplicated SRC_URI component
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>
2012-01-24 10:20:09 +00:00
Richard Purdie 4ad01bdf3f gcc-package-cross.inc: Mark do_package* tasks as noexec
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>
2012-01-23 09:01:39 +00:00
Richard Purdie 280e5fd212 gcc: Ensure that the shared source directory shared the same sstate hashes
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>
2012-01-23 09:01:38 +00:00
Nitin A Kamble f99917dd72 gcc: mark upstream status for all patches
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>
2012-01-03 12:14:33 +00:00
Khem Raj af9c75c8f5 gcc-4.6: Let G++ relocate gxx-include-dir when using --sysroot option
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>
2011-12-19 09:29:18 +00:00
Khem Raj 2480cc6a16 gcc-cross: Add cross testing driver for running regression testsuites
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>
2011-12-19 09:29:17 +00:00
Dmitry Eremin-Solenikov db38fb3762 libgcc: reintroduce debug package, containing symbols
(From OE-Core rev: 1c97310f76999dc68de0958485d3edb75398854d)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-12-16 16:19:28 +00:00
Khem Raj 7e0c29c70d cross-recipes: Disable nls in gettext bbclass
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>
2011-12-15 14:36:23 +00:00
Khem Raj bf6be18e9f gcc: Backport patch from trunk to fix ICE seen on armv7 with mesa-xlib
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>
2011-12-06 14:38:43 +00:00
Julian Pidancet a4b7188efd Fix multiarch DISTRO_FEATURE
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>
2011-11-30 23:36:08 +00:00
Julian Pidancet 7edf5cff9c Introduce multiarch DISTRO_FEATURE
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>
2011-11-29 11:22:06 +00:00
Dexuan Cui 1cfd618493 gcc-package-target.inc: add the symbol link /lib/cpp
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>
2011-11-24 23:33:35 +00:00
Khem Raj 7022a8f804 gcc-4.6: Fix gcc ICE on qt4-x11-free/armv7-a
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>
2011-11-21 16:55:12 +00:00
Michael Brown 36747532e7 gcc-4.6: fix toolchain build for SH4
(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>
2011-11-16 17:32:45 +00:00
Richard Purdie c8dee9b92d Convert to use direct access to the data store (instead of bb.data.*Var*())
This is the result of running the following over the metadata:

sed \
-e 's:bb.data.\(setVar([^,()]*,[^,()]*\), *\([^ )]*\) *):\2.\1):g' \
-e 's:bb.data.\(setVarFlag([^,()]*,[^,()]*,[^,()]*\), *\([^) ]*\) *):\2.\1):g' \
-e 's:bb.data.\(getVar([^,()]*\), *\([^(), ]*\) *,\([^)]*\)):\2.\1,\3):g' \
-e 's:bb.data.\(getVarFlag([^,()]*,[^,()]*\), *\([^(), ]*\) *,\([^)]*\)):\2.\1,\3):g' \
-e 's:bb.data.\(getVarFlag([^,()]*,[^,()]*\), *\([^() ]*\) *):\2.\1):g' \
-e 's:bb.data.\(getVar([^,()]*\), *\([^) ]*\) *):\2.\1):g' \
-i `grep -ril bb.data *`

(From OE-Core rev: b22831fd63164c4db9c0b72934d7d734a6585251)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-10 11:51:19 +00:00
Khem Raj 74d1c5e4ad gcc-4.6: Backport fix for PR32219
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/PR32219
http://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>
2011-10-24 17:27:17 +01:00
Khem Raj 53f7342562 gcc-configure-sdk: Point sysroot to correct location
(From OE-Core rev: c9883733fed9267b1a936c08500a4caf8dc52d3d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-10-24 17:27:13 +01:00
Khem Raj 180caee1e2 gcc-4.6: Backport PR46934 fix
We have been hitting this issue on ARM/thumb and
have a workaround in place to compile samba
http://git.openembedded.org/openembedded/commit/recipes/samba/samba_3.2.15.bb?id=4ba7aa07c0dcd28f94515ff9927e2a04403fcf15
This backport should fix the gcc bug

(From OE-Core rev: 75f7269a7a1da2494768d4be63c44b12c5cfeeeb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-10-20 17:13:36 +01:00
Khem Raj 6a85e28e95 gcc-4.6: Upgrade SRCREV to latest FSF 4.6 branch
(From OE-Core rev: b1af6951e14d645fe861f289011c91ab6f1b6865)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-10-20 17:13:35 +01:00
Richard Purdie d2b4818c5c gcc: Drop old version 4.5.1
(From OE-Core rev: 59443380286010eda07f1434e918a3af8c8a31a9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-10-12 14:12:09 +01:00
Richard Purdie add6cf80b9 gcc/binutils: Disable NLS/gettext dependencies
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>
2011-10-10 10:00:07 +01:00
Khem Raj 11d435684b gcc-4.6: Update to tip of FSF gcc-4_6-branch
(From OE-Core rev: ed7deecb9503420fbf8071445e077c32beda8dc4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-28 21:44:51 +01:00
Khem Raj 46ad3b0e2c gcc-4.6: Use --with-linker-hash-style configure option
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>
2011-09-28 14:58:51 +01:00
Richard Purdie 2829e21efc gcc: Fix two QA issues
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>
2011-09-28 14:58:49 +01:00
lumag fd3a960ec1 gcc: include libgcov.a into libgcc-dev package
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>
2011-09-28 14:58:48 +01:00
Dmitry Eremin-Solenikov 9948a81b39 gcc: fix possible problems with nscd compilation during eglibc-nativesdk build
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>
2011-09-28 14:58:48 +01:00
Dmitry Eremin-Solenikov cac6eb9c11 gcc: include plugin-related headers into packaged SDK
Include headers necessary to compile gcc plugins into cross-canadian gcc
packages.

(From OE-Core rev: d12aa92b3dac1109d510e7b6f74055d1ab927817)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-22 08:49:10 +01:00
Saul Wold 0efd5b3d11 gcc: add patch for ice 50099, which caused lttng-ust not to build
[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>
2011-09-07 22:54:17 +01:00
Richard Purdie c04ae9bf71 gcc: Fix multilib baselib confusion
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>
2011-09-02 18:25:11 +01:00
Kumar Gala 5d463057b4 gcc-4.5.1: Drop gcc-poison-parameters.patch, replace with bug fix patch
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>
2011-08-29 13:47:59 +01:00
Kumar Gala 36cda02715 gcc-4.6: Drop gcc-poison-parameters.patch as its not need
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>
2011-08-29 13:47:59 +01:00
Robert Yang b6bd7133c2 bitbake meta-toolchain with gcc 4.5.1 failed
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>
2011-08-23 18:23:33 -07:00
Khem Raj a0dc330b4a recipes: Delete patch=1, its default and replace pnum with striplevel
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>
2011-08-23 18:23:30 -07:00
Richard Purdie 0427c2bd68 libgcc: Remove fetch/unpack/patch noexec stamps
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>
2011-08-19 15:26:04 -07:00
Richard Purdie 8f8facbed4 gcc: Various fixups to ensure consistent gcc builds
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>
2011-08-11 19:08:02 +01:00
Kumar Gala 35fa8dc5f7 gcc: use ${base_lib} to match gcc default configuration
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>
2011-08-08 13:41:19 +01:00
Kumar Gala 7d3c85eb5e gcc-4.6: Add support for the e5500 PowerPC core
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>
2011-08-05 17:16:01 +01:00
Kumar Gala be1f70d68b gcc: Fix setting of GLIBC_DYNAMIC_LINKER
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>
2011-08-03 17:46:47 +01:00
Richard Purdie 6c936b4b1a gcc: Drop part of the 64bithack patch which is no longer used
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>
2011-07-27 16:18:51 +01:00
Richard Purdie c18aa8d065 multilib: Add support for compiling recipes against multiple ABIs
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>
2011-07-27 16:18:40 +01:00
Kumar Gala d43437307d gcc-4.6: Fix packaging of native toolchains
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>
2011-07-25 12:54:34 +01:00
Phil Blundell bc48729ee2 libgcc: correct mode on libgcc_s.so.1 to ensure it gets stripped
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>
2011-07-20 15:32:57 +01:00
Ilya Yanok ef2c0ef14c gcc_4.5.1: add pr45886.patch
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>
2011-07-20 15:27:36 +01:00
Ilya Yanok eb83c44761 gcc_4.5.1: add pr45052.patch
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>
2011-07-20 15:27:36 +01:00
Ilya Yanok 30c9f6c933 gcc_4.5.1: add pr45094.patch
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>
2011-07-20 15:27:36 +01:00
Ilya Yanok b2e49a6b70 gcc_4.5.1: add pr44606.patch
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>
2011-07-20 15:27:35 +01:00
Ilya Yanok 44f59d24d9 gcc_4.5.1: add pr44290.patch
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>
2011-07-20 15:27:35 +01:00
Ilya Yanok 94a6e47402 gcc_4.5.1: add pr43810.patch
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>
2011-07-20 15:27:35 +01:00
Ilya Yanok aa18b3cc98 gcc_4.5.1: fix arm_bswapsi2.patch
Acoording to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44392
correct fix should be
TARGET_EITHER && (arm_arch6 || !optimize_size)
not
TARGET_EITHER && (arm_arch6 && !optimize_size)

(From OE-Core rev: 7306e0113a158418acc9cc13d2e82125cb772389)

Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-20 15:27:35 +01:00
Kumar Gala e10a1d6cd3 gcc: Add gcc configure for PowerPC e500v2/SPE embedded floating point ABI
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>
2011-07-20 15:27:34 +01:00
Koen Kooi 3c9206f97d gcc-package-target: don't fail if the .la files we try to delete are not there to start with
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>
2011-07-19 17:34:20 +01:00
Phil Blundell 51128384a7 gcc-4.6: update to 4.6.1 release
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>
2011-07-19 17:34:17 +01:00
Saul Wold 2429773613 gcc: Fix packaging correctly
[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>
2011-07-12 15:00:46 +01:00
Nitin A Kamble 860d8fdd27 gcc-runtime: fix installed but unpackaged files
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>
2011-07-08 16:39:10 +01:00
Richard Purdie 42242d6aee gcc: Fix unpackaged files warnings, broken symlink and superfluous files
(From OE-Core rev: 696f00b67217242f3a372d070c2473f8ced639ed)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-07 10:57:45 +01:00
Richard Purdie 463b38f605 gcc-package-cross: Switch to using pattern matching to detect when to stash libgcc into the sysroot
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>
2011-07-05 11:39:09 +01:00
Richard Purdie 2f22d86f4c gcc: Remove unneeded module .la file and .so link
This avoids a QA error.

(From OE-Core rev: 6d284d656e129be526e272f61405d1b004fe0ec9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-05 11:39:08 +01:00
Richard Purdie 21effd6640 gcc: Fix removal of libiberty.a
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>
2011-07-05 11:39:08 +01:00
Phil Blundell b78173f176 binutils: allow distro to select gold as default linker
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>
2011-06-30 22:42:04 +01:00
Robert Yang 64be701305 gcc-4.6: share work directories
* 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>
2011-06-30 20:56:34 +01:00
Robert Yang e4f43aa5df gcc-4.5.1: share work directories
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>
2011-06-30 20:56:34 +01:00
Robert Yang 3e08c1f078 Share gcc work directories
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>
2011-06-30 20:56:33 +01:00
Koen Kooi fb38001789 gcc-cross-kernel: update to match new toolchain sysroot layout
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>
2011-06-28 15:06:53 +01:00
Mark Hatle 1d640c9436 gcc: Fix file ownership
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>
2011-06-28 13:55:40 +01:00
Beth Flanagan 7cd2ac0e40 common-licenses: Additions and corrections
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>
2011-06-23 23:44:49 +01:00
Khem Raj 0faa5f7299 gcc-4.6: Switch to using svn SRC_URI for recipe
We call the recipes 4.6
Remove the backport patches

(From OE-Core rev: 68b545f4ff719f2b6e57d68b002dc9845c7a14ae)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-06-23 11:50:07 +01:00
Khem Raj ec9b6d061b gcc-4.6.0: Bring in patches from FSF 4.6 branch
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>
2011-06-14 15:29:15 +01:00
Richard Purdie b30cb584a7 Revert "gcc: rebase the patch to avoid patch rejection"
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>
2011-06-10 13:30:28 +01:00
Nitin A Kamble eb50e84798 gcc: rebase the patch to avoid patch rejection
(From OE-Core rev: c553b3934f45db8a6e77cfc7673787db3cc64f85)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-06-10 12:37:07 +01:00
Phil Blundell 1b817aa64a gcc-package-cross: also install the symlinks in libexec with target prefix
.. 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>
2011-06-06 15:58:40 +01:00
Saul Wold 83158a384f gcc: Fix volatile access issue for ARM
[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>
2011-06-02 14:55:55 +01:00
Richard Purdie ed93e02b57 gcc-cross-csl-2008q1: Drop last remaining fail-fast override use and make it unconditional
(From OE-Core rev: 8a5117d54057987b9bf470e5e0011800ca221a8c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-30 08:33:24 +01:00
Nitin A Kamble e080d8e18e gcc: remove unused patches and move patches in proper dir
gcc: update upstream-status for patches

python: update upstream-status for patches

libtool: update upstream-status of patches

m4: update upstream status for patches

eglibc: remove unused patches

eglibc: update upstream status of patches

glibc: update upstream-status of patches & remove unused patches

(From OE-Core rev: d10df0e5a363fe8b305ffac7e8ac231da8e07552)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-18 14:32:47 +01:00
Saul Wold 3fcdbf9fc1 gcc: Move 4.3.3 and Special kernel 3.4.4 to meta-extras
(From OE-Core rev: 44d2be0c0ba6440afa0706f703606154ae569d63)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-18 14:32:44 +01:00
Nitin A Kamble 42d2170f86 recipes: Update upstream-status of patches
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>
2011-05-13 11:02:19 +01:00
Nitin A Kamble 9233fdcee2 gcc 4.5.1 4.6.0: remove unused patches
(From OE-Core rev: 2b4975c536dace131d160798cf8fe45b86c03734)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-13 11:02:15 +01:00
Nitin A Kamble 021e792988 gcc: fix target gcc runtime issue
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>
2011-05-13 10:29:02 +01:00
Nitin A Kamble 2e4518bf18 recipes: Fix the Upstream-Status format
(From OE-Core rev: d7237140554ad076be12edf915d6d15206c9b8c7)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-11 17:14:26 +01:00
Tom Rini 6e884c3bd7 gcc-package-target: Switch to TARGET_PREFIX in symlinks
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>
2011-05-09 14:09:08 +01:00
Nitin A Kamble 73bb65d480 gcc-4.5.1: update upstream status of patches
(From OE-Core rev: 263293127306fb521efb7e195c7720ed238cf2cc)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-09 14:09:05 +01:00
Khem Raj 478deec11f gcc-4.6.0: Backport FSF 4.6 branch patches
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>
2011-05-05 12:26:41 +01:00
Khem Raj d42dccf886 gcc-4.6.0: Add missing recipes for gcc-cross-canadian and gcc-crosssdk
Reset PR in gcc-crosssdk-initial_4.6.0.bb and
gcc-crosssdk-intermediate_4.6.0.bb

(From OE-Core rev: 81859b136c0153e8d5be71d56e910dcc3e8cdb66)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-05-05 12:26:34 +01:00
Khem Raj 3669de7f96 gcc: Add recipes for 4.6.0
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>
2011-04-28 10:44:21 +01:00
Richard Purdie fc2cee5cc6 Rename poky-lsb override to linuxstdbase
(From OE-Core rev: 73a227a738da17229baac142ccd889c7929402ba)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-04-21 00:29:32 +01:00
Jingdong Lu 7b59ebe3c3 gcc: Add "--enable-clocale=gnu" option for LSB.
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>
2011-04-18 05:49:44 +01:00
Khem Raj 1413f2b008 gcc-runtime_4.5.1.bb: Do not filter out -feliminate-dwarf2-dups
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>
2011-04-04 14:09:44 +01:00
Khem Raj 3909b764b7 recipes: Use -uclibceabi instead of -uclibcgnueabi
(From OE-Core rev: 3aa429406184d27bdb8a771c4c12bde1dcccb95b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-04-04 14:09:33 +01:00
Richard Purdie e41671ea1d Revert "bitbake/gcc: Enable a shared common source tree"
This reverts commit 12b163dbd8 as it
was an unintended change for master
2011-03-29 00:34:11 +01:00
Richard Purdie 12b163dbd8 bitbake/gcc: Enable a shared common source tree
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>
2011-03-28 15:09:50 +01:00
Khem Raj b6b9f7ae63 gcc-runtime_4.5.1.bb: Fix ICE in gcc-runtime with -feliminate-dwarf2-dups
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>
2011-03-24 12:33:36 +00:00
Mark Hatle 84b877ba36 gcc-runtime: Fix dbg files
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>
2011-03-10 18:46:03 -08:00
Lianhao Lu 70cd64a9c6 gcc/collect2: Added --sysroot support into collect2 in gcc.
[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>
2011-03-10 18:14:26 -08:00
Mark Hatle 2c52b652bf gcc-runtime: Ensure that gcc-runtime builds a debug package
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>
2011-03-10 18:14:24 -08:00
Khem Raj 5a7466aeb2 gcc-configure-runtime.inc: Add immediate evaluation otherwise it ends in circular dependency
(From OE-Core rev: 547c62361b21d9cae281d58c54ec2d19a5e25306)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-03-10 18:14:21 -08:00
Nitin A Kamble cbbfbfc54f gcc-runtime: fix LSB library checks for libstdc++.so.6
[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>
2011-03-10 18:14:13 -08:00
Nitin A Kamble bc009ed6a4 gcc: take out libiberty files from gcc packages
this Fixes [BUGID #754]

(From OE-Core rev: 553a92c442bc3a35d1520a22e640a3a0e377b8f7)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-03-03 16:56:14 +00:00
Richard Purdie be92622339 Remove all comments from multiline expressions (as mentioned in bug #704)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-02-22 21:45:28 +00:00
Richard Purdie 96aeec41bc meta: Update mirror urls to new format and update yocto project urls
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-02-11 12:04:12 +00:00
Richard Purdie 21f2dae46b libgcc: Explicitly wait for the libc packaging to occur before libgcc packages
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>
2011-01-31 16:37:32 +00:00
Richard Purdie 82745e4f32 cross.bbclass: Move sysroot_stage_all function to the only place that uses it now (gcc-cross-intermediate)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-26 11:37:32 +00:00
Richard Purdie c0e1272d15 gcc/libc: Change bootstrap to use an intermediate sysroot and hence no longer overwrite files
Based upon patches from Dexuan Cui <dexuan.cui@intel.com>

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-01-25 12:25:45 +00:00
Dexuan Cui 23cb814b27 gcc-cross-intermediate, gcc-crosssdk-intermediate: change CROSS_TARGET_SYS_DIR and install into new locations
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2011-01-25 12:25:45 +00:00
Dexuan Cui 34729e4f82 gcc-cross-initial, gcc-crosssdk-initial: change CROSS_TARGET_SYS_DIR and insall into new locations
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2011-01-25 10:59:18 +00:00
Dongxiao Xu bc9d2fbfd4 staging: Use relative path in sysroot-destdir for target recipes
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>
2011-01-21 11:18:37 +00:00
Nitin A Kamble 95fc6ae164 gcc_4.5.1: add DSO linking change patch
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>
2011-01-20 21:37:02 +00:00
Dexuan Cui 0df3c48130 libgcc: use the new recipe (rather than gcc-runtime) to install libgcc_s.so* and crt*.o
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>
2011-01-17 22:04:50 +00:00
Kevin Tian f13cb20ed1 gcc-4.5.1: make c++ include path relative to "--sysroot"
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>
2011-01-02 01:25:40 -08:00
Nitin A Kamble d476a237ef gcc_4.5.1: Move the license related information in the right file
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-12-16 17:18:20 +00:00
Lianhao Lu 2021e2a74f Using TRANSLATED_TARGET_ARCH instead of TARGET_ARCH.
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>
2010-12-10 15:36:48 +00:00
Lianhao Lu 322d6ab299 cross-canadian: pkg name includes target arch
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>
2010-12-10 15:36:30 +00:00
Saul Wold 3d08b9f2c6 SRC_URI Checksums Additionals
Signed-off-by: Saul Wold <sgw@linux.intel.com>
2010-12-09 08:18:17 -08:00
Mei Lei 97f78fef28 gcc:Add license checksum and update the GPL information
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>
2010-12-02 05:24:46 -08:00
Nitin A Kamble b1dd356f5e gcc: upgrade from 4.5.0 to 4.5.1
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>
2010-11-18 13:30:25 -08:00
Richard Purdie fafb40364d gcc: Fix c++ search path for target system compiler making everything consistent
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-10-07 11:06:32 +01:00
Mark Hatle 23f522e7a5 gcc: Update poisoned include path checking
[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>
2010-10-01 16:30:43 +01:00
Kevin Tian 2a066e7ca9 gcc: fix check for target libc ssp support
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>
2010-09-30 10:18:00 -07:00
Dongxiao Xu ce456306da gcc: enable poison parameters detection
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>
2010-09-27 08:59:15 -07:00
Dongxiao Xu 460954b1b3 upgrade gcc to 4.5.0 for mips architecture
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>
2010-09-22 09:52:41 -07:00
Dongxiao Xu 0ff070bbf1 gcc: upgrade gcc for powerpc to version 4.5.0
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>
2010-09-17 11:41:58 -07:00
Nitin A Kamble cdbbc68d08 gcc_4.5.0: add --enable-poison-system-directories option to cross
recipes

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2010-09-08 16:36:52 -07:00
Richard Purdie d17a09376d gcc-crosssdk-initial: Ensure native dependencies are built, these can differ accross different gcc versions causing build failures
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-09-06 22:55:49 +01:00
Richard Purdie 29d6678fd5 Major layout change to the packages directory
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>
2010-08-27 15:29:45 +01:00