Skip to content

Commit

Permalink
toolchain: upgrade to crosstool-ng 1.26.0
Browse files Browse the repository at this point in the history
  • Loading branch information
tsl0922 committed Sep 24, 2023
1 parent f307115 commit 2185336
Show file tree
Hide file tree
Showing 264 changed files with 18,885 additions and 472 deletions.
2 changes: 1 addition & 1 deletion toolchain/crosstool-ng/.tarball-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.25.0.199_36ad0b1
1.26.0
1 change: 0 additions & 1 deletion toolchain/crosstool-ng/LICENSE

This file was deleted.

48 changes: 48 additions & 0 deletions toolchain/crosstool-ng/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
Unless otherwise stated in individual files, this work is licensed to you under
the following terms.

- Files in docs/ are available under the Creative Commons Attribution, Share
Alike (by-sa), v2.5, to be found there:
licenses.d/by-sa/deed.en (human-readable summary)
licenses.d/by-sa/legalcode (legal code, the full license)

- Files found in patches/*/ are available under the same license as the
upstream software they apply to.

That means that you can't use those patches if you were licensed the
software under a specific license which is not the one the software is
commonly available under.

As an example, if you ever managed to get the Linux kernel under a license
other than the GPLv2, you are not allowed to use the Linux kernel patches
coming with crosstool-NG, as those are available under the GPLv2, which is
the license the Linux kernel is most commonly available under.

As a convenience, the GNU Lesser General Public License (LGPL) v2.1 (for the
patches against glibc, uClibc, and some other libraries) is available there:
licenses.d/lgpl.txt

- Other files not covered by the above licenses, and not covered by an
individual license specified in the file itself, or an accompanying file,
are available under the GNU General Public License (GPL), v2, to be found
here:
licenses.d/gpl.txt

- Also, I want to clarify one point. If you build a toolchain with crosstool-NG
and you happen to sell, deliver, or otherwise publish this toolchain to a
third party, I consider crosstool-NG as being part of the sources needed to
rebuild the afore-mentioned toolchain, alongside with all other source code
that third party is otherwise entitled to receive, due to other licenses of
the different components. See licenses.d/gpl.txt, section 3, which reads:
> For an executable work, complete source code means [...], plus the
> scripts used to control compilation and installation of the executable.

In short: crosstool-NG is the part refered to as "the scripts to control
compilation and installation of the executable", it being the toolchain in
our case; and as such you must make it available, in conformance to the
GPLv2, see above.

Also, if you have local patches that you apply to the different components
(either manualy, or by instructing crosstool-NG to do so), you will have to
make those patches available alongside with your toolchain, to comply with
the licenses of the components impacted by your patches.
2 changes: 1 addition & 1 deletion toolchain/crosstool-ng/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ SUBDIRS = kconfig
bin_SCRIPTS = ct-ng
CLEANFILES = ct-ng bash-completion/ct-ng docs/ct-ng.1
EXTRA_DIST = bootstrap ct-ng.in bash-completion/ct-ng.in \
docs/ct-ng.1.in packages maintainer testing
docs/ct-ng.1.in maintainer testing

if INSTALL_BASH_COMPLETION
compdir = @BASH_COMPLETION_DIR@
Expand Down
159 changes: 0 additions & 159 deletions toolchain/crosstool-ng/README.md

This file was deleted.

2 changes: 1 addition & 1 deletion toolchain/crosstool-ng/bootstrap
Original file line number Diff line number Diff line change
Expand Up @@ -804,7 +804,7 @@ msg "*** Gathering the list of data files to install"
{
declare -A seen_files
echo -n "verbatim_data ="
find COPYING config contrib licenses.d packages samples scripts -type f | LANG=C sort | while read f; do
find -L COPYING config contrib licenses.d packages samples scripts -type f | LANG=C sort | while read f; do
# Implement some kind of .installignore for these files?
case "${f}" in
# Avoid temp files
Expand Down
22 changes: 22 additions & 0 deletions toolchain/crosstool-ng/config/cc/gcc.in
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,15 @@ config CC_GCC_ENABLE_CXX_FLAGS
Note: just pass in the option _value_, that is only the part that goes
after the '=' sign.

config CC_GCC_EXTRA_LIBSTDCXX
bool "Re-enable libstdcxx"
default n
depends on LIBC_AVR_LIBC
select CC_CORE_PASS_2_NEEDED
help
libstdcxx is normally disabled on avr systems due to size limitations.
Set this option to re-enable libstdcxx support.

config CC_GCC_CORE_EXTRA_CONFIG_ARRAY
string "Core gcc extra config"
default ""
Expand Down Expand Up @@ -81,6 +90,7 @@ config CC_GCC_EXTRA_CONFIG_ARRAY
config CC_GCC_MULTILIB_LIST
string "List of multilib variants"
depends on MULTILIB
depends on ! (ARCH_RISCV && BARE_METAL)
default "m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single" if GCC_11_or_later && ARCH_SH
default "aprofile,rmprofile" if ARCH_ARM && ARCH_32
help
Expand All @@ -89,6 +99,18 @@ config CC_GCC_MULTILIB_LIST
for the format of this option for a particular architecture.
Leave empty to use the default list for this architecture.

config CC_GCC_MULTILIB_GENERATOR
string "Generator of RISC-V multilib variants"
depends on MULTILIB
depends on (ARCH_RISCV && BARE_METAL)
default ""
help
Multilib generator for RISC-V architecture.

For more information please refer to gcc manual

If unsure, leave empty.

config STATIC_TOOLCHAIN
bool
select CC_GCC_STATIC_LIBSTDCXX
Expand Down
15 changes: 9 additions & 6 deletions toolchain/crosstool-ng/config/configure.in.in
Original file line number Diff line number Diff line change
Expand Up @@ -30,20 +30,23 @@ config CONFIGURE_has_make_3_81_or_newer
config CONFIGURE_has_make_4_0_or_newer
@KCONFIG_make_4_0_or_newer@

config CONFIGURE_has_make_4_4_or_newer
@KCONFIG_make_4_4_or_newer@

config CONFIGURE_has_libtool_2_4_or_newer
@KCONFIG_libtool_2_4_or_newer@

config CONFIGURE_has_libtoolize_2_4_or_newer
@KCONFIG_libtoolize_2_4_or_newer@

config CONFIGURE_has_autoconf_2_71_or_newer
@KCONFIG_autoconf_2_71_or_newer@
config CONFIGURE_has_autoconf_2_65_or_newer
@KCONFIG_autoconf_2_65_or_newer@

config CONFIGURE_has_autoreconf_2_71_or_newer
@KCONFIG_autoreconf_2_71_or_newer@
config CONFIGURE_has_autoreconf_2_65_or_newer
@KCONFIG_autoreconf_2_65_or_newer@

config CONFIGURE_has_automake_1_16_or_newer
@KCONFIG_automake_1_16_or_newer@
config CONFIGURE_has_automake_1_15_or_newer
@KCONFIG_automake_1_15_or_newer@

config CONFIGURE_has_gnu_m4_1_4_12_or_newer
@KCONFIG_gnu_m4_1_4_12_or_newer@
Expand Down
22 changes: 22 additions & 0 deletions toolchain/crosstool-ng/config/libc/glibc.in
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,15 @@ config GLIBC_DEP_MAKE_4_0
select COMP_TOOLS_MAKE
select MAKE_GNUMAKE_SYMLINK # Override old host make in .build/tools/bin

# Glibc versions older than 2.31 have a bug that triggers with GNU make 4.4 or newer
# where the build process hangs indefinitely
config GLIBC_DEP_MAKE_4_3
def_bool y
depends on GLIBC_older_than_2_32 && CONFIGURE_has_make_4_4_or_newer
select COMP_TOOLS_MAKE
select MAKE_GNUMAKE_SYMLINK
select MAKE_REQUIRE_older_than_4_4

# Glibc 2.31 removed support for pre-v8 SPARC in 32-bit mode (64-bit mode always
# required UltraSPARC)
config GLIBC_SPARC_ALLOW_V7
Expand Down Expand Up @@ -146,6 +155,12 @@ config GLIBC_HAS_OBSOLETE_RPC
def_bool y
depends on GLIBC_2_14_or_later && !GLIBC_2_32_or_later

# As of 2.38 libcrypt is no longer built by default. It will likely be removed in a future
# version.
config GLIBC_HAS_OBSOLETE_LIBCRYPT
def_bool y
depends on GLIBC_2_38_or_later

config GLIBC_EXTRA_CONFIG_ARRAY
string
prompt "extra config"
Expand Down Expand Up @@ -194,6 +209,13 @@ config GLIBC_ENABLE_OBSOLETE_RPC
help
Allow building applications using obsolete (Sun) RPC.

config GLIBC_ENABLE_OBSOLETE_LIBCRYPT
bool "Enable obsolete libcrypt"
default n
depends on GLIBC_HAS_OBSOLETE_LIBCRYPT
help
Allow building applications using obsolete libcrypt APIs.

config GLIBC_ENABLE_FORTIFIED_BUILD
bool
prompt "Enable fortified build (EXPERIMENTAL)"
Expand Down
1 change: 0 additions & 1 deletion toolchain/crosstool-ng/config/libc/uClibc-ng.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
## select LIBC_SUPPORT_THREADS_NONE
## select LIBC_SUPPORT_THREADS_NATIVE
## select CC_CORE_NEEDED
## select GCC_REQUIRE_older_than_13
##
## help The de-facto standard for embeded linux systems.
## help
Expand Down
Loading

0 comments on commit 2185336

Please sign in to comment.