Commit graph

459 commits

Author SHA1 Message Date
Tom Zanussi
7217f9290d gcc: Add upstream fix for gcc bug 58595
Fix for internal compiler error hit when building lttng-tools_4.2.0:

 kernel-consumer.c:324:1: internal compiler error: in gen_movsi, at
   config/arm/arm.md:5539

(From OE-Core rev: ec1d5bdf4cc0a7a3e4747b42b7b95805752bea07)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-07 14:49:32 +00:00
Alexandru-Cezar Sardan
83b20f8508 gcc: Enable SPE & AltiVec generation on powepc*linux target.
[ADT bug #5761] -- https://bugzilla.yoctoproject.org/show_bug.cgi?id=5761

Also this patch adds symlinks to libgcc such that a GCC configured
by passing the target parameter without LIBCEXTENSION and ABIEXTENSION
specifiers to find the correct startup files from a libgcc configured
with these variables.

(From OE-Core rev: 97f2a81d6796ddaf7bbaab86c2ab9039673c732c)

Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-28 14:01:14 +00:00
Holger Hans Peter Freyther
5e6db9dc4d gcc: Include patch scheduled for GCC 4.8.3 to fix epilogue on ARM
GCC 4.8.0, 4.8.1 and 4.8.2 can generate broken epilogues for the
ABI used by the kernel. Apply the patch that is included for GCC
4.8.3 from http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854.

The issue was found on Yocto/Dora and the patch should be backported
to this branch. A kernel built with Dora's GCC 4.8.1 misbehaved on:

 while true;
 do
    (for i in `seq 1 100`;
        do
            echo "Log message... $RANDOM";
        done) | logger;
 done

busybox's syslogd would from time to read a huge negative value and
then exit, strace would get stuck waiting on a syscall. After this
patch it appears to work better.

(From OE-Core rev: 3004eb3b7ee5fd8dfe9c4e5749b4e125d0bd4b59)

Signed-off-by: Holger Hans Peter Freyther <holger@moiji-mobile.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-31 15:44:22 +00:00
Richard Purdie
eae54224ab gcc: Drop 4.7.2 version since 4.8 is stable now
We've had 4.8 around for a while now, I'm not aware of any issues with
it so we can drop the older 4.7 version.

(From OE-Core rev: 15685dccd37f7636bbdd56af04a9dbc9b7595612)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-02 12:50:26 +00:00
Paul Eggleton
9f8f4fd1f9 Basic recipe formatting fixes
Fix statement indenting and spacing issues that I happened to notice.

(From OE-Core rev: d11e297b007aba625b398c52952ec929c3b02b83)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-02 12:50:21 +00:00
Paul Eggleton
cec8b230cf Replace one-line DESCRIPTION with SUMMARY
A lot of our recipes had short one-line DESCRIPTION values and no
SUMMARY value set. In this case it's much better to just set SUMMARY
since DESCRIPTION is defaulted from SUMMARY anyway and then the SUMMARY
is at least useful. I also took the opportunity to fix up a lot of the
new SUMMARY values, making them concisely explain the function of the
recipe / package where possible.

(From OE-Core rev: b8feee3cf21f70ba4ec3b822d2f596d4fc02a292)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-02 12:50:18 +00:00
Richard Purdie
e5ee1b8c0d sstate: Convert to use ':' as a filename sperator and use SSTATE_SWSPEC globally
Currently the code has problems differentiating between "gcc-cross" and "gcc-cross-initial"
sstate files. We could add in a ton of special casing but tests show this isn't scaling
well. Using a more unique separator resolves the issue.

The choice of which separator to use is a hard one. We need something which isn't commonly
used in PN, PV, PR, *_OS and *_ARCH which rules out '-', '_' and it needs to work ok with
webservers/http which makes ';' and '%' harder.

The change also sets SSTATE_SWSPEC globally since writing out differently named siginfo
files for the fetch/unpack/patch tasks is a waste of diskspace, the hashes match for
all PN in the majority of cases and if they don't, its not a big issue as the hash is
different. This makes the results from sstate debugging more understandable.

(From OE-Core rev: 6f823a23c5f1d0ffa0a27db1c1bc1907de788505)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-20 12:26:31 +00:00
Richard Purdie
7935ae2e80 sstate/gcc: Fix shared workdir handling for siginfo files
For a shared workdir, any one of the fetch/unpack/patch tasks may run yet the
PN and architecture fields in SSTATE_PKGSPEC may differ. This makes looking up
the appropriate siginfo file near impossible.

I've tried several different ways of resolving this and this is the neatest
solution I could find, its still rather ugly. I believe the usefulness of
better sstate debugging outweighs the ugliness of the code.

This patch also changes the sstate_checkhashes() code to look for siginfo
files rather than the actual sstate packages themselves. This means the
function can be used in other contexts to find info files for tasks that
may not have sstate data. It is assumed that sstate mirrors will have both
files available. This is done to allow bitbake to query whether tasks have
matching signatures in sstate directories or not.

(From OE-Core rev: 068e4289b597699cbff2dfde44ba833af4535281)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-18 17:08:04 +00:00
Robert Yang
8a8a0c3a83 gcc-4.7/gcc: disable sdt from configure.ac to keep compatibility with configure
We had disabled the sdt from configure, let's also disable it from
confgure.ac to keep them compatible.

BTW, the libstdc++-v3 of gcc-4.7 doesn't use the sdt, so we don't need
to edit libstdc++-v3/configure as gcc-4.8.

NOTE, this commit edit the patch gcc-4.7/disablesdt.patch directly.

[YOCTO #5657]

(From OE-Core rev: 452c6afc3883b0304e06eb1764614348fb6599c8)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-18 11:21:28 +00:00
Robert Yang
fd0d15f0dc gcc-4.8/libstdc++-v3: disable sdt
We may meet such an error when building gcc/libstdc++-v3:

gcc-4.8.1/libstdc++-v3/libsupc++/unwind-cxx.h:41:21: fatal error:
sys/sdt.h: No such file or directory

We already have a patch to disable the sdt for gcc, we also need disable
it for libstdc++-v3.

BTW, we need edit both configure.ac and configure to make them keep
compatible.

NOTE, this commit edit the patch gcc-4.8/0031-Disable-sdt.patch directly.

[YOCTO #5657]

(From OE-Core rev: 32854af3cc6c0626620e827dc1915f61c51250b8)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-18 11:21:28 +00:00
Richard Purdie
1dcbf3096d gcc-crosssdk.inc: Fix missing dependencies (such as libmpc-native)
Without this sstate builds can fail with missing dependencies.

(From OE-Core rev: f92ebf78d94cb8f4010f8d444d1d0336c1fb1341)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-16 12:13:49 +00:00
Richard Purdie
5bde5d9b39 gcc: Allow fortran to build successfully in 4.8
gcc 4.8 fortran presents some challenges:

* libquadmath headers need to be in the libexec include dir. It turns out
  to be easiest just to manually do this.
* libgfortran configure needs libquadmath to be compiled. This means
  a separate recipe is needed (the alternative is gross hacks)
* the libtool uses to link libgfortran doesn't have our improved rpath
  handling and puts bogus RPATHS into the libraries. We can avoid this
  by tweaking libtool with sed.

This patch resolves those issues. Any user of fortran does need to DEPEND
on libgfortran in order to trigger it to build but this shouldn't be a major
issue.

(From OE-Core rev: a5e7ee5770b9e0cf719c573efffd874440f74289)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-05 14:24:43 +00:00
Richard Purdie
6ab56c54f3 classes/recipes: More optimal DISTRO_FEATURES references
Using the contains function results in more optimal sstate checksums
resulting in better cache reuse as we as more consistent code.

(From OE-Core rev: 9c93526756e7cbbff027c88eb972f877bcb1f057)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-05 14:24:43 +00:00
Richard Purdie
a6b55d9d83 gcc-cross-canadian: Fix fortran build
When fortran was enabled, builds were failing due to a extra files.
For now we can remove these and avoid the build failure.

(From OE-Core rev: 2e60ef7fe63974e443a9ddc25c5eb4249ec37963)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-12-02 11:28:27 +00:00
Richard Purdie
7b9f4b2cd0 base/gcc-common: Ensure umask setting is consistent for shared workdir
gcc has cross and target components with a shared workdir. The unpack umask
settings need to match for all of these. We need to use strings in each
case to ensure the sstate code matches them correctly.

This patch tweaks various things to ensure the change adding the unpack umask
change doesn't break the compiler builds.

(From OE-Core rev: 67162438ee9c402b23c32853af9d313949eb6e4a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-29 11:24:48 +00:00
Khem Raj
b4a0164418 gcc: Upgrade to 4.8.2
The details for bug fixes between 4.8.1 and 4.8.2 is here

http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.2

Remove the patches that were applied upstream

(From OE-Core rev: 3e5922a2ed250361e76ea616baba2f8d9332e20f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-22 12:03:01 +00:00
Lei Liu
e2ea549f10 gcc-common: Enable building multiarch mips gcc
MIPS gcc is not configured with multiarch enabled.  This causes
compiler generates local label with $ prefix, which is specified
in default o32 abi.  It is not recognized as local symbol by n64
assembler, so we get a lot of unexpected external symbols.  We
should configure MIPS gcc with --enable-targets=all, as for other
archs.

(From OE-Core rev: c210393b3e0c54606493e311d7c2040efebc4dcd)

Signed-off-by: Lei Liu <lei.liu2@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12 16:00:28 +00:00
Richard Purdie
bd1cf71974 cross-canadian: Handle powerpc linux verses linux-gnuspe
PowerPC toolchains can use the OS "linux" or "linux-gnuspe". This
patch links them together so the one cross-canadian toolchain can support
both.

GCC_FOR_TARGET is set for the GCC recipe as otherwise configure
can pick up an incorrect value.

[YOCTO #5354]

(From OE-Core rev: a1d6331238982b0c5d39b0a18794f6654b00d46a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-10-30 17:33:12 +00:00
Richard Purdie
1960f00684 gcc: Fix strange C++ repo issues
(From OE-Core rev: 9f6c4edf40963d1f3fb9f7e2d2b7a866aa1afe57)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-10-14 16:55:22 +01:00
Richard Purdie
20a86e16bc cross-canadian: Fix TUNE_PKGARCH references
The cross-canadian compilers are now build once per architecture but were being
installed into tune specific locations which is incorrect. This adjusts things
so they are make TARGET_ARCH specific. We gain the tune specific parts from the
target sysroot which remains tune specific, the compiler and tools are independent
ot that.

binutils/gcc require sysroot options but since we reset at runtime, these shouldn't
have dependencies in the sstate checksums. They are therefore also excluded.

With these patches, switching machines does not result in a rebuild of *-cross-canadian
and the compiler is correctly located and referenced in the target images.

(From OE-Core rev: f58acab6414fe96d9e07ebbe86b348d2ac2bed5f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-10-04 18:26:50 +01:00
Richard Purdie
f81f4c5f21 gcc-common: Improve fpu code checksum dependencies
We only care about the end result in this case, not the specific inputs
that went into determining the gcc option. This change updates the code
to reflect that.

(From OE-Core rev: 83055511dab1e2aeefe84262ebe52595848c844b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-10-04 18:26:50 +01:00
Richard Purdie
32edeb391f gcc/libtool/perl: Fix various path to sed-native problems
If sed-native is built before these programs, hardcoded paths to sed-native
can end up in scripts and other parts of the system which may cause issues
if they are later used from sstate and sed-native is not installed.

To avoid this, this patch changes the global site configuration to
specify that plain "sed" is fine to be used. We need to spell this
out for gcc since it doesn't see the site files since we don't autoreconf
it. We can remove the values from libtool. We tell perl to use "/bin/sed"
since it requires a path and the system sed should be just fine for it.

[YOCTO #4971]

(From OE-Core rev: 2ec171cb188601bf18c6c2895870907024b1c52a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-26 16:37:56 +01:00
Richard Purdie
87e86d4fd3 gcc-target: Fix libatomic dependency tracking issues
The --enable-dependency-tracking option was added to workaround build
issues in libatomic. This fixes that build problem properly and removes
the flag since the dependency tracking code appears to be full of races
which are much deeper and harder to fix.

As per the automake manual, dependency tracking is only useful and worth
the build performance cost if you are doing more than one compile of the same
source code which in most cases we are not so this is a good thing anyway.

(From OE-Core rev: a3b665a80abed4c0659925e1cceb1568af023711)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-22 12:19:43 +01:00
Martin Jansa
7a3d2fbcdf gcc-4.8: temporary disable thumb
* temporary work around for build issue on armv4t:
  | cp/decl.o: In function `bad_specifiers':
  | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7171:(.text.unlikely+0x24): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
  | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7173:(.text.unlikely+0x32): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
  | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7176:(.text.unlikely+0x3e): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
  | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7180:(.text.unlikely+0x4c): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
  | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7182:(.text.unlikely+0x5a): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
  | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7185:(.text.unlikely+0x66): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
  | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7189:(.text.unlikely+0x74): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
  | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7191:(.text.unlikely+0x82): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
  | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7194:(.text.unlikely+0x8e): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
  | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7198:(.text.unlikely+0x9c): relocation truncated to fit: R_ARM_THM_CALL against symbol `error(char const*, ...)' defined in .glue_7 section in linker stubs
  | gcc-4.8.0-r0/gcc-4.8.0/gcc/cp/decl.c:7200:(.text.unlikely+0xaa): additional relocation overflows omitted from the output
  | collect2: error: ld returned 1 exit status
  | make[2]: *** [cc1plus] Error 1

(From OE-Core rev: 148c7e990831ed708f7fb064ec8f05657a323850)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-22 12:19:32 +01:00
Richard Purdie
8ebe7be3d9 bitbake.conf/package: Collapse PKGDATA_DIR into a single machine specific directory
Currently we have a hierarchy of pkgdata directories and the code has to put together
a search path and look through each in turn until it finds the data it needs.

This has lead to a number of hardcoded paths and file globing which
is unpredictable and undesirable. Worse, certain tricks that should be
easy like a GL specific package architecture become problematic with the
curretn search paths.

With the modern sstate code, we can do better and construct a single pkgdata
directory for each machine in just the same way as we do for the sysroot. This
is already tried and well tested. With such a single directory, all the code that
iterated through multiple pkgdata directories and simply be removed and give
a significant simplification of the code. Even existing build directories adapt
to the change well since the package contents doesn't change, just the location
they're installed to and the stamp for them.

The only complication is the we need a different shlibs directory for each
multilib. These are only used by package.bbclass and the simple fix is to
add MLPREFIX to the shlib directory name. This means the multilib packages will
repackage and the sstate checksum will change but an existing build directory
will adapt to the changes safely.

It is close to release however I believe the benefits this patch give us
are worth consideration for inclusion and give us more options for dealing
with problems like the GL one. It also sets the ground work well for
shlibs improvements in 1.6.

(From OE-Core rev: 1b8e4abd2d9c0901d38d89d0f944fe1ffd019379)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:00 +01:00
Richard Purdie
95d413d03f gcc-runtime: Add packaging for libgfortran (and also tweak others)
Add packaging for libgfortran and libquadmath as well as tweak the packaging
for libmudflap since it was broken.

(From OE-Core rev: 8a726d14a345ef35c6d8d8e369bf3691cee879bf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:56 +01:00
Richard Purdie
554c892ccf meta: Don't use deprecated bitbake API
These have been deprecated for a long time, convert the remaining
references to the correct modules and prepare for removal of the
compatibility support from bitbake.

(From OE-Core rev: 6a39835af2b2b3c7797fe05479341d71a3f3aaf6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-01 15:51:42 +01:00
Chunrong Guo
03325fe9c5 gcc-4.8: fix ICE of cross-compile for PowerPC e500v2 targets
* http://gcc.gnu.org/bugzilla//show_bug.cgi?id=57717#c7

  * fix the segfault issue of dd on e500v2 targets
    Since double-float is disabled for e500v2 targets build due to ICE of gcc-4.8.1,
    accordingly %Ld format of sprintf is disabled.
    Address Bug 4910 - [p1022ds]urandom: segmentation fault

(From OE-Core rev: a4fefac26d91bc56d5d28e1c9973a189d2509d45)

Signed-off-by: Chunrong Guo <B40290@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-30 18:06:32 +01:00
Richard Purdie
325ee9b5fc gcc-4.8.inc: Allow lto to be configurable
For some platforms its useful to be able to configure LTO so provide a variable
to allow this to happen.

(From OE-Core rev: e4582a51a2500ad3b418e53170f5fb6b2cbd98a5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-27 13:48:47 +01:00
Richard Purdie
ae8e3b6575 gcc-4.8: Add two patches to deal with cross-canadian build failures
See the patch headers for more information about the cross-canadian build failures
these patches avoid.

(From OE-Core rev: 2bae60b8a3cb7783c06e35a2962e56110e876957)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:14 +01:00
Richard Purdie
861b0d50b9 gcc-common.inc: Drop unused LIBGCCS_VAR variable
(From OE-Core rev: b1449f6e5be13a8c58bf38302236091d046f0215)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:13 +01:00
Richard Purdie
5af02f216a gcc-cross.inc: Clean up after merge
* Remove the duplicate EXTRA_OECONF_PATHS that is overwritten
* Merge the do_compile and do_compile_prepend
* Group dependency and configuration variables together

(From OE-Core rev: 430b1d6fcbf60df35036fe5bbf8e55f7fb8f5341)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:13 +01:00
Richard Purdie
8b855ad32d gcc-cross-canadian: Fold configure-sdk and package-sdk into the main .inc
This also has the advantage of removing the confusing sdk naming which
has been purged everywhere else in favour of cross-canadian.

(From OE-Core rev: cbb63ca9e7e6d397198808e862f812f1012c74a7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:13 +01:00
Richard Purdie
aa77ec7eef gcc-*-runtime.inc: Fold configuration into gcc-runtime.inc
(From OE-Core rev: 9cdfd55de8dbdea3d5e5ed25fbc67d1f198a069a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:13 +01:00
Richard Purdie
2eb9c1cc75 gcc-*-cross.inc: Fold common configuration into gcc-cross.inc
(From OE-Core rev: 8f6df85ca90c038316ca1ed22e9c54f937f21406)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:13 +01:00
Richard Purdie
0dfc8aabef gcc-target: Combine gcc-target-configure.inc, gcc-target-package.inc and other common code
(From OE-Core rev: 86bbe5b7b8e8f0c6ee88888fa083053ae14765c4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:13 +01:00
Richard Purdie
deae329c3c libgcc: Move common code to libgcc.inc
(From OE-Core rev: 3b627b0a8e91a08a3e2a44c71d312ae303fb5d62)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:13 +01:00
Richard Purdie
697102321e gcc-runtime: Fold common configuration into gcc-configure-runtime.inc
(From OE-Core rev: 17ba68f9ae09ae20eb11dfb03bcaa99428b74bf6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:12 +01:00
Richard Purdie
c5530199af gcc-cross-initial: Fold common configuration into gcc-cross-initial.inc
(From OE-Core rev: 7a9202d0478f0021b0ecd03b8d4af8d56c8e3265)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:12 +01:00
Richard Purdie
d39770efd7 gcc-cross: Fold common configuration into gcc-cross.inc
(From OE-Core rev: a77a8011e56f7cddf22adc63270aa9f44c86062a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:12 +01:00
Richard Purdie
50170617c6 bitbake.conf/classes/gcc: Don't hardcode -nativesdk
Hardcoding -nativesdk as the sdk package architecture is inflexible. We may have
multiple different target OS and we need a way to be able to separate them. Turning
this into a configurable value allows the flexibility we need to build different
SDKMACHINEs with different OS targets.

The commit should have no behaviour change, just makes things more configurable.

(From OE-Core rev: a2110e86b98d646e136de9ec6b8e668079b0d4f4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:12 +01:00
Richard Purdie
a966f3017b gcc-cross-canadian: Merge 4.7 and 4.8 recipes into common include
This removes duplication and follows the pattern of the other gcc recipes.

(From OE-Core rev: 3296c896f5a5ef7dd50ab4e00ddbf1c2476462dc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:12 +01:00
Richard Purdie
1995053285 gcc-cross-canadian-4.8: Add missing dependency on nativesdk-zlib
(From OE-Core rev: c782bd4de511b6e603a72a00124a77be52e50dce)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:12 +01:00
Richard Purdie
505634bbab gcc-cross-canadian-4.8: Allow elfutils to be a configurable dependency
Some SDK platforms have elfutils support, some do not, therefore allow
this to be configured.

(From OE-Core rev: 717e940d2c2beccfda31dda16a2d0d6d9a495042)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:12 +01:00
Richard Purdie
bcdc1cd6a7 gcc: Drop gcc-cross4.inc, its pointless now
The include was useful historically, its not anymore so lets remove it.
This should have no functional change except on any layers directly depending
on it or gcc-cross.inc but even then it would only impact sh4 and is easily
fixed if there was a problem.

(From OE-Core rev: e7e8fe11c34bf05179f3bbaa2fb1af7b7125696a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:12 +01:00
Richard Purdie
c63831ca12 gcc-configure-sdk.inc: Don't build target-libgcc
I don't understand why we're building the target libgcc in the canadian-cross build
since it should have been built elsewhere. The compiler configuration isn't correct
to build a working target libgcc in all cases anyway.

To avoid various weird build errors, stop building it.

(From OE-Core rev: b0d1ab6242b6ce2bcdd0e4e3e61600344fcd2907)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:11 +01:00
Richard Purdie
eb99a300a5 gcc-package-sdk.inc: Allow executable extension to be overridden
On platforms like windows, executables have extensions. Whilst I'm not proposing
we wholesale support windows extensions, this small tweak allows a cross compiler
targetting mingw to be built which does seem like a good use case.

The patch therefore adds an EXEEXT which the mingw layer can set for the libexec
symlinks.

(From OE-Core rev: 8dcf0d95b654fa6cc56193168aaa744052ad8ffc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:11 +01:00
Richard Purdie
f2985f0588 gcc-package-sdk.inc: Use relative symlinks in libexec dir
We already use relative links for other gcc libexec links, this changes the sdk
do_install to match elsewhere and use relative symlinks too. This makes things
slightly easier in the SDK installation process and standardises.

(From OE-Core rev: ecfa1141e731224cc5a099f8dfd22878f23359ec)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:11 +01:00
Richard Purdie
ea220e4dc6 gcc-cross-canadian-4.8: Enable PARALLEL_MAKE
This disabling of PARALLEL_MAKE has been forward ported for gcc-cross-canadian
since at least 2009-09 and gcc 4.3.3, probably older.

I've tested this with high values of parallel make and it all seems to work and
we usually build gcc with parallel make so it seems unlikely there are issues.
Lets therefore enable it.

(From OE-Core rev: cee90d230899eb1255d586e6ee4fad0d94348cfd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-23 16:20:11 +01:00
Khem Raj
5aff1820c5 gcc-4.8: Fix meta-fsl-arm iperf build issue
This should fix the problem seen where gcc ICE
was happening when compiling iperf with older 2.6.x
kernel

Test this patch by reverting below commit in meta-fsl-arm

commit daf582c93a7283fb0af3b25fe2ada48f4c9985c4
Author: Otavio Salvador <otavio@ossystems.com.br>
Date:   Tue Jul 2 11:52:51 2013 -0300

    perf: Disable FPU tune for i.MX5 SoCs to workaround GCC ICE

(From OE-Core rev: 8ab1d16b6c6d946b625b6872e5d0f155206f4bad)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
CC: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-03 10:33:14 +01:00
Jonathan Liu
dd8865aac9 gcc-4.8: fix compiling GCC when /usr/lib/libstdc++.so is present
libtool is picking up libstdc++.so from /usr/lib when trying to link
libasan due to libstdc++.la containing libdir="/usr/lib". If compiling
for x86 and the host has 64-bit /usr/lib/libstdc++.so, the compilation
fails linking libasan with:
/usr/lib/libstdc++.so: could not read symbols: File in wrong format

To resolve this, patch libtool to look for the library in the path the
.la is contained in rather than use the libdir which usually points to
a host path.

[YOCTO #4879]

(From OE-Core rev: ec95dfeea1f17eb232563e105085852058a86c0b)

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-07-29 13:08:58 +01:00
Khem Raj
fb58029ed0 gcc-4.8: Fix on-device SDK C++ runtime issue
This fixes the issue where g++ is not able to
find C++ headers when sysroot is '/'

The patch needs to be upstreamed into gcc as well.

[Yocto #4812]

(From OE-Core rev: 18537025ca8777a45cb24f1d9ee781323695607a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-07-18 21:23:44 +01:00
Khem Raj
3030bbd85d gcc-4.8: Fix ICE on ppc/spe targets
Rename patches to make them easly to apply with git

(From OE-Core rev: 040a55d0b730bf78aad0f51e0018faa88655e279)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-28 09:14:07 +01:00
Mark Hatle
216e4dc4aa gcc: When cross compiling a target gcc, target flags may be used on the host
The original fix worked some of the time, but not on all machines.  Fix
this by applying the change in a different way.  Following the example of
the existing BUILD_CFLAGS.

Below is the commit message from the original change to help explain why
this is needed:

Configure identifies a number of warning flags (WARN_CFLAGS and
WARN_CXXFLAGS) from the $CC value.  The cross compiler may be different
from the host compiler and may not support the same set of flags.  This
leads to problems such as:

cc1plus: error: unrecognized command line option "-Wno-narrowing"
cc1plus: error: unrecognized command line option "-Wno-overlength-strings"

Work around this problem by removing the warning flags from the
BUILD_CXXFLAGS value, in a way similar to the BUILD_CFLAGS.

(From OE-Core rev: be21c6e8e4f810e826538337dac6e34ed96e1f6f)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-25 17:44:58 +01:00
Martin Jansa
6038a40e0e gcc-4.8: Backport fix for ICE triggered in pixman
* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57329

(From OE-Core rev: 255c22994449c3d9eb34c80f0a1159ad6714347e)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-18 17:33:16 +01:00
Khem Raj
a6daa838df gcc: Upgrade to 4.8.1
(From OE-Core rev: 1584e587288d355eef29f4f447a75388ed86f314)

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>
2013-06-13 17:38:08 +01:00
Roy.Li
2aed8981e6 gcc: add build directory to include directories
Add build directory to include directories by -I${B}/include which will
be searched before standard system include directories.

Both libunwind and gcc supply unwind.h, once gcc use libunwind's unwind.h,
the compiling will fail.

This patch is generally not applicable to the upstream as they do not
use libunwind.

(From OE-Core rev: 2b47bce78536a800205b2385bba69038351545e5)

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-04 15:55:46 +01:00
Mark Hatle
807476eac7 gcc: Workaround for compiler flag mismatch
When cross compiling the target compiler, both the cross-compiler
and the host compiler are used.  However, the -W options used were
discovered from the cross-compiler and may be incompatible with the
host compiler.

(From OE-Core rev: 1f40202ce3c1282674b6cea39ef709972275f201)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-04 15:55:46 +01:00
Khem Raj
40fe7adfd5 gcc-configure-cross.inc: Remove info generation
Some distros have newer makeinfo which does not go well with
anything below gcc 4.8, this fix avoids regenerating info files

(From OE-Core rev: 50ac2ed5299e2b47b2f3fd9c9cde9d733d2f8d9b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-09 08:51:13 +01:00
Khem Raj
1e7b9ef7e2 gcc-configure-target: Add --enable-dependency-tracking to EXTRA_OECONF
Fixes errors seen while compiling gcc 4.8 for target, errors like

| /home/khem/work/angstrom/build/tmp-angstrom_next-eglibc/work-shared/gcc-4.8.0-r0/gcc-4.8.0/libatomic/cas_n.c:125:1: fatal error: opening dependency file .deps/cas_1_.lo.Ppo: No such file or directory

which are due to disabled dependency tracking but dependency files being still generated
while compiling libatomics.

(From OE-Core rev: c83cbc80af078d7be5deec44bba6e0ca29a5ee1a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-08 15:41:14 +01:00
Josh Cartwright
3681c89432 gcc-4.7: fix gcc ICE when building with gcc-4.8
Backport fix for internal compiler error when building gcc-4.7.2 with a
gcc-4.8.0 host gcc.

See upstream bug here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56308

(From OE-Core rev: b1dc91969f9bb0c2a3a4336f5e9a2f57aabb9f78)

Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-03 16:19:20 +01:00
Phil Blundell
3dedd8f72c gcc-runtime: Avoid error when trying to remove nonexistent directories
If we didn't build libgomp then we won't have installed anything into
${infodir} or ${libdir}/gcc/${TARGET_SYS}/${BINV}/finclude.  Check
whether those directories exist before trying to remove them, else we
will lose.

(From OE-Core rev: 507e14ecdc5b4ff2ee7f1128d9f30c2948e10d5a)

Signed-off-by: Phil Blundell <philb@gnu.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-03 16:19:20 +01:00
Khem Raj
88a4fd8ab2 gcc-4.8: Fix GCC ICE on arm
armv5t was seeing ICE on code from elfutils it has been fixed upstream
so lets backport it.

(From OE-Core rev: 6c50d60ce3fd7242e67a531d5875edeb8b7a3651)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-04-22 14:45:04 +01:00
Elvis Dowson
fd566d20b7 gcc-4.8: Refactor gcc-4.8.0 patch files.
(From OE-Core rev: 16ab55220c4b602a8406c7a4405c737caae5907b)

Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
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>
2013-04-22 14:45:04 +01:00
Khem Raj
c3cc4bfc83 gcc-4.8: Add recipes
(From OE-Core rev: c850415a1bdbb9268114d90fd0fc4cb3479de9c5)

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>
2013-04-22 14:45:04 +01:00
Martin Jansa
66bee6afa1 gcc: add patch to disable texinfo when texinfo is 5.0 or newer
* this is needed only for 4.7 series, newer works fine with texinfo-5*

[YOCTO #3947]

(From OE-Core rev: d85d15972d78b5dda7a03dd273a64305f115282b)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-04-04 14:04:43 +01:00
Richard Purdie
9bfd92243e gcc-common: Exclude AVAILTUNES from sstate checksums
AVAILTUNES is only used as a sanity check, we don't need to
include it in the sstate checksum in this case. If included
it can cause problems when switching machines with a common
package architecture.

[YOCTO #3667]

(From OE-Core rev: b1cc5a4055c6402595eac1a93eac4c946210d130)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-18 13:18:21 +00:00
Laurentiu Palcu
2c201656eb gcc-cross-canadian: do not create symlinks to non-existent binaries
If fortran is not built, soft links to gfortran and g77 are created
even though the fortran compiler doesn't exist...

[YOCTO #4023]

(From OE-Core rev: c5c135bc5e71a6f9b14f249358bf5d217050ee55)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-16 17:53:59 +00:00
Khem Raj
f6cc25ce12 gcc-4.7: Fix incorrect warning with -Wcast-qual
This patch backport the fix where -Wcast-qual
reports a bogus warning with 4.7.2, There is
no workaround in code that can be done to avoid
it hence the fix to gcc is backported.

(From OE-Core rev: 5d8ef98225773a6ec88b5e1a76ce01d76163b3a5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-12 18:33:28 +00:00
Matthew McClintock
8e105385e0 gcc-common.inc: handle case where tune is not defined
(From OE-Core rev: d3eab8b17f8e50f99042a7a8f43db94640c53d41)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-05 13:14:51 +00:00
Constantin Musca
5f05604cdf gcc-cross-canadian: enable multilib support
(From OE-Core rev: ee7331e3e7d0b38f3e19ccf7e394537f5f653a22)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:49:27 +00:00
Khem Raj
898a8094b1 libgcc: Disable multilib install for nativesdk
Fixes errors when building SDK for multilibbed enabled
architectures.

[YOCTO #3832]

(From OE-Core rev: 09934f38df057e12af7d14791f7ab752e81093db)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-05 15:22:45 +00:00
Constantin Musca
f4b0cc562e gcc: target: fix libiberty removal
- use ${libdir} instead of ${exec_prefix}/lib

Fix the following warning:
WARNING: QA Issue: gcc: Files/directories were installed but not shipped
  /usr/lib64/libiberty.a

(From OE-Core rev: b3643415ad91dc77880cc5b95e9ad8cd9aef5c44)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:50 +00:00
Constantin Musca
703b70c98a gcc: enable multilib for target gcc
- add a task to setup multilib configuration for target gcc
- this commit adapts Nitin Kamble's work to gcc 4.7
- use a hash for storing arch-dependent multilib options
- patch gcc in order to use the multilib config files from the
build directory

Tests:
root@qemux86-64:~# gcc -m64 t.c -o t
root@qemux86-64:~# file t
t: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
root@qemux86-64:~# ./t
Hello World !
root@qemux86-64:~# gcc -m32 t.c -o t
root@qemux86-64:~# file t
t: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
root@qemux86-64:~# ./t
Hello World !

[YOCTO #1369]

(From OE-Core rev: b26819c85881e82ee1b5c68840011e78c321f18e)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:31 +00:00
Martin Jansa
5298d6f6ff gcc-configure-runtime: always remove info/dir
* move libgomp.info removal also outside that for cycle, can be removed outside if exists
* also use infodir variable instead of ${datadir}/info

(From OE-Core rev: 0b8fe539928c7a61ca01a4a0a0f54df47164ac6c)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:53:34 +00:00
Richard Purdie
3247292683 Split do_packagedata task from do_package
Currently, do_rootfs has a dependency on all the do_package output being present
due to its usage of the pkgdata directories. This means that if you run:

bitbake xxxx-image -c rootfs

you end up having to fetch and unpack all the do_package data which is usually
large and inefficient. It also means rm_work has to leave all the do_package
data lying around so rootfs works.

This patch splits the actual creation of the pkgdata directory off into a separate
task, "packagedata" which happens immediately after do_package. We can then remap
the dependencies so this task is depended upon, not do_package. Sstate can then be
programmed not to require do_package at the appropriate times.

Whilst this patch doesn't do so, it opens the possibility of rm_work wiping
out the do_package output from WORKDIR as long as it also removed the do_package
stamp (both normal and setscene variants) and allowing more space savings
with rm_work which has been regularly requested.

(From OE-Core rev: 6107ee294afde395e39d084c33e8e94013c625a9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:47 +00:00
MiLo
3991c5520e gcc: Enable OpenMP compiling and library
Multicore embedded systems are getting more and more common.

Remove "--disable-openmp" from the GCC configuration options and
always build libgomp. This only creates a "bigger" compiler but
has no effect on the compiled binaries that don't use openmp.

Tested a clean build on mips32el and arm7a, no problems encountered.

Autoconf will not detect OpenMP after this change, because it will
build and run a target binary on the build system. In order to use
OpenMP, the variable ac_cv_prog_c_openmp=-fopenmp must be set.

(From OE-Core rev: fdf37b792c13a1fc3f63faf471f0403396414a35)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:43 +00:00
Constantin Musca
66d0b1d4d2 gcc: add missing dependency (zlib)
- add zlib to DEPENDS (it fails otherwise)

(From OE-Core rev: 7a0fd7145461d3feb9fe7900a39376d556e655d6)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-15 08:10:14 +00:00
Giuseppe CONDORELLI
b94fd21bbf gcc: restore FILESPATH
restore FILESPATH to previous setting because the new one doesn't allow the
normal use of FILESEXTRAPATHS_prepend in the case of append recipe.
In the current implementation, in fact, the FILESPATH is statically set into
the gcc-4.7.inc and so the base_set_filespath is not invoked to manage
extrapaths.

(From OE-Core rev: acdec40f31ecd2eecf8c173b632b8fb01ca59b3d)

Signed-off-by: Giuseppe Condorelli <giuseppe.condorelli@st.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-07 14:30:51 +00:00
Khem Raj
e1269dd6d4 gcc-cross-canadian.inc: Add dependency on cross-gcc
gcc-cross-canadian uses cross compiler during libgcc build
when building from sstate the build failed when building
gcc-cross-canadian since it did not populate gcc-cross
therefore add an explicit dependency on virtual/${TARGET_PREFIX}gcc
to make sure that gcc-cross is available before building
gcc-cross-canadian

(From OE-Core rev: d9b7478e41e3065d01aa45d8d70fae2fc5ff6066)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-19 17:55:01 +00:00
Colin Walters
d3dbfd6fe0 gcc: Add --enable-linker-build-id
See https://fedoraproject.org/wiki/Releases/FeatureBuildId for the
benefits this brings.  As far as I can tell from searching the
discussion archives, there doesn't appear to be a reason not to enable
this, and the benefits are real.

Both the Red Hat Enterprise Linux 6, all Fedora, and Ubuntu Quantal
GCC builds are configured with this on.  I plan to use it in
gnome-ostree.

(From OE-Core rev: f3be2b1e5e100a953d6d7fbbb19a77a5c4d547e1)

Signed-off-by: Colin Walters <walters@verbum.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-24 15:12:29 +00:00
Richard Purdie
5ce6418c13 gcc-cross: Explicitly depend on linux-libc-headers
gcc-cross cannot build without linux-libc-headers but doesn't explicitly depend on
it relying on the implied dependency through libc. With cases where pieces
can be installed through sstate, we now need this explicit dependency to
ensure builds with partial sstate work.

(From OE-Core rev: 65e5670ef429bb6c348decb1804e425f1c4d7c61)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-24 15:12:28 +00:00
Richard Purdie
6177bfb408 gcc: Use FILESPATH instead of FILESDIR and cleanup/simplify
(From OE-Core rev: 4cb359182da00e661fda11a8b31e3611b0df03cb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-21 16:56:01 +00:00
Richard Purdie
66861cce91 Revert "gcc: Use FILESPATH instead of FILESDIR and cleanup/simplify"
This reverts commit 90616875b4. It was
never meant to be applied as its an incorrect previous development
verison of a patch in progress.
2012-11-20 16:47:11 +00:00
Richard Purdie
90616875b4 gcc: Use FILESPATH instead of FILESDIR and cleanup/simplify
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-19 21:18:52 +00:00
Richard Purdie
2c494b2090 classes: Be consistent about sstate-inputdirs/outputdirs ending with '/'
If sstate-inputdirs and sstate-outputdirs don't match with ending '/'
characters, the manifest file can end up corrupted. This change
ensures the metadata is consistent in ending do_populate_root tasks
with this character to avoid manifest file corruption.

(From OE-Core rev: 3910eaf88d14904eef85b9e391387547df7fc54e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-14 14:38:28 +00:00
Richard Purdie
52e67c5f75 gcc-cross-canadian: Fix gettext dependency
There was a problem in commit ad23395cd1 since
gettext-nativesdk was translated to gettext instead of nativesdk-gettext.

This fixes to use the correct dependency.

(From OE-Core rev: a6e325342cb489e05927d6cb2bb0a24fa6c20ef8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-10 15:06:12 +01:00
Phil Blundell
0c340611de gcc-configure-cross: factor out --enable-threads argument into ${GCCTHREADS}
This allows BSPs for architectures with no thread support to set (for
example) "GCCTHREADS=no" without having to override all the other configure
parameters.

(From OE-Core rev: 6bb0d37529a82b953d374f2d76c2412d7cee587b)

Signed-off-by: Phil Blundell <pb@pbcl.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-26 15:02:26 +01:00
Khem Raj
d02f02950e gcc-common.inc: Consider multilib when renaming libgcc for debian'ness
When doing multilib builds rpm does not find libgcc1 for lib32
multilib because its not honoring the debian renaming scheme for
libgcc-multilib. Lets add MLPREFIX to fix it.

(From OE-Core rev: 9327ca868667b15f29af3123611d6f56b4249a63)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-25 10:41:27 +01:00
Khem Raj
df74f8d9a8 gcc: Use 4.7.2 release tarball
This avoids the SVN or git fetcher issues for gcc
and the tar is mirrored around the world so it will
not be slow

Fixes [YOCTO #2908]

(From OE-Core rev: 5e03d1e83d0536a2fc69a88d3e5407108836203f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-21 14:55:32 +01:00
Richard Purdie
3c101af5e3 bitbake.conf/gcc-common.inc: Fix STAMPCLEAN expression
The globs used for STAMPCLEAN were too greedy matching gcc-cross-initial
stamps for gcc-cross for example. This patch resolves that problem making
the assumption that PV starts with something numeric. This assumption
should hold in most cases and has a better failure case that the current
situation.

(From OE-Core rev: d7fbc70b6c6ac629d2a23ac16ab45461f88b4b26)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-21 14:20:18 +01:00
Richard Purdie
3d6229535c bitbake.conf/gcc: Add clean masks for stamp files
This takes advantage of new bitbake functionality to clean up stale stamp
files when creating new stamp files.

[YOCTO #2961]

(From OE-Core rev: e21b6c04e512a3bc2339a20045b7041f1d26e859)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-20 11:52:35 +01:00
Khem Raj
42f0f96903 gcc-4.7: Backport libgcc fixes to appease the new build sequence
This makes the libgcc builds identical when done with gcc-cross-initial
or final gcc-cross. Since eglibc only sees gcc-cross-initial it is
important that the final libgcc that appears on root file system is same
as the one against which eglibc was built.

(From OE-Core rev: bd0ab094d6c36b55848e23e63b96587773299a7f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-12 15:13:38 +01:00
Khem Raj
86ae51246f gcc-4.7: Fix build for armv4/EABI and ppc/Os
arm patch is a forward port from OE/classic
ppc patch should help in building images with Os

(From OE-Core rev: ac9ebcea4a2b778f6dd103a729831d9a9be281df)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-12 15:13:38 +01:00
Richard Purdie
800ce0f1d0 gcc-cross-initial: Reinstate limits.h generation fix
The removal of gcc-cross-intermediate inadvertently reintroduced a
problem with the limits.h file being incorrectly/inconsistently
generated.

http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=b0faebd1f07e1616004bd19664395932e7c2c48f
reverted part of:
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=c8815d2f21849deb9359706f54dc71490773415e

This reintroduces the protected sysroot ensuring the limits.h file is
always correctly generated. To reproduce the bug, build gcc-cross, then
rebuild gcc-cross-initial and it will reference the limits.h file from
gcc-cross in the sysroot.

(From OE-Core rev: 71854f5c8c6850ed37777cad21acc92fdbea32fc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-07 00:07:42 +01:00
Richard Purdie
ad23395cd1 nativesdk: Switch to using nativesdk as a prefix, not a suffix
As discussed on the mailing lists, using a suffix to package names is
hard and has lead to many recipes having to do PKGSUFFIX games. Its
looking extremely hard to scale nativesdk much further without hacking
many recipes.

By comparison, using a prefix like multilib does works much better and
doesn't involve "hacking" as many recipes. This change converts nativesdk
to use a prefix using the existing multilib infrastructure.

(From OE-Core rev: 81813c0e322dc04ce4b069117188d8a54dfddb8c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-02 05:52:06 -07:00
Richard Purdie
16a7a61510 gcc-4.7: Add fix for libtool rpath problems
This avoids problems with libstdc++ having bad rpaths (/usr/lib/../.lib)
in its .la file. See the patch for more information.

(From OE-Core rev: bd27e81f1fa49e2770da9a4a65a83e9d4c3a0dd0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-24 17:25:14 +01:00
Martin Jansa
84d8ef416b gcc: bump PR
* missing in 30617bde61a3b0a0944b49a0c9fb7159dacbb19f, eglibc-initial fails to compile in incremental build with OEBasic

(From OE-Core rev: 495ccece87b56d696e92c5cdc39b79fd9813caa0)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-22 14:04:59 +01:00
Khem Raj
fe9a576e8d gcc-cross-intermediate, gcc-crosssdk-intermediate: Remove
These recipes arent used anymore so delete them

(From OE-Core rev: 4ef8960c8d2876914bb78cbdce5fae3c5297e942)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 12:15:33 +01:00
Khem Raj
ad5fe4624b gcc-crosssdk-initial_4.7.bb: Add --with-native-system-header-dir to EXTRA_OECONF
gcc-crosssdk-intermediate will go away and -initial will
assume its responsibility therefore transfer the option

(From OE-Core rev: 7f6883b225f9a0fdc44be2d1cb66ddc744174fbc)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 12:15:32 +01:00
Khem Raj
b0faebd1f0 gcc-cross: Make gcc-cross-initial as the only intermediate gcc stage
Now glibc can be compiled with gcc-cross-initial therefore prepare
the stage to drop gcc-cross-intermediate

Also drop arm-nolibfloat.patch should not be needed anymore
half of changes in this patch are meant for OABI which we dont
use anymore

(From OE-Core rev: 30617bde61a3b0a0944b49a0c9fb7159dacbb19f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 12:15:31 +01:00
Richard Purdie
016247241d gcc: Disable use of sdt.h header
The target sysroot might contain sdt.h but we don't list this in DEPENDS
and shouldn't be referencing it. Unfortunately there is no way to tell
configure this since these tests are uncached and we can't force
a particular value. The only option is therefore to patch this out.

(From OE-Core rev: 1409d9b9690e39ecc63aacfdd5785586d83633ee)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-07 23:30:07 +01:00
Richard Purdie
c8815d2f21 gcc-cross-initial: Ensure it uses an isolated sysroot
If we don't do this, a stale limits.h may be detected in STAGING_DIR_TARGET
which would result in a different limits.h getting generated by gcc-cross-initial
that references it. The referenced limits.h will then not get found by eglibc-initial
causing rather strange build failures.

The simplest solution is to create a temporary sysroot containing only the things
gcc-cross-initial should care about and this results in a correct limits.h file
regardless of what else may have been built.

(From OE-Core rev: 9c304eae0724474902fe2f3150adc6af115af9ba)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-06 12:35:05 +01:00
Richard Purdie
ed6beed4b3 gcc: Bump PR since there have been several gcc changes and various problems reported and this should flush anything stale out
(From OE-Core rev: a9d0cbe1d84bb26fc1a1f48764fe514cf9f9c548)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-03 10:32:35 +01:00
Richard Purdie
2b720d62c1 gcc-cross-initial: Fix typo causing limits.h not to be present
(From OE-Core rev: f26014b1b2e7ae0a23829487ca0c0bc05043b5d7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-03 07:50:36 +01:00
Richard Purdie
acde166f5b gcc-configure-target: Set native-system-header-dir for target gcc
Without this set, in the case host=target (which it does for on-target
gcc), the native header directory is set to the target sysroot with
no prefix. This means it would look for sdt.h on the build system
instead of in the target headers and this can lead to build failures
and is host contamination of the build.

The correct fix is to explicitly set the native header directory to
the correct location and then the headers get detected correctly.

(From OE-Core rev: 404d2d490fc347203e89d274530c17fb5f0aa20f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-01 23:11:17 +01:00
Khem Raj
aab76b3399 gcc-cross-initial: Stage self sufficient fixed limits.h
currently gcc installs a limits.h which references to another
limits.h which it expects from target sysroot and that header
in target sysroot will come from eglibc. So we need to break
this catch-22 and hence we install a self sufficient limits.h
which is then happy when referenced and doesnt complain about
missing limits.h from target sysroot.

This is mostly used when eglibc-initial configure is run

(From OE-Core rev: eeb445ecbc651ad614a4fc492039bdad0747d45d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-26 14:40:48 +01:00
Richard Purdie
3049f6b8df libgcc: Add missing dependency on libc:do_package
do_package writes out shlibs data and libgcc can depend on the values
there. We therefore need to express the depdency so that sstate can account
for it for example.

Without this a version change in eglibc can "psersist" in the sstate cache
and corrupt builds.

(From OE-Core rev: 4148bc80c008d25c8a536c7c7dfdeac1669a6662)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-24 10:35:32 +01:00
Bernhard Reutner-Fischer
3e89b62a47 gcc: remove 904-flatten-switch-stmt-00.patch
Remove brute-force flattening and bump PR.
Refer to -ftree-switch-conversion emit_case_bit_tests(),
-ftree-if-to-switch-conversion et al in 4.8

(From OE-Core rev: 2eb0e56217137ece3d86a70676a3f3c8db525459)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-18 22:24:41 +01:00
Matthew McClintock
e0e04c4603 gcc-package-runtime.inc: Fix QA warning
> ERROR: QA Issue: gcc-runtime: Files/directories were installed but not shipped
>   /usr/lib/libgomp.so.1.0.0
>   /usr/lib/libgomp.so.1

(From OE-Core rev: fee3def2ca49e3349758d9cd9a9cf5645f03cf18)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-18 14:29:28 +01:00
Khem Raj
ac8ec3bb3d gcc-cross-initial.inc: Use BFD ld as default always
When using gold as default linker in final toolchain
gcc-cross-initial still needs to use BFD ld since it
will link eglibc-initial

(From OE-Core rev: f643f886b16f586426c744afde080a99d71a9d58)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-17 10:54:07 +01:00
Khem Raj
eb6323cc56 gcc: Switch to git SRC_URI
svn has been giving troubles with svn 1.7 upgrade
Remove duplicate definition of S and B variables
from gcc-4.7.inc

Use 4.7.1.0 for PV to maintain the upgrade path
Its an interim solution once we upgrade to 4.7.2
we will drop it.

(From OE-Core rev: 3f3b74b3fd6ba813dd69804706edcea145876e09)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-17 10:54:02 +01:00
Khem Raj
3cf4c8d3e9 gcc: Refresh support for fsl E5500/E6500
These patches are backport from gcc mainline
they fix issues where eglibc was not compilable
for e5500+ due to missing vector intrinsics
It obsoletes the existing e5500 patch

(From OE-Core rev: b440aeeceb8c2e9f412d98793fb1dd55ff9d73f5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-17 10:54:02 +01:00
Khem Raj
aa31bcbbc0 gcc: Convert do_headerfix into a definitive patch
do_headerfix task is essentially editing configuration
headers in sources which can well be maintained as a
patch which is easier to spot errors (if any) than
dynamically edited source tree

(From OE-Core rev: ddd344e9acef88d614473581266569ce14716ccc)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-17 10:54:01 +01:00
Richard Purdie
d71a35d4f6 crosssdk/nativesdk: Ensure EXTRA_OECONF_FPU is unset
If EXTRA_OECONF_FPU is left set, certain ARM variables related to hard-float
can get pulled in and trigger rebuilds of the crosssdk code. The best solution
is to simply force the variable to a known correct value for the SDK targets
currently supported in the same way as TARGET_FPU.

There is some slight rearrangement of the gcc code to ensure the variable is
always used to call the fpu function.

(From OE-Core rev: 410990445ada8cdcfaec4e6fa5791cee9a5b8983)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-17 10:53:57 +01:00
Saul Wold
14c4a41f88 Update proto -> protocol for recipes
(From OE-Core rev: 247fbed5a93800c44dc36e403f13bdc8dd704553)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-17 10:53:55 +01:00
Matthew McClintock
6382732a75 libgomp: add libgomp (openmp) library, and build for powerpc targets by default
(From OE-Core rev: b76a7bc8dcb7aed7d6f026e77a226837004c50af)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 11:35:53 +01:00
Matthew McClintock
b424a3a31b gcc: gcc-cross-canadian: use correct location for libraries for powerpc64
This fixes the issue where gcc invokes the linker with an incorrect -L
library location and gives up because it can't find libraries. It was
looking in a /lib folder instead of /lib64

(From OE-Core rev: 1b428f0151a5b86332b501871bf4a925b43580a5)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 11:35:53 +01:00
Matthew McClintock
fd9a9a2a9a gcc-configure-common.inc: use --with-long-double-128 on powerpc to comply with ABI
(From OE-Core rev: 243539efec94e79dade2525d0ab3586eea48c529)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 11:35:52 +01:00
Kartik Mohta
d0900924a6 gcc-common: Don't use "is" for comparing strings, use "=="
Needed because the equality check was failing here even though upon
printing the LHS and RHS were the same.
As per http://stackoverflow.com/a/2987975/64537, using "is" compares the
memory addresses of the two objects which is not what we want here. We
just want to compare the values.

(From OE-Core rev: 7fd82cc90a48302ed42b6bfa962bb0de2c652b45)

Signed-off-by: Kartik Mohta <kartikmohta@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:56 +01:00
Richard Purdie
e3b3aaf4c7 gcc: fix collect2 host contamination problem properly
We added the autoconf cache line a while back to ensure that configure doesn't
poke into some hardcoded host paths looking for things it shouldn't. Applying
it as part of do_configure wasn't getting it to the do_compile tasks
where much of the configure scripts are run by gcc. This changes it to a simple
export to ensure it reaches the places it needs to and truly gets rid of
the cross compile badness messages from the logs.

(From OE-Core rev: af58d5c3a5c5e632aa20b1d007d47dbbfb4ed6e6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 12:36:45 +01:00
Khem Raj
3916fb9bf4 gcc-configure-sdk, gcc-configure-cross: Dont recompute USE_NLS
This was needed because on eglibc based builds we did not
define USE_NLS but now we define it in default config to have
a valid value so we do not need this here. Moreover it was
wrong and was not covering all cases of uclibc triplets

(From OE-Core rev: fc9492654aab2a6e3f46977193b5a5f388e4ee85)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:30:58 +01:00
Khem Raj
c27d535b09 libgcc: Remove unpackage unwind.h
Fixes build warnings like below

WARNING: For recipe libgcc, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/lib/arm-oe-linux-gnueabi/4.7.2/include
WARNING:   /usr/lib/arm-oe-linux-gnueabi/4.7.2/include/unwind.h

(From OE-Core rev: f7ec6ea2b32207993e7fc92ed67c08f542007953)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:30:57 +01:00
Khem Raj
08e15c2599 gcc: Remove csl gcc recipes
sourcery toolchain is available as external pluggable toolchain
if needed.

(From OE-Core rev: 7d0c7a759c29669b2b5828fd75837926506acd87)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:53 +01:00
Khem Raj
2ef14dff79 gcc-4.6: Retire into toochain-layer
If anyone wants it add toolchain-layer from meta-openembedded
repo to your setup

(From OE-Core rev: a78260d8d041e606ce4d10c0bb52f196dd27832e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:52 +01:00
Khem Raj
c0b54eb457 gcc: Fix a case of sysroot with trailing / and gxx-include-dir leading slash
when using --with-sysroot=/ and --with-gxx-headers=/usr/include/c++
configure eats up one leading / from gxx include dir
fixed thusly

(From OE-Core rev: 51064de5fb92c53c99b21487c0ebcafeaf3cc3ad)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:04 +01:00
Khem Raj
7fb442a320 gcc-4.7: Update to tip of gcc-4_7-branch since 4.7.1 has been out
(From OE-Core rev: 7986e424995a4119b45a09767dc5100a5cdb5161)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:04 +01:00
Robert Yang
a41c3e4867 gcc-cross: argument list too long when do_install
There would be an "Argument list too long" error when the length of
tmpdir is longer than 190, this is caused by:

headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`

The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle
it, use the $(sort list) of GNU make which can handle the too long list
would fix the problem, the header would be short enough after sorted.
The "tr ' ' '\012'" was used for translating the space to "\n", the
$(sort list) doesn't need this.

This doesn't impact the output, so it doesn't need the PR bump.

[YOCTO #2591]

(From OE-Core rev: b9b75e6cf31991c046713194f75bc61027558464)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:22:17 +01:00
Saul Wold
b42744fac3 gcc-target: ensure target packages have the correct virtual package names
Resolves this error during do_rootfs:
|  * satisfy_dependencies_for: Cannot satisfy the following dependencies for task-core-standalone-sdk-target:
|  * eglibc (>= 2.15) *
|  * opkg_install_cmd: Cannot install package task-core-standalone-sdk-target.
NOTE: package core-image-sato-sdk-1.0-r0: task do_rootfs: Failed

(From OE-Core rev: 86e3b90d1963fa6982869e005d7858222a8527d5)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:45 +01:00
Richard Purdie
3f29273540 gcc-configure-target: Fix sysroot option breakage I introduced (sorry)
(From OE-Core rev: ba380813c0198f95b1e786aa7f49b80c68cfe9b9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 19:48:47 +01:00
Khem Raj
e7d0a81a8f gcc-configure-common: Use build time sysroot for target gcc
Otherwise it assumes / as sysroot on build host and starts
searching for directories in there.

[RP: Tweak to add missing = for consistent syntax]
(From OE-Core rev: d132bcc41d9956f8cc171e34232d991e2b444689)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-13 11:57:22 +01:00
Khem Raj
4b55c928c1 gcc-common: Replace use of TARGET_ARCH with TRANSLATED_TARGET_ARCH
TARGET_ARCH is poured into TRANSLATED_TARGET_ARCH
for gcc-cross family or gcc-crosssdk family
of recipes we have to check for TRANSLATED_TARGET_ARCH

(From OE-Core rev: 03f7322b1f4e1b1cf465a46cba3b82573384ab9e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:51 +01:00
Khem Raj
53981ad824 gcc-common: Enable hardfloat ABI when target is arm
We need to check target to be arm before enabling hard-float
ABI. There are crossdk targets or candian-cross targets built
for arm and we should not enable it for those class of recipes.

(From OE-Core rev: f48bb903218e14ba15dab452e8bb43ba25b9ea44)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:51 +01:00
Khem Raj
23fd086b6e gcc: Grok for callconvention-hard to enable hard float
If callconvention-hard is set then we build gcc defaulting
to hard-float ABI

(From OE-Core rev: 88dee5cf5265d3ea26fc9d471fc6155e48935dc7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:35 +01:00
Khem Raj
e108db7acc gcc-4.7: Add knowledge about arm hf dynamic loader
(From OE-Core rev: a0d9e602a778feab2201a0643fb7d555b71017b9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:35 +01:00
Khem Raj
6174900a0e gcc-4.6, gcc-4.7: Add support for building mips64 cross compiler
Defaults to n64 ABI

(From OE-Core rev: 253f1f3aebd1a90c55efcc6d1f585204e7f3c371)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:02 +01:00
Andreas Oberritter
0ff3fa7cd9 gcc-4.6: disable cloog, change syntax to disable ppl
* Backported from 523df15bcc21e1749771cca757613f3520243b8e
  as suggested by Khem.

* Original commit message:

  If build system has those libraries installed
  gcc configure will pick them up. We want
  consistent builds so we disable them since we
  do not (yet) support them

(From OE-Core rev: 9de1de7c2c4e9f5accb4dd082fe819a711defbfb)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:55:46 +01:00
Andreas Oberritter
97911d3931 gcc-4.6: explicitly disable ppl
* Fixes the following error after a system library upgrade
| .../mipsel-oe-linux/4.6.4/cc1: error while loading shared libraries: libppl.so.10: cannot open shared object file: No such file or directory

(From OE-Core rev: 2c0fb8265d4876db537850f4b20c898dde3a0f4c)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-04 16:44:59 +01:00
Saul Wold
2e9bb9d103 gcc-package-target: add libexec for plugin
Fixes:

ERROR: For recipe gcc, the following files/directories were installed but not shipped in any package:
ERROR:   /usr/libexec/gcc/i586-poky-linux/4.7.1/plugin/gengtype
(From OE-Core rev: 0be64cda0a20ca3aab75ee0cc360236d2dc40c95)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:10 +01:00
Saul Wold
845bcf0b1b libgcc: Add MLPREFIX to sanity check skip
Fixes:
ERROR: QA Issue: non -staticdev package contains static .a library: lib32-libgcov-dev path '/work/x86-pokymllib32-linux/lib32-libgcc-4.7.0+svnr186651-r0/packages-split/lib32-libgcov-dev/usr/lib/i586-pokymllib32-linux/4.7.1/libgcov.a'
ERROR: QA run found fatal errors. Please consider fixing them.
ERROR: Function failed: do_package_qa
ERROR: Logfile of failure stored in: /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-multilib/build/build/tmp/work/x86-pokymllib32-linux/lib32-libgcc-4.7.0+svnr186651-r0/temp/log.do_package.9691
NOTE: package lib32-libgcc-4.7.0+svnr186651-r0: task do_package: Failed
ERROR: Task 1077 (virtual:multilib:lib32:/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-multilib/build/meta/recipes-devtools/gcc/libgcc_4.7.bb, do_package) failed with exit code '1'
(From OE-Core rev: dd303065890e44f6f2c986988938c3599ea94e4f)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:00 +01:00
Khem Raj
b11dc75d19 gcc-cross.inc: Fix cross testing script
shift the cmdline argument after determining
there is atleast 1 argument to shift otherwise
it ends up in error when no argument is specified

(From OE-Core rev: 4cd306ab0c9404a31f38c7e5fb67fe32fdca3d4b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:08 +01:00
Khem Raj
0611c3c1a2 gcc-package-sdk: Package plugin files generated by gcc-4.7
(From OE-Core rev: e2ce49ca28fe7f6054406bc276a3402cfc04f545)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:27 +01:00
Khem Raj
8250ca8b32 gcc-4.7: Do not use --with-header option for cross-gcc
(From OE-Core rev: 11cbd871e0969931d5c81ec53684446f4293faf1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:27 +01:00
Khem Raj
9f32853544 gcc-4.7: Let cpp specs honor include searches in relocated install tree
Fix from Yocto Bug 2074

(From OE-Core rev: fe32e09ccbef3a9896955e8d4c3113c53f95de48)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:27 +01:00
Khem Raj
8e6a742220 gcc-4.7: Use full relative path in require directive
This will help in meta-linaro where it will be able
to utilize maximum recipes from OE-Core and thereby
keep close compatibility with OE-Core gcc recipes

(From OE-Core rev: 3c9f7eb2e2d70869a71a584eb1ba670b50a88379)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:26 +01:00
Khem Raj
38e961ace3 libgcc-4.7: Package libgcov nativesdk correctly
(From OE-Core rev: 2bcc03b6787d4bb0731c047bf25c945228136e5f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:26 +01:00
Khem Raj
79a5da9eda gcc-4.7: Lower the internal consistency check level to release
This should help in speeding up compilation at the expense
of a bit less info when gcc ICEs but we dont get many gcc
ICEs and therefore using --enable-checking=release is
right balance

(From OE-Core rev: a84c097cc7c52a856601e546880440d9375b0e30)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:26 +01:00
Khem Raj
529173ab4a gcc-4.7: Disable cloog and ppl
If build system has those libraries installed
gcc configure will pick them up. We want
consistent builds so we disable them since we
do not (yet) support them

(From OE-Core rev: 523df15bcc21e1749771cca757613f3520243b8e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:26 +01:00
Khem Raj
4155ed41d8 gcc-package-target: Add the dangling files to specific packages
create a new package to have lto dev packages bundled

(From OE-Core rev: b98fb95c594117d165a31795b6fa7b6cb583d598)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:25 +01:00
Khem Raj
e6716c54ec gcc-crosssdk-intermediate: Use --with-native-system-header-dir for 4.7
--with-native-system-header-dir is relative to sysroot which
is what we want --with-headers is deprecated anyway

(From OE-Core rev: 2f7ac32b57e047cdaf01e0b6f77509117dbbd14c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:25 +01:00
Khem Raj
0e70f544ac gcc-cross-canadian_4.7.bb: Override ARCH_FLAGS_FOR_TARGET
We need -isystem=${target_includedir} in there

(From OE-Core rev: 573949096d51bde4961b2301c20c966c324a66bd)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:25 +01:00
Khem Raj
e06d1f2d85 gcc-4.7: Define own do_configure_prepend
gcc-4.7 does not define STANDARD_INCLUDE_DIR

(From OE-Core rev: 149a9911a00c79475d00382dcc384f355fbcdd02)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:25 +01:00
Khem Raj
aafa59064b gcc-4.7: Add recipes
Add new recipes for gcc-4_7-branch right now gcc 4.7.0
is latest release from this branch

(From OE-Core rev: 3f8fee75e598ad0994acc5da0a612e6eca4f35f6)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:24 +01:00
Khem Raj
173f424808 gcc-configure-common.inc: Use libc-uclibc override
Its better than duplicating the overrides

(From OE-Core rev: 7159dad19f8cfd3e7e95523da63e91370744da7f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:24 +01:00
Khem Raj
1dd054518f gcc-4.6: Specify complete paths in require directive
This is needed for adjusting meta-linaro where linaro
gcc recipes leverage the core recipe infrastructure and
modifies minimal to keep compatibility with OE-Core
so that any changes in OE-Core gcc recipes does not
trigger changes in meta-linaro.

(From OE-Core rev: cb01b2a4fc82e62eacc4441fddc3fdfb04a3acf3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:24 +01:00
Khem Raj
85f8b5c106 gcc-4.6: Remove redundant overrides
Use libc-uclibc override instead of TARGET_OS
override

(From OE-Core rev: 57392b5c3c9d14ba6568a98fc4fb0dadbdb9d9cb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:24 +01:00
Khem Raj
271e4e02f9 libgcc_4.6: Package libgcov nativesdk correctly
(From OE-Core rev: b32e26310d5b635b7ef1a6408dc14d400d799477)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:23 +01:00
Khem Raj
9ce94ea4a4 gcc-configure: Render --with-local-prefix harmless
this option by default points to /usr/local no matter
what so we cant let it sit on sidelines otherwise it
will access host machine's /usr/local which may not
be desired. So disable this option. This also helps in making
gcc's shared state more consistent

(From OE-Core rev: eee3658366e1ae9d3e429b3d3c968938d8d0f00e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:23 +01:00
Khem Raj
f7337ee8c4 gcc: Stash the gcc-cross builddir to reuse in libgcc and gcc-runtime
Currently we stash the libgcc install tree and then reuse that
to populate libgcc recipe later. This mechanism does not work
for gcc 4.7/trunk since now libstdc++ needs access to build tree
of libgcc. This patch stashes the gcc-cross build tree
and then reuses this in libgcc as well as in gcc-runtime
recipe builds.

Now we build libgcc in the libgcc recipe instead of just
using the prebuilt install tree

core-image-minimal build/run tested on all qemu machines

(From OE-Core rev: 7cf9f0597648c0bdaa080976d74acfbfc4c8443d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:23 +01:00
Khem Raj
f66cc57e72 gcc-configure: Pass distinct target flags
When building gcc-cross-canadian libgcc is built using
headers from gcc-crosssdk and not the target sysroot
because we do not pass proper CFLAGS for target bits
so it ends up using CFLAGS that were meant for compiling
canadian gcc itself. It does not show up as a problem
when building SDK with eglibc because eglibc-nativesdk
and eglibc have identical headers. The problem shows
up clearly when you try to build uclibc based meta-toolchain
since then nativesdk libc and target libc are different

(From OE-Core rev: 0e904103e9bd7fdb31bfcc129067511f9f45701b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:23 +01:00
Saul Wold
67fbab3dd5 gcc: Add plugins package for ARM, fix /usr/incude packaging
WARNING: For recipe gcc, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/include
WARNING:   /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc
WARNING:   /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc/config
WARNING:   /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc/config/arm
WARNING:   /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc/config/arm/bpabi-lib.h
(From OE-Core rev: aff48c514174ba5fa3bb1e5df5293376b567da09)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:11 +01:00
Saul Wold
af7caf9250 libgcc: Package additional *crt*.o files for PPC
WARNING: For recipe libgcc, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/lib/powerpc-poky-linux/4.6.4/ecrti.o
WARNING:   /usr/lib/powerpc-poky-linux/4.6.4/ncrti.o
WARNING:   /usr/lib/powerpc-poky-linux/4.6.4/ecrtn.o
WARNING:   /usr/lib/powerpc-poky-linux/4.6.4/ncrtn.o
(From OE-Core rev: b17c02d223455680324227f8de17feb8ab3e7b68)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:10 +01:00
Richard Purdie
2ddf7d3e83 gcc-configure-common.inc: Stop gcc looking at build system paths
There were puzzling failures when you make a force recompile of any gcc
component. The error was in do_configure with cross-compilation badness
being detected in config.log files.

gcc is different in that many of the config.log files are generated during
the do_compile phase. This means this host contamination issue has always
been present but only shows up on a rebuild.

The fix is to force the appropriate configuration variable to "none required"
then gcc won't look in the bad locations.

[YOCTO #2279]

(From OE-Core rev: e7135f14f3ef37f93f5c28b319464f3d6dd9b8da)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 18:09:57 +01:00
Richard Purdie
22aac28f28 gcc-4.6: Add fix for relocation problem and ccache
If the toolchain is reused from sstate and ccache is installed, build failures
were occuring due to gcc trying to access the original sysroot rather than the
new one, particularly if the old sysroot existed but was not readable by the
current user.

This turns out of the an issue inside gcc to do with preservation of the sysroot
option. See the gcc patch for more details. It only triggers when preprocessed
sources are used which happens when ccache is used.

The same issue occurs with c++ and c++-cpp-output so the same fix is applied there.

[YOCTO #2074]

(From OE-Core rev: d3a3e81869631ba69874f6fc172240e3aac388f5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 14:26:52 +01:00
Nitin A Kamble
834a17d6d8 gcc-cross-intermediate: fix do_install for x32
This Fixes [Ycoto #2223] bug.

The gcc osdir is obtained in the do_install by invocation of
command "gcc -print-multi-os-directory". For x32 it returns gcc
osdir for the default abi which is x86_64. Fix this by adding
target abi parameter to the gcc command line to get correct gcc
osdir with invocation of command "gcc -mx32 -print-multi-os-directory"

(From OE-Core rev: e65b6a4282d5c4882d0565b79ccba99db90161ff)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:52 +01:00
Richard Purdie
7fcb7c46b6 gcc-cross-intermediate: Ensure we move the libraries from the correct location
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>
2012-03-28 16:53:08 +01:00
Lianhao Lu
2e4ca98b7c gcc-cross-canadian: Clean non shipped empty directories.
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>
2012-03-27 13:26:35 +01:00
Lianhao Lu
1c0afb853a gcc-cross-canadian: Fixed packaging warnings.
Removed non-shipped empty directories:
 -${prefix}/${TARGET_SYS}
 -${libdir}/../lib
 -${prefix}/include

(From OE-Core rev: 04a08bf7e8d7cf4b6b844a88173b5d1d7917c8af)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-26 12:13:03 +01:00
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