Commit Graph

307 Commits

Author SHA1 Message Date
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