Drop kconfig and options-group support
Forward port cross-localedef support
Assume ssp support in libc when building gcc-initial
(From OE-Core rev: 9c3d461c4d54d684b38ec4c038a1c3c2fb9923f0)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Backport a fix from GCC mainline, which fixes libpcre 8.38 and expat 2.1.0
build on nios2. The example of the fixed error follows:
| ./nios2-poky-linux-libtool --silent --mode=compile nios2-poky-linux-gcc -mel -mhw-div -mhw-mul --sysroot=/mnt/work/Yocto/build-nios2/tmp/sysroots/10m50 -I../expat-2.1.0/lib -I. -O2 -pipe -g -feliminate-unused-debug-types -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H -o lib/xmltok.lo -c ../expat-2.1.0/lib/xmltok.c
| {standard input}: Assembler messages:
| {standard input}:4988: Error: r31 cannot be used with jmp; use ret instead
| {standard input}:9703: Error: r31 cannot be used with jmp; use ret instead
| {standard input}:20068: Error: r31 cannot be used with jmp; use ret instead
| {standard input}:24020: Error: r31 cannot be used with jmp; use ret instead
| Makefile:196: recipe for target 'lib/xmltok.lo' failed
| make: *** [lib/xmltok.lo] Error 1
| WARNING: exit code 1 from a shell command.
(From OE-Core rev: 24b0f08ae4fbaf285d494ab53a3b168a6dd17b20)
Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These issues are fixing building gcc for target, ppc issue
helps in fixing discrepency between gcc cmdline and linker cmdline
(From OE-Core rev: 6af50d8865335aed68fb4f9b319edb81ce93a04e)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc configure fails to set these settings correctly
on musl based builds
(From OE-Core rev: f1cdd7bf1d9351005867b5c77c05fdddfc9656fd)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When enabling the secutity flags on musl based targets the builds fail
due to libssp(gcc-runtime) build asking to link with libssp and
libssp_nonshared.a when configuring libssp itself. This does not work
with musl since it does provide ssp implementation but not like glibc
where these libraries are separate to libc
Fix the nios2 patch with upstream status while at it and generate the
patch after applying to my tree
(From OE-Core rev: 77fb841f2e747dc7fb5e9234d870a7a32a74d09b)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Configuring gcc with --enable-target-optspace (which causes gcc to
append "-g -Os" to the default CFLAGS_FOR_TARGET and so force libgcc
etc target libraries to always be optimised for size) dates back to
the very first commit in oe-core git in 2005 (for gcc 3.4.3).
Configuring gcc with --enable-target-optspace is not done widely
elsewhere (it's not used for Ubuntu or Fedora host gcc, the Linaro
binary toolchain or in Buildroot since early 2015). Sometime around
gcc 4.5.x it caused problems for powerpc and so was disabled for that
architecture:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810
This patch removes --enable-target-optspace completely (ie powerpc is
no longer a special case) and allows optimisation of libgcc etc to be
controlled directly by the flags present in TARGET_CFLAGS.
(From OE-Core rev: 686b266506a1a56fb68ab0f00d658787dd7fe4ce)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The Cortex M1, M3 and R4 CPU tuning files are poorly tested (if at
all). They have no obvious users either inside or outside oe-core.
Until OE officially gains support for CPUs without an MMU, these
tuning files are probably better maintained outside of oe-core (e.g.
in a separate meta-nommu layer).
(From OE-Core rev: 7a1445c55de904115b950c8e50432a9f11f02208)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
G4 does not have SPE, so we make that explicit in the tune files and
since we emulate G4 when building Qemu, we ensure it for qemuppc as
well.
GCC config for powerpc-linux is made to include SPE by default which is
equivalent if the tripet was powerpc-linux*spe, this forces gcc to
configure assembler to enable -mspe by default, when we do that then the
kernel fails to compile with binutils 2.26, since newer assembler is
smart to detect the tlbia instructions are not compatible with SPE and
hence the kernel build breaks rightly. We configure the kernel for G4 as
well where it enables tlbia instrucitons rightly so because it thinks
its being configured for power4. So we keep the options but do not force
-mspe down to assembler as default.
(From OE-Core rev: 7a51776a830167e43cbd185505f62f328704e271)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
PATCH_GET is no longer exported by bitbake.conf, so no longer needs
to be pruned from the gcc-cross do_compile() environment.
(From OE-Core rev: 386d1617f1e6e293506b751faa41ff8c37348973)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The cross-canadian compiler needs the nativesdk compiler to build
but for some reason this was missing. Add the missing dependency.
(From OE-Core rev: 77fcdfdc83f01f1ff0ae310ebb7bffbdb4330156)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The use of immediate expansion can cause issues when trying to
override variables, further the removal override syntax is clearer
than oe_filter_out () — switch to using removal override syntax
instead.
(From OE-Core rev: 19995268da27af93af6f718fab0434178a1079ce)
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of building a shadow libstdc++-v3 directory with symlinks to the sysroot
libstdc++-v3.la, fiddle the Makefiles so that it doesn't attempt to link to a
in-tree library at all.
This fixes builds where .la files are not being installed into the sysroot at
all.
(From OE-Core rev: f0f814a674faef2160fb8a041b63169c74da108e)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In some recipes overly-split -dbg packages were merged into PN-dbg. Unless
there's a very good reason, recipes should have a single -dev and -dbg package.
(From OE-Core rev: a3b000643898d7402b9e57c02e8d10e677cc9722)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With the autodebug package generation logic, specifically setting FILES_${PN}-dbg
isn't needed in most cases, we can remove them.
(From OE-Core rev: 3ab59d49dd7c18e194b58d1248b4b87709b5a738)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It turns out writing the same list of packaging tasks multiple
times in multiple places is error prone. Move this to a new class
'nopackages", migrate existing users and add glibc-initial and
libgcc-initial since we don't want packages for those recipes.
This means the sstate for those recipes won't be installed, saving
small amounts of build time and bandwidth.
A reference to the old package_write task is also dropped.
(From OE-Core rev: cece583d58f82a50c3a4eac876eb326ac3b8f5e5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Most of these patches are already in gcc 6.0/master but we still need them for
older gcc, they have been tested in meta-musl for quite some time
(From OE-Core rev: 30a0cc2ef72399b84da4903e697f258f79852fc9)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Import patch fixing a bug that caused ICE when compiling some packages
(e.g. ICU) in Thumb-1 model.
(From OE-Core rev: 68062674b853af750d0fdafb06090ed2f75fa0a4)
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Import patch fixing a bug that caused ICE when compiling some packages
(e.g. ICU) in Thumb-1 model.
(From OE-Core rev: 3c8ad9e008a1786ff95202f413e267756a5e783f)
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When a project is configure to use sstate cache and has the host tool sysroot
cleaned, gcc-cross-initial may fail to be configured due to lack of
gnu-configize tool.
gcc-cross-initial recipe has autotools dependency inhibited, and the same flag
variable also excludes the gnu-config-native. Though there is an indirect
dependency through libmpc-native, it's not safe with sstate cache being used.
Moreover, gnu-config-native requires a perl package from autoconf-native to
run, otherwise it will fail with "Can't locate Autom4te/ChannelDefs.pm in @INC"
message.
This patch makes both dependencies explicit for gcc-cross-initial's
configuration.
(From OE-Core rev: 18a913e54b40a1654d0967290088be5e7fcdd6f6)
Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch is based on the patch for gcc-5.2 (41cbfd7af6)
When doing a FOR_BUILD thing, you have to override CFLAGS with
CFLAGS_FOR_BUILD. And if you use C++, you also have to override
CXXFLAGS with CXXFLAGS_FOR_BUILD.
Without this, when building for mingw, you end up trying to use
the mingw headers for a host build.
The same goes for other variables as well, such as CPPFLAGS,
CPP, and GMPINC.
(From OE-Core rev: e6dc4b2ac0cc6417c0e0ddcdcbe3f334581af8fc)
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We have 5.2 and 4.9, we don't really need 4.8 now and it can be moved
out to other layers if anyone still wants/needs it.
(From OE-Core rev: 6f98c39418c60b7c0b25b30983d2e5257158a6a4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The gcc default, bss-plt, will cause errors when using the prelinker. All
other distributions that I am aware of are using the the secure-plt. For an
explanation of the differences, the gcc docs:
Current PowerPC GCC accepts a `-msecure-plt' option that generates code
capable of using a newer PLT and GOT layout that has the security
advantage of no executable section ever needing to be writable and no
writable section ever being executable. PowerPC ld will generate this
layout, including stubs to access the PLT, if all input files (including
startup and static libraries) were compiled with `-msecure-plt'.
`--bss-plt' forces the old BSS PLT (and GOT layout) which can give
slightly better performance.
The security of the new PLT and ability to run the prelinker outweigh
any performance penalty.
The secure-plt is enabled by default. The old bss-plt can be enabled by
selecting 'bssplt' in the DISTRO_FEATURES.
(From OE-Core rev: 70c55aada1101a5c687cdaa79f370fa4530b39d9)
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>
In the past GCC has used a wildcard to permit generating executables
that may have a suffix, such as .exe. This wild card was lost in one
of the updates. Adding the wild card back in fixes a number of issues
when generating a mingw gcc.
(From OE-Core rev: 1003e93a1b3359a98fb631eeeda3fda184832288)
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>
When doing a FOR_BUILD thing, you have to override CFLAGS with
CFLAGS_FOR_BUILD. And if you use C++, you also have to override
CXXFLAGS with CXXFLAGS_FOR_BUILD.
Without this, when building for mingw, you end up trying to use
the mingw headers for a host build.
The same goes for other variables as well, such as CPPFLAGS,
CPP, and GMPINC.
(From OE-Core rev: 85ca40c42950315f2783b98f57df16b261d2826e)
Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
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>
When I upgrade efivar to 0.21, it fails to compile with error messages:
| linux.c:850:9: error: missing braces around initializer
[-Werror=missing-braces]
| struct ifreq ifr = { 0, };
| ^
It is a known issue of gcc. Backport patch from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119
to fix wrong warning when using the universal zero initializer {0}.
(From OE-Core rev: ef16c20e6936218ff96c599cce0200c34f5017dd)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changing SDKMACHINE (which changes SDK_ARCH) shouldn't cause
target task signatures to change. Exclude the dependency
on SDK_ARCH for this reason. It only affects nativesdk builds
and those already account for SDK_ARCH in the build WORKDIR paths.
(From OE-Core rev: dae7c45fac1d877203f173842d43abc4883b808b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The ccargs obtained from get_tune_parameters may not be fully expanded,
so that the gcc_multilib_setup function can be confused, and generates
invalid MULTILIB_OPTIONS in GCC Makefile fragment, which will break the
multilib feature of target gcc.
To address problems above, this patch modifies gcc_multilib_setup
function to expand ccargs before use.
Upstream-Status: Inappropriate [configuration]
(From OE-Core rev: 02eddf9a0b89b0cbe0c83d95cedb3431899197d0)
Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The SDK was unable to find the C++ header pieces correctly since its
using a generic compiler, not one specifically targeting the multilib
vendor prefix. This adds in the right mapping to ensure multilib SDKs
work as expected. This fixes multilib SDK automated tests.
(From OE-Core rev: 823ce9555ee78aa460d0560b8fd9b309cfd36997)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc-source is the only gcc recipe meant to handle the fetch/unpack/patch
tasks, the other gcc recipes then depend on this.
This approach has been creating some confusion for tools like the archiver.
The simplest way to signal to these processes that there is no source
is to empty SRC_URI at the same time we disable the other tasks.
(From OE-Core rev: 0df9d45e0be59e55e585e6d25dedbf0fc55c490c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When building libgcc some files and libraries may be built but not packaged.
The original code packaged only some explicitly specified files targeting mostly x86.
This patch does not discriminate between various targets.
It fixes errors such as these:
ERROR: QA Issue: libgcc: Files/directories were installed but not shipped in any package:
/usr/lib/arm-poky-eabi/4.9.3/thumb
/usr/lib/arm-poky-eabi/4.9.3/fpu
/usr/lib/arm-poky-eabi/4.9.3/thumb/libgcov.a
/usr/lib/arm-poky-eabi/4.9.3/thumb/crtn.o
/usr/lib/arm-poky-eabi/4.9.3/thumb/crtend.o
/usr/lib/arm-poky-eabi/4.9.3/thumb/crtbegin.o
/usr/lib/arm-poky-eabi/4.9.3/thumb/libgcc.a
/usr/lib/arm-poky-eabi/4.9.3/thumb/crti.o
/usr/lib/arm-poky-eabi/4.9.3/fpu/libgcov.a
/usr/lib/arm-poky-eabi/4.9.3/fpu/crtn.o
/usr/lib/arm-poky-eabi/4.9.3/fpu/crtend.o
/usr/lib/arm-poky-eabi/4.9.3/fpu/crtbegin.o
/usr/lib/arm-poky-eabi/4.9.3/fpu/libgcc.a
/usr/lib/arm-poky-eabi/4.9.3/fpu/crti.o
Please set FILES such that these items are packaged. Alternatively if they are unneeded,
avoid installing them or delete them within do_install. [installed-vs-shipped]
(From OE-Core rev: 603b2f3ef400ec66a6899a7b407cbfecd3da5910)
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We presently don't package isl. Unfortunately, if the host is already
using gcc-5.2 (as is presently the case on Arch Linux), configure will
autodetect the host's libisl, and do_compile will break because the
system isl headers aren't pulled in. In lieu of packaging isl, disable
it for now.
[YOCTO #8376]
(From OE-Core rev: 555e8d110435cf4af1e1ab4699c2fa55898e9d80)
Signed-off-by: Richard Tollerton <rich.tollerton@ni.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
0063-nativesdk-gcc-support.patch can not be applied to source code due to
the buggy patch command on sled11, so reformat it, nothing is changed.
(From OE-Core rev: 2c8c3d9c4b65d2a5c7976d530138ebcaac2b1447)
Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix a variety of problems such as typos, bad punctuations, or incorrect
Upstream-Status values.
(From OE-Core rev: bd220fe6ce8c3a0805f13a14706d3130ea872604)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It couldn't be applied by sled11's patch, now fix it.
(From OE-Core rev: e01b450a419aba2164a86510ca1ae402ec86aff0)
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>
Without this patch, the D's include_fixed folder may change after building it
(due to the gcc's fixinc.sh script, executed on the do_compile task) and changes
depend on the current sysroot headers, making the gcc's builds non-deterministic.
[YOCTO #7882]
(From OE-Core rev: e0af4b2c8f8e29ac6f8eccef401c7c004355359d)
Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Modifications to to support build for TCLIBC="baremetal"
(From OE-Core rev: 9e7da158e0e7628c22013fbee34270f7d2db621f)
(From OE-Core rev: 92eb54c6b7424770f96a8e14e792cbe5124968c3)
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Exclude all versions of gcc-source from world builds so that:
bitbake -c <stage> world
will work. gcc-source deletes most bitbake build stages
since it is a source-only package.
(From OE-Core rev: 0eda7b4d889b926ab97d60fcbb1c0d12d730f8ea)
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>