Commit Graph

30 Commits

Author SHA1 Message Date
Alejandro Hernandez Samaniego
344d484779 newlib: Upgrade 4.4.0 -> 4.5.0
Licence changes:
- Adds BSD-2 for libm ld128 functions on 5c5ae2c08
- Adds Synopsys arc-*-* targets on 820dd50

(From OE-Core rev: 0ab6ac79b9f9519d9ee2b2c8d5b217a7e665e6f3)

Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-05-22 14:36:49 +01:00
Richard Purdie
c2da016918 meta/meta-selftest: Fix variable assignment whitespace
Recipes are much more readable with whitespace around the assignment operators.
Fix various assignments in OE-Core to show this is definitely the preferred
formatting.

(From OE-Core rev: 30ea609d3357fb3de911f2f6a5e6856c151b976a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-02-01 13:42:34 +00:00
Richard Purdie
90e0a0f7f4 classes/recipes: Switch virtual/XXX-gcc to virtual/cross-cc (and c++/binutils)
The idea of the base class dependency is to say "yes, I need a C cross compiler"
and this was never meant to be gcc specific. Looking at the codebase, whilst we
code triplets into this, it does overcomplicate things as there are only ever
limited, "target", "sdk" and the class extended versions like mutlilib.

After much thought, we can simplify this to virtual/cross-cc and virtual/nativesdk-cross-cc.

This lets us remove the "gcc" specific element as well as removing the over
complicated triplet usage.

At the same time, change the much less widely used "g++" variant to "c++" for
similar reasons and remove the triplet from virtual/XXX-binutils too.

Backwards compatibility mappings could be left but are just going to confuse
things in future so we'll just require users to update.

This simplification, whilst disruptive for any toolchain focused layers, will
make improved toolchain selection in the future much easier.

Since we no longer have overlapping variables, some code for that can just
be removed. The class extension code does need to start remapping some variables
but not the crosssdk target recipe names.

This patch is in two pieces, this one handles the renaming with the functional
changes separate in a second for easier review even if this breaks bisection.

(From OE-Core rev: 4ccc3bc8266c327bcc18c9a3faf7536210dfb9f0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-01-21 23:09:33 +00:00
Robert Joslyn
b33dcf1123 libgloss: Do not apply non-existent patch
When newlib and libgloss were updated to 4.3.0, SRC_URI was updated to
append a fix-rs6000-cflags.patch file when building on PowerPC, but this
file was not added to the repo.

Remove appending the missing patch.

(From OE-Core rev: 64561d8b81233a19df5f51d26dfbcd15835bec1f)

Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-30 09:04:14 +01:00
Alejandro Hernandez Samaniego
40d1877faf newlib: Use mcmodel=medany for RISCV64
It was previously discovered that mcmodel=medany should be used for RISCV64,
however this was only being set for the applications themselves, but not for
newlib, this meant that we ended up with C library that used a code model and
an application that used another one which is not something we want.

Pass mcmodel=medany when building newlib for RISCV64 as well.

Also, s/CFLAGS/TARGET_CFLAGS to standarize across recipes, the variable
expansion provides no functional difference at this point.

(From OE-Core rev: 3ed0a2fab5dbc37dd352ead8846da6aae5de5c20)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-28 09:38:23 +01:00
Alejandro Hernandez Samaniego
6856e4a4f0 newlib: Upgrade 4.3.0 -> 4.4.0
- COPYING.LICENSE: Added Apache-2.0-with-LLVM-exception from newlibs commit
  96ec8f868e1a0f5a75badfe4627a41f12cce742d
  applicable to newlib/libc/machine/aarch64.
- Also switch libgloss to use PV from newlib.inc instead to align with the
  newlib recipe behavior.

(From OE-Core rev: 92add12d667cb08c9222b4b342b3bf6342010ac6)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-01-21 12:27:12 +00:00
Richard Purdie
65318019cd recipes/classes/scripts: Drop SRCPV usage in OE-Core
Now that SRCPV isn't needed we can simplify things in a few places...

(From OE-Core rev: 843f82a246a535c353e08072f252d1dc78217872)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-08-24 16:50:24 +01:00
Martin Jansa
9a314c2d88 libgloss: remove unused patch file
* it was removed from SRC_URI in:
  https://git.openembedded.org/openembedded-core/commit/?id=1c9cbb27dfe37ca4574c4285fb03ce394dee5ed1

(From OE-Core rev: c78439a8048c30ef96e11ae698c32f4e088787d3)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-05-25 12:36:00 +01:00
Alejandro Hernandez Samaniego
f3ad36d15c newlib: Upgrade 4.2.0 -> 4.3.0
- Rebased fix-rs6000-crt0.patch
- Patch fix_makefile_include_arm_h.patch is no longer required, the newlib
  header dependency has been fixed upstream at 26f9cfd7
- LICENSE checksum change due to:
  - Adding SPDX identifier
  - Deleted Phoenix Systems from License and updated each licenses
  numbers accordingly.
- Add a dummy limits.h header, to make the improved preprocessor
  checks happy during configure.
- Add a patch for libgloss to maintain current behavior of TCLIBC=newlib
  by making libgloss DEPEND on newlib and use its installed headers.
- Switch to git fetcher to simplify fetching the sources and avoid future
  issues due to the way newlib release snapshots were being published.

(From OE-Core rev: 1c9cbb27dfe37ca4574c4285fb03ce394dee5ed1)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-01-29 19:24:22 +00:00
Richard Purdie
73cf55cdde bitbake.conf/recipes: Introduce add DEV_PKG_DEPENDENCY to change RDEPENDS:${PN}-dev
There is a pattern that several recipes need to break the dependency of ${PN}-dev
on ${PN}, most often as ${PN} may be be empty. Add a new variable to parameterise
this and allow it to be changed more easily.

(From OE-Core rev: a5b381c0f45c590a762647a9956a8f41e2e2315e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-28 23:49:37 +01:00
Richard Purdie
b0130fcf91 meta/meta-selftest/meta-skeleton: Update LICENSE variable to use SPDX license identifiers
An automated conversion using scripts/contrib/convert-spdx-licenses.py to
convert to use the standard SPDX license identifiers. Two recipes in meta-selftest
were not converted as they're that way specifically for testing. A change in
linux-firmware was also skipped and may need a more manual tweak.

(From OE-Core rev: ceda3238cdbf1beb216ae9ddb242470d5dfc25e0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-20 16:45:25 +00:00
Ross Burton
632565fb1c newlib: fix license checksums
COPYING.LIBGLOSS simply had the FSF street address change.

COPYING.NEWLIB now includes BSD-3-Clause.

(From OE-Core rev: 78080015b7d83f46770be718a22ffcfedd15daf2)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-09 13:08:57 +00:00
Alejandro Hernandez Samaniego
a97ef3f1d3 newlib: Upgrade 4.1.0 -> 4.2.0
(From OE-Core rev: 668445252fa96bd00ecdef1f610707a132eb35fc)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-07 10:08:59 +00:00
Richard Purdie
bb6ddc3691 Convert to new override syntax
This is the result of automated script conversion:

scripts/contrib/convert-overrides.py <oe-core directory>

converting the metadata to use ":" as the override character instead of "_".

(From OE-Core rev: 42344347be29f0997cc2f7636d9603b1fe1875ae)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-02 15:44:10 +01:00
Alejandro Hernandez Samaniego
f926c41c89 newlib: Update licence
- libgloss:
  - (22) New tcl license for csky-* targets
  - (23) New license for csky-* targets, states itself as FreeBSD license
  but text matches GPL (648365e0)
  - (24) New BSD-2 license for risc-v targets

newlib:
  - New license for csky-* targets, states itself as FreeBSD license
  but text matches GPL (648365e0)
  - (53) arm targets FreeBSD
  - (54) arm targets BSD-2-Clause-FreeBSD

(From OE-Core rev: 97388b7da445c42ca9d425d37d2f369fc673b973)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-23 17:08:53 +00:00
Alejandro Hernandez Samaniego
c15fd1dc45 newlib: Upgrade 3.3.0 -> 4.1.0
(From OE-Core rev: 48c7474a50181f8983c180693363b40833c3fe01)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-01-20 22:46:18 +00:00
Alejandro Hernandez
87a2e7c43d newlib: Upgrade to latest yearly release 3.3.0
Upgrade to the latest snapshot, also drop md5sum while were at it.

(From OE-Core rev: d73aa359e42e707dbc7cfa29c55a2fc8e6bb938a)

Signed-off-by: Alejandro Hernandez Samaniego <alhe@linux.microsoft.com>
Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-29 15:02:19 +01:00
Mark Hatle
f84aa7c191 newlib: Move syscalls from newlib to libgloss
By passing --disabled-newlib-supplied-syscalls, newlib will disable the
generation of builtin syscalls and move this to libgloss.  (This also
affects the generation of crt0.o.)

libgloss SHOULD then provide the syscalls, crt0.o and other functions that
are no longer part of newlib itself.  This now means that you must link
with both newlib and libgloss, whereas before newlib would run in many
configurations by itself.

(From OE-Core rev: f495e1f771b60d2db11ffa351adf56ba664fe7e1)

Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-19 11:24:15 +00:00
Alejandro Enedino Hernandez Samaniego
1f3066006a newlib: Upgrade newlib and libgloss to the yearly release 3.2.0
A new yearly snapshot was taken on January 2nd of 2020, this bumps
newlib to 3.2.0.

 - Mentor Graphics added tcl license (amdgcn-* targets)
 - BSD-Clause-2 was added as well by Dinux (pru-* targets)

(From OE-Core rev: e2d0e36234ba928d0cbcc98d8358b94d8d44412e)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-19 13:24:38 +00:00
Adrian Bunk
753949c81d Change ftp:// URIs to http(s)://
(From OE-Core rev: a11edd68b256fffb088cde5b7298a5749161f600)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-08-03 23:56:01 +01:00
Alejandro Hernandez Samaniego
5afd85f1d5 newlib: export CC_FOR_TARGET as CC
Newlibs Makefiles use a variable CC_FOR_TARGET to build
libraries for the TARGET machine (as opposed to
CC_FOR_BUILD).

We pass CC on our compile function, which is normally
use to build, although in this case, the configure
script is trimming CC and using simply gcc for the target
machine, basically taking out the TUNE variables we pass
in CC as well, such as march, mfloat-abi and such.
This causes errors when building applications since
CC will try to use hard floating point for example
whereas the libc.a from newlib will contain libraries
built with the defaults which could be soft floating
point for example.

e.g.:
$ ${CC} test.c
real-ld: error: test.out uses VFP register arguments,
/usr/lib/libg.a(lib_a-stdio.o) does not.

Analizing the object files we can see that one of them
uses soft (library) and the other one uses hard
floating point (program):

$ readelf -A test.out | grep VFP
Tag_ABI_VFP_args: VFP registers

$ readelf -A usr/lib/libc.a | grep VFP

Hence why the linker complains.

Pass CC_FOR_TARGET with the contents of CC to override
the trimming from the configure script and build newlib
with the correct tune.

(From OE-Core rev: d00b32f4f961ceeb75e7a014209666c10cf3eb93)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <aehs29@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-06 00:40:07 +01:00
Alejandro Hernandez Samaniego
9929318619 newlib: Upgrade to 3.1.0
Upgrade both newlib and libgloss to the yearly
release 3.1.0.

BSD-2 license was added on:
6864c08b94752d34cca

(From OE-Core rev: ef90ed7e4be3f1ed63faba73bd4bbd593ae7bdf2)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <aehs29@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-06 00:40:07 +01:00
Khem Raj
d5edd81f89 musl,glibc,newlib: Drop redundant STAGINGCC
We do not have initial phase of bootstrapping toolchains anymore

(From OE-Core rev: 75a2c15bbabf4df14631c822b20ce6d31098a5c8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-21 23:44:22 +00:00
Khem Raj
b3657abc54 newlib: Move away from gcc-initial dependency
gcc-initial step is no more needed

(From OE-Core rev: 44539118ce29ba4fa916ab28ebf66e6fd5819738)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-26 11:19:54 +00:00
Richard Purdie
1867965acd recipes: Drop virtual/libc-for-gcc
We no longer have special "libc" for gcc so we can rely on plain
virtual/libc and reduce the complexity in the dependencies.

(From OE-Core rev: 122217b421f749b5fef52bea44ad6e04bc8f8d3a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-26 11:19:54 +00:00
Nathan Rossi
a716317331 libgloss_3.0.0.bb: Ensure ${D}${libdir} exists installing content
Some targets do not populate any content into libdir, so make sure it is
created before attempting to move files/directories into it.

(From OE-Core rev: f8d7394f314041de7bcbf06ccb6405f64c68fad0)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-21 18:45:47 -07:00
Nathan Rossi
13f2911a3d libgloss_3.0.0.bb: Consolidate rmdir with -p
Consolidate the rmdir of multiple directories with the use of -p to
delete the leaf empty directory and any empty ancestor directories.

(From OE-Core rev: ba2f5ad890ecf94f541d84cc04669a6b02990d39)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-21 18:45:46 -07:00
Nathan Rossi
7670b7b4cc libgloss_3.0.0.bb: Fix up mv pattern to include libnosys
When installing libgloss libraries handle the ${TARGET_SYS}/lib contents
so that it is placed in ${libdir} instead of ${libdir}/lib. This
resolves a packaging QA issue.

  ERROR: libgloss-3.0.0-r0 do_package: QA Issue: libgloss:
  Files/directories were installed but not shipped in any package:
    /usr/lib/lib
    /usr/lib/lib/libnosys.a
    /usr/lib/lib/nosys.specs
  Please set FILES such that these items are packaged. Alternatively
  if they are unneeded, avoid installing them or delete them within
  do_install.
  libgloss: 3 installed and not shipped files. [installed-vs-shipped]

(From OE-Core rev: 69ce8ba6cc610f310ae28d988d487918906e6ef9)

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-11 09:05:35 +01:00
Alejandro Enedino Hernandez Samaniego
073dbcedf5 tclibc-newlib: Adds a new TCLIBC variant to build with newlib as C library
This patch adds the posibility to build using TCLIBC=newlib.

It allows users to build baremetal applications with the use of a
C library.

Newlib is a lightweight C library meant to be used on embedded systems,
it is meant to be easily portable for new platforms and to provide
basic functionality on them, by design, it provides stubs for some of
these core functions declared as weak, so they can be built correctly
and then linked against some other library which provides specifics
about the platform being used if need be, libgloss takes care of these
in some cases, but it can also be extended, this patch also allows the
user to easily add other libraries to it by adding them to
NEWLIB_EXTENDED for this specific reason.

(From OE-Core rev: 9f0570351a7b0877aa50efff5fe9a9ef368cb38f)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00
Alejandro Enedino Hernandez Samaniego
ae5e33ddc4 newlib: Adds newlib and libgloss recipes
Newlib is a C library that is intended to be used on embedded systems.
It is a conglomeration of several library parts, all under free software
licenses that make them easily usable on embedded products.

Newlib provides a C library alternative that can run on baremetal, mainly
for resource constrained devices.

Libgloss is the BSP part of the C library, which can be easily modified
to port for new hardware platforms.

(From OE-Core rev: fe490ff829440b94124317759d856e2e2daf5047)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-06-15 17:56:24 +01:00