Commit Graph

447 Commits

Author SHA1 Message Date
Robert Yang
e53c8719ba gcc-source.inc: fix STAMPCLEAN to avoid race issue
Fixed race issue when build more than one gcc-source and inherit
rm_work, for example:
$ bitbake gcc-source-4.9.2 gcc-source-5.1.0

File "/path/to/bitbake/lib/bb/build.py", line 512, in exec_task
  return _exec_task(fn, task, d, quieterr)
File "/path/to/bitbake/lib/bb/build.py", line 489, in _exec_task
  make_stamp(task, localdata)
File "/path/to/bitbake/lib/bb/build.py", line 599, in make_stamp
  os.unlink(name)
OSError: [Errno 2] No such file or directory: '/path/to/tmp/stamps/work-shared/gcc-4.9.2-r0.do_rm_work_all.02cf1ed9b79d4edb0a51d3b913b7f9ba'

This is because make_stamp() uses glob.glob() to remove the old stamps
before create the new one, when gcc-source-5.1.0 removes gcc-4.9.2-r0's
stamp, we may get the error.

We can't use deltask do_rm_work_all as do_rm_work since it is a
recrdeptask, otherwise:
ERROR: Command execution failed: Traceback (most recent call last):
  File "/path/to/bitbake/lib/bb/command.py", line 102, in runAsyncCommand
    commandmethod(self.cmds_async, self, options)
  File "/path/to/bitbake/lib/bb/command.py", line 324, in generateDotGraph
    command.cooker.generateDotGraphFiles(pkgs_to_build, task)
  File "/path/to/bitbake/lib/bb/cooker.py", line 847, in generateDotGraphFiles
    depgraph = self.generateTaskDepTreeData(pkgs_to_build, task)
  File "/path/to/bitbake/lib/bb/cooker.py", line 672, in generateTaskDepTreeData
    rq.rqdata.prepare()
  File "/path/to/bitbake/lib/bb/runqueue.py", line 587, in prepare
    generate_recdeps(dep)
  File "/path/to/bitbake/lib/bb/runqueue.py", line 575, in generate_recdeps
    add_resolved_dependencies([taskData.tasks_fnid[t]], tasknames, newdeps)
TypeError: list indices must be integers, not NoneType

Update STAMPCLEAN to contain ${PV} to fix the problem.

(From OE-Core rev: 9099d46a46ee511d1b7e496472c5b973e8e8feaf)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-11 23:59:18 +01:00
Andre McCurdy
7a4c52c7ae gcc-source.inc: set PATH for gnu-configize, not for cd
Setting OE's PATH for the 'cd' command has no real effect.

In the normal case it has no effect for the gnu-configize command
either (since OE's PATH is already set in the context which runs
do_preconfigure) but it may be useful when manually re-running a
failed gnu-configize commandline copied from an error log, etc.

(From OE-Core rev: 4321fce801daea50baaaae9ed6a141c6e7712834)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-29 10:17:15 +01:00
Robert Yang
a3eda321a6 gcc-5: fix installed-vs-shipped
gcc-5.1.0: gcc: Files/directories were installed but not shipped in any package:
  /usr/bin/i586-poky-linux-gcov-tool

(From OE-Core rev: 3e2ca755624c13a8249ac66672ebf4d8d7217e62)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-14 11:43:56 +01:00
Richard Purdie
f65a6821f4 gcc5: Add back g++ sysroot patch
Without this, g++/c++ compilation doesn't work on target due to missing
header files. Automated sanity tests fail. Add back the gcc4 patch to
address this.

(From OE-Core rev: 93d8becf19cc72df650d3aaff7e3ea188bd6e09e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-14 11:43:56 +01:00
Richard Purdie
2d09cb28f2 gcc5: Add PR65779 patch to fix powerpc compile issues
This fixes compile issues on powerpc with gcc 5 which show up with
errors like:

| make[2]: Entering directory '/media/build1/poky/build/tmp/work/ppc7400-poky-linux/xprop/1_1.2.2-r0/build'
| powerpc-poky-linux-gcc  -m32 -mhard-float -mcpu=7400 --sysroot=/media/build1/poky/build/tmp/sysroots/qemuppc -Wall -Wpointer-arith -Wmissing-declarations -Wformat=2 -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wbad-function-cast -Wold-style-definition -Wdeclaration-after-statement -Wunused -Wuninitialized -Wshadow -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -Wlogical-op -Werror=implicit -Werror=nonnull -Werror=init-self -Werror=main -Werror=missing-braces -Werror=sequence-point -Werror=return-type -Werror=trigraphs -Werror=array-bounds -Werror=write-strings -Werror=address -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -fno-strict-aliasing  -O2 -pipe -g -feliminate-unused-debug-types  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o xprop dsimple.o clientwin.o xprop.o -lX11
| /media/build1/poky/build/tmp/sysroots/qemuppc/usr/lib/../lib/libX11.so: undefined reference to `.LCL2'
| collect2: error: ld returned 1 exit status

[YOCTO #7721]

(From OE-Core rev: 1702f52b5860336d36fb912fbe2851437e74a7d5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-12 13:10:17 +01:00
Khem Raj
4e5d6c71c8 gcc-4.9, gcc-5: Use variable SYSTEMLIBS_DIR instead of hardcoding it for aarch64
Change-Id: I54dc82a569f02d489137d88f16d6b768c4ab779b
(From OE-Core rev: dd45caac51868263bc7e7911a9c1ac96141ed474)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-09 22:26:44 +01:00
Khem Raj
9ba0bf8b6a gcc: Add 5 recipes
Drop backports obviously
additionally drop local patches around
parallel compilation since it got reworked upstream

To select set

GCCVERSION = "5.1%"
SDKGCCVERSION = "5.1%"

in local.conf

Change-Id: Icdfa61017a617244128f361b022e7c8f1f9e0610
(From OE-Core rev: 4bc4acc67e5d7b3f27afadeda5710f9ba5f627d2)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-05-09 22:26:44 +01:00
Richard Purdie
bb77a3687b libgcc-initial: Correctly reflect libgcc LICENSE
In an effort to clean up some of the license handling, correctly set the
LICENSE of libgcc-initial to be the same as libgcc which has a GPLv3
exception.

(From OE-Core rev: a3022665600bb3c08f8d4212ffa3516578e86d7c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-30 23:04:12 +01:00
Richard Purdie
7b88042b80 gcc-shared-source: Add PV to PN
This means you can have one gcc version for some gcc recipes
(e.g. crosssdk/nativesdk) and another gcc version for target code.

Also remove the preferred version entry from the default toolchains
list since the version issue is now handled automatically.

We also need to specifically handle gcc-source in the license handling
code since expanding ${PV} in the base class isn't possible. Since
gcc-source doesn't generate any packages directly this shouldn't be
an issue and whitelisting in this way is easiest (and matches the
rest of the toolchain handling).

(From OE-Core rev: 67db7182faf6742b0d971d61d8c5ba34f69d2e12)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-30 23:04:12 +01:00
Stefan Müller-Klieser
da1a2888f6 gcc-4.9: backport from gcc trunk r212178
When compiling meta-toolchain-qt5 on cortexa8, the compiler throws an
internal compiler error:

...
qttools-opensource-src-5.3.2/src/linguist/shared/po.cpp:
In function 'bool loadPO(Translator&, QIODevice&, ConversionData&)':
qttools-opensource-src-5.3.2/src/linguist/shared/po.cpp:717:1:
internal compiler error: in add_stores, at var-tracking.c:6000
...

Tracking this down led to https://bugs.linaro.org/show_bug.cgi?id=534
It seems the bug is well know and fixed upstream. So backporting from
trunk seems to be the right solution. This fixes the compiler problem
on cortexa8 and does not seem to be very invasive. The original commit
can be found at:

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212178 138bc75d-0d04-0410-961f-82ee72b054a4

(From OE-Core rev: 6751ef78694783fb86e55c77afefae750ab1b610)

Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-24 11:06:56 +01:00
Robert Yang
3a6f221634 gcc-target: remove gcc-plugin-dev from PACKAGES
There should be only one dev and dbg package.

(From OE-Core rev: b38119f4dc69421605355f92954ef39dad93b419)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-21 07:20:26 +01:00
Robert Yang
3189c5c9cf libgcc: remove libgcov-dev from PACKAGES
There should be only one dev and dbg package.

(From OE-Core rev: 1e9ccec936554c69ede04babee9955f25b296588)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-21 07:20:26 +01:00
Khem Raj
3ed754b375 gcc-4.8: Upgrade 4.8.2 -> 4.8.4
Drop already applied patches
This fixes random ICE seen on mips with large c++ files ( webkit )
Then there are several backports

Change-Id: Ie1c3acda2fda1b6cbd356416c860938f6cbd758e
(From OE-Core rev: ca228b117abe3dc40c996a006c9cbea91c17ccea)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-08 10:53:31 +01:00
Richard Purdie
c0e32b475e gcc: Tweak arm multilib endian patch for baremetal
In a baremetal build, TARGET_ENDIAN_OPTION isn't set leading to build
failures. Add in ifdefs to avoid this.

(From OE-Core rev: 3a50ec5f0142cc3a74b405dbdff264f8f862edfa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-03-31 22:23:14 +01:00
Richard Purdie
92739edc9d gcc-cross-canadian: Enable stripping and packaging of binaries
This seems to have been disabled since the dawn of time for no good reason.
Enable the .debug stripping and packaging allowing for a smaller SDK.

(From OE-Core rev: bbaf97ba38329b5221e6d4d0d18f20e6b7d6fd91)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-03-20 23:56:06 +00:00
Bian Naimeng
5818c0dc31 gcc-source: fix bug to avoid building error.
gcc-source don't do do_package_write_rpm, so we should set
PACKAGES = "" to avoid the building error if we want generate srpm,
otherwise, we get the error as below.

ERROR: Task do_deploy_archives in meta/recipes-devtools/gcc/gcc-source_4.9.bb \
       depends upon non-existent task do_package_write_rpm in \
       meta/recipes-devtools/gcc/gcc-source_4.9.bb

(From OE-Core rev: 704fd8f1efbd7fa9368cfe4f956abf24cd58664e)

Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-03-10 10:47:40 +00:00
Khem Raj
a55d5374e0 gcc: Upgrade 4.9.1 -> 4.9.2
Delete backported patch which are present in 4.9.2

backport patched from upstream gcc trunk to fix

[YOCTO #6824]

Change-Id: Ia0067940471d4c5d9d62089bf6f18f3a9c2bfedd
(From OE-Core rev: bdd8d7db74ad6927cd54f38c3e87246a36b2c319)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-15 21:58:29 +00:00
Robert Yang
146f28ad19 gcc-sanitizers: check gcc-build-internal before link
The ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$mtarget may not exist
when use the external sdk toolchain, we need check before link for it.

Fixed:
run.do_configure.12538: 149: cd: can't cd to sysroots/x86_64-linux/usr/include/gcc-build-internal-x86_64-wrs-linux

(LOCAL REV: NOT UPSTREAM) -- Sent to oe-core on 20150204

(From OE-Core rev: 82166e514438eb1b562f2a4dc2f9f8fecf3f60df)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-15 21:58:25 +00:00
Richard Purdie
ae32fed70e gcc-target: Don't install target gcc libdir files
Installing /usr/lib/gcc/* means we'd have two copies, one from gcc-cross
and one from here. These can confuse gcc cross where includes use #include_next
and builds track file dependencies (e.g. perl and its makedepends code).
For determinism we don't install this to the sysroot, ever and rely on the
copy from gcc-cross.

[YOCTO #7287]

(From OE-Core rev: 15b3324b769dc92e1b0d4b9da9fbfccbc8dde9dd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-13 14:49:37 +00:00
Robert Yang
775d467fe2 gcc-configure-common.inc: remove ac_cv_path_SED
It is not needed any more since sed-native had been dropped.

(From OE-Core rev: 289e433f8d0e4b5a710094e3a3c0d8e77e82e50d)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-08 08:00:25 +00:00
Mark Hatle
3bf5b6de3e arch-mips.inc: Change definition of TRANSLATED_TARGET_ARCH
[YOCTO #7230]

In certain system configurations TRANSLATED_TARGET_ARCH will not
expand in the right order for gcc-cross-candian-mips64n32 to be
generated properly.

This will cause SDKs to fail to generate properly.

Changing the global definition of TRANSLATED_TARGET_ARCH always
expands the ABIEXTENSION, which causes the OVERRIDES to pick it up
as well.  This effectively defines a new class of overrides for the 'n32'.

The side effect is that we need to duplicate some mips64 overrides, and
redefine others that were previously 'n32' or 'mips64' exclusive to have
the correct semantics.

(From OE-Core rev: 4b3a2b703b20583bd107f00a297d972e9bfb514a)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-29 15:36:49 +00:00
Dan McGregor
6a41dd1bd1 gcc-sanitizers: fix licensing
The sanitizer runtime library is dual-licensed under the NCSA
and MIT licenses.

Also make nativesdk-gcc-sanitizers use SDKGCCVERSION by default
instead of GCCVERSION

(From OE-Core rev: 4ed21998827060745d2858e2d6c121baf823e64a)

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-29 15:36:49 +00:00
Paul Eggleton
8bef63373d gcc: ensure target gcc headers can be included
There are a few headers installed as part of gcc-runtime (omp.h,
ssp/*.h). Being installed from a recipe built for the target
architecture, these are within the target sysroot and not
cross/nativesdk; thus they weren't able to be found by gcc with the
existing search paths. Add support for picking up these headers
under the sysroot supplied on the gcc command line in order to
resolve this.

Thanks to Richard Purdie for giving me a number of pointers during
fixing this issue.

Fixes [YOCTO #7141].

(From OE-Core rev: 5c87bb9ac2b35b3f8cf2b7d3e4507e7013115162)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-29 15:36:47 +00:00
Mark Hatle
959759bfb9 gcc/libgcc-common.inc: Add missing 'fakeroot' to two tasks
Without the fakeroot flag the two tasks may create files or
symbolic links that end up being owned by the user and not
root:root as expected.

(From OE-Core rev: 7e9fd9d34a540fdfc1243d059d1f13f1d09864d2)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-29 15:36:47 +00:00
Daniel Dragomir
46dba26374 gcc-runtime: Remove libgfortran data from receipe
Remove libgfortran packages from PACKAGES list as long as libgfortran
has separate receipe since commit

5bde5d9b39
gcc: Allow fortran to build successfully in 4.8

Otherwise, when fortran support will be enabled in the compiler, both
lingfortran and gcc-runtime receipes will create the same files and will
try to install them. This will cause errors:

ERROR: The recipe libgfortran is trying to install files into a shared
area when those files already exist. Those files and their manifest
location are: ...
Please verify which recipe should provide the above files.

(From OE-Core rev: 872342fa3d08edede4a0105ac3ddb0f2ae3224b4)

Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-23 11:36:31 +00:00
Dan McGregor
166015c809 gcc-sanitizers: Enable GCC sanitizers
AddressSanitizer is a fast memory error detector.
ThreadSanitizer detects data races.
UBSanitizer detectes undefined behaviour.

All consist of compiler instrumentation and a run-time library.
The compiler instrumentation was already enabled, this builds
the run-time library component.

(From OE-Core rev: 1709bf0c3a84bb04bc52e9104ad8e09fba6c6f91)

Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-23 11:36:29 +00:00
Mark Hatle
3923f7ea0b gcc: Disable aarch64 multilib options
We want to revert to default gcc behavior to support oe-core's ability
to change the libdir.

(From OE-Core rev: 7ea9e87217c78a20cebcb16a23bfd412e276440f)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-23 10:18:19 +00:00
Joe Slater
fc518325c6 gcc runtime: specify license on a per package basis
It can be alarming to attempt to exclude GPLv3 from an
image but find that libstdc++ and libgcc still show it.
We indicate the license for each package to show libraries
that really are just GCC-3.0-with-GCC-exception.

(From OE-Core rev: 5db535a91edea439c14e75726acd23e64bb1e2ea)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-19 18:08:00 +00:00
Ross Burton
450651b788 gcc: stub do_fetch instead of removing it
Whilst gcc doesn't have any source to fetch, it still needs a fetch task so that
a world fetch can run without errors.  So instead of deleting the fetch task,
stub it.

(From OE-Core rev: 8e68ebbddc2bc41eb6cb607c51d6a80c54c4199d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-05 18:01:07 +00:00
Richard Purdie
f82156640b gcc: Rework shared work
The current implementation of shared work for gcc is at best confusing. It relies
on the fetch/unpack/patch tasks having exactly the same stamps and if this gets
broken for some reason, its hard to figure out what the problem is. It also
leads to complex code in bitbake.

The benefits of shared work for gcc are clear but a better approach is needed. This
patch adjusts things so that a single new recipe (gcc-source) provides the
fetch/unpack/patch/preconfigure tasks, the rest of gcc simply depends on these tasks
and have no fetch/unpack/patch tasks of their own.

This means we should get the significant benefits (disk usage/performance) of the
single source tree but in a way which has less potential for problems and is
easier for people to understand. The cost is an extra recipe/some inc files
which is probably a good tradeoff.

(From OE-Core rev: ceaa0a448dc5ebddb4f7fb94fb8a503a1c0248c3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-03 12:23:56 +00:00
Richard Purdie
fd9fc495f1 gcc-4.8: Drop unused patch
I disabled this patch as it became obsolete some time ago but forgot to
remove it, this cleans things up.

(From OE-Core rev: 11dc68ef46aa0e3f28473c0decb4034e0d00fcab)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-11-28 14:02:56 +00:00
Hongxu Jia
c360dcbda8 gcc-4.9: fix the compile failure of 'defaults.h' not found
While compiling gcc-crosssdk-initial-x86_64 on some host, there is
occasionally failure that test the existance of default.h doesn't
work.
...
| tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/gcc/calls.c:1240:
error: 'STACK_CHECK_MAX_VAR_SIZE' was not declared in this scope
...

The reason is tm_include_list='** defaults.h' rather than
tm_include_list='** ./defaults.h'

So we add the test condition for this situation.

(From OE-Core rev: fec684512c6f934d7a847b0c9f5151da81426910)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-11-20 14:08:13 +00:00
Mark Hatle
0ee5eb295c gcc: Fix intermittent failures during configure
If configure or any of the components it uses from the shared work directory
change, do_configure may fail.

An existing do_preconfigure was created to handle these conditions, but
a 'sed' operation was missed, and a call to gnu-configize was also missed.

(From OE-Core rev: 21c2cfff14442cf224e3568bdbb9bcd4070be247)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-11-09 10:21:20 +00:00
Jackie Huang
b7ae852b69 gcc: backport two patches to fix ICE in dwarf2out_var_location
The first patch fixes the ICE in dwarf2out_var_location, at
dwarf2out.c.

r212171:
    * except.c (emit_note_eh_region_end): New helper function.
    (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
    emit EH_REGION_END note.
    * jump.c (cleanup_barriers): Do not split a call and its
    corresponding CALL_ARG_LOCATION note.

But it introduced a regression issue:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63348

so backport the fix for the regression as well:

r215613:
    PR rtl-optimization/63348
    * emit-rtl.c (try_split): Do not emit extra barrier.

(From OE-Core rev: de52db1b1b0dbc9060dddceb42b7dd4f66a7e0f3)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-11-06 16:45:19 +00:00
Richard Purdie
678e8798eb gcc: poison default sysroot path
Various pieces of the code assume that the --sysroot option gets passed
into the compiler tools. By having a "sane" default, we don't always
spot when this occurs and this can later show up as breakage in sstate,
or in usage of the external toolchain.

We've long since talked about poisoning the default such that it will
break unless the correct option is specified. This patch does just that.

If this patch causes something to fail to build, it most likely means
the various compiler flags and commands are not correctly being passed
through to the underlying piece of software and that there is a real
problem that needs fixing, its not the fault of this patch.

(From OE-Core rev: 04b725511a505c582a3abdf63d096967f0320779)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-10-30 13:01:21 +00:00
Saul Wold
0fb3552632 gcc: backport patch for gcc bug 61144
This fixes gcc bug 6144, which in my case exhibited itself as a kernel
module that failed to load. This was because static platform_data
structures were being corrupted with the optimiser being set to any
value other than -O0.

Originally-submitted-by: Peter Urbanec <openembedded-devel@urbanec.net>

(From OE-Core rev: 365221f7285c0e392f573deaab3b1e00b12bc293)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-10-11 08:11:03 +01:00
Richard Purdie
64eca273c6 gcc-runtime: Add linux-gnuspe symlink to fix c++ headers
Some architectures can mix different TARGET_OS values, in most cases
we just use one but in the ppc case, can use two different values. In this
case, to use one toolchain with both, we need to ensure the symlinks exist.

This isn't ideal but does fix the ppc toolchains for the release, after
which better ways of handling this can be investiaged. Without this, failures
in the C++ toolchain are seen.

(From OE-Core rev: 112641117f1152bad8a806f1aa872a67575d5316)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-10-06 15:15:51 +01:00
Richard Purdie
14ace86d50 gcc-configure/gcc-common: Move preconfigure definition to common include
There is a race where:

NOTE: recipe libgcc-initial-4.9.1-r0: task do_configure: Started
NOTE: recipe gcc-runtime-4.9.1-r0: task do_preconfigure: Started

| checking build system type... /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb/build/build/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/libgcc/../config.sub: line 1711: syntax error near unexpected token `;;'
| /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb/build/build/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/libgcc/../config.sub: line 1711: `		;;'
| configure: error: /bin/bash /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-deb/build/build/tmp/work-shared/gcc-4.9.1-r0/gcc-4.9.1/libgcc/../config.sub x86_64-linux failed
| WARNING: exit code 2 from a shell command.

so we need to make sure the preconfigure task executes in all shared
work contexts.

(From OE-Core rev: 3c30331d6eaf804b83a6d27189a12efc94310e91)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-16 22:14:12 +01:00
Khem Raj
09e3e78999 recipes: Remove references to eglibc
change use of eglibc related variabled to glibc equivalents

(From OE-Core rev: fd15d6e0c8da75951a91d4467eda23c229b1026d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-01 18:03:05 +01:00
Khem Raj
4ac5071e97 gcc-cross-initial: Put limits.h in gccdir/include
musl e.g. is configured to not use fixed-include
which is an improvement btw. but libgcc-initial configure
has tests which probe for limits.h and since we put
it in include-fixed/ dir and that dir does not appear
in gcc's internal default search path the configure tests
for CPP detection fail and libgcc-initial can not be compiled.

(From OE-Core rev: 3bdc225a9e622e9d594944833964fe396200db01)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15 18:21:53 +01:00
Peter A. Bigot
c0a071e16e gcc: update compiler architecture to match gcc-runtime (armv6, armv7a)
The gcc-runtime recipe builds the gcc libraries including libstdc++ with
$TARGET_CC_ARCH flags, which include -march=FOO flags that affect
whether atomic instructions are available.  This causes an ABI
incompatibility when the compiler by default generates code for less
capable architectures.  For example, gcc-runtime libraries on a
Cortex-A8 are built with a different C++11/C++14 mutex implementation
than is used code compiled outside OE and without architecture-specific
flags.

This commit fixes the problem specifically for ABI issues related to
atomic instructions available in ARMV6 and subsequent architectures.
Other ABI incompatibilities may remain in other architectures.

See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62100

(From OE-Core rev: 0ba6ab39f187ecd4261f08e768f365f461384a3a)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15 18:21:50 +01:00
Peter A. Bigot
6573521f08 gcc: backport patch affecting Linux kernel builds
A long-standing bug in gcc turns out to cause problems with unpatched
Linux versions due to improved optimization enabled by gcc 4.9.  The
upstream fix missed the gcc-4.9.1 cut-off.  It's also been applied
upstream to the 4.8 branch so is being added for OE's 4.8 as well.

(From OE-Core rev: 06f911894a367f395139c2b0d6c2ba6371398478)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15 18:21:50 +01:00
Khem Raj
75191fcd7e gcc: Abstract long double configuration into python function
musl does not support IBM 128 long double for ppc, instead of
doing complex overrides move it into a pythong snippet which
is easier to read and more compact.

(From OE-Core rev: e7011429e40ae96b9c9f1e7f3c6f4c1f1102607f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15 18:21:50 +01:00
Peter A. Bigot
14a2d1eaa1 sdk: change EXTRA_OECONF_FPU to EXTRA_OECONF_GCC_FLOAT
This variable is used to ensure the proper version of --with-float=FOO
is passed to gcc's configure script.  gcc also has a --with-fpu=FOO
option that means something different.  To avoid confusion, change the
names to be consistent.

(From OE-Core rev: c17d883fa99b6967d83c3796d22fc0c1dbe704e6)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15 18:21:50 +01:00
Peter A. Bigot
79e235c5ee gcc-target: make --enable-clocale consistent with gcc-runtime
(From OE-Core rev: 9ec30be63ad6d991646a7ce0ee22acdad7a81184)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15 18:21:50 +01:00
Peter A. Bigot
7a17a0dced gcc: remove outdated configuration option
--enable-libunwind-exceptions was removed from gcc at release 3.4.3
about ten years ago.

(From OE-Core rev: 285d3579727177e6962d7ad16677429e7dec65f4)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15 18:21:49 +01:00
Peter A. Bigot
46a812f319 gcc-4.9: Ensure c++ includes are in /usr/include/c++/${BINV}
Apply to gcc 4.9 the recent fix to the --with-gxx-include-dir override.

Original OE-Core rev: 5a2ff3e8f7cd7a47a5ab4e581847ecc4df87fca

(From OE-Core rev: 5fec278316fa9466241b9134c4553bad6db1c1a9)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15 18:21:49 +01:00
Peter A. Bigot
7b8b0af1d8 gcc: remove inappropriate patch
0037-gcc-4.8-PR56797.patch was originally added as an OE backport during
4.8.0.  Upstream merged it in 4.8.1, and it was present in 4.9.0.

The original patch still applies to 4.9.1 (and presumably 4.8.2), but
now is modifying store_multiple_sequence instead of
load_multiple_sequence (the two functions are nearly identical).  It may
or may not be necessary in store_multiple_sequence, but absent a bug
report upstream supporting its application in this case, or a least an
updated comment and upstream status in the patch, I think this patch
should be dropped.

(From OE-Core rev: c89443e0f98249b9f9ea33f686c27babe35fd024)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15 18:21:49 +01:00
Peter A. Bigot
6d78f392f5 gcc: recipe whitespace changes
Consistent use of whitespace in multi-line assignment, with special
focus on OECONF modifications.  Quotes on separate lines, four-space
indentation, one value per line.

(From OE-Core rev: d971db8b2259e4c35b871cccf130fba193849560)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15 18:21:49 +01:00
Khem Raj
ba4eb6d046 gcc-cross-initial: Use good old bfd linker by default
We already indicate our intentions to use ld.bfd by
specifying it in configure using --with-ld which works
ok unless here where we manually create symlinks to
binutils-cross components, when we use ld-is-gold feature
default ld points to gold and this symlinking has to be
aware of the fact that we configured binutils and gcc-cross to use
gold as default ld but gcc-cross-initial uses BFD ld

This would be visible when using gold and rebuilding
eglibc

(From OE-Core rev: 77cab553ee6caa940e21cca46ff134f84e65c171)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15 18:21:49 +01:00