Commit Graph

2101 Commits

Author SHA1 Message Date
Dimitar Dimitrov
c800bc8c82 Add PRU cross tool target
Add sample configuration for building cross toolchain for the TI PRU.
PRU cores are present in many of the BeagleBone single board computers.

More information about the PRU can be found in https://bbb.io/pru

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2021-01-19 21:18:55 +02:00
Keith Packard
beb587a271 newlib-nano: Build libstdc++ against newlib-nano if requested
This uses the gcc support for building libstdc++ using alternate lib
header files.

Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-14 15:05:10 -08:00
Keith Packard
15e053fdc4 Create nano.spec file that sits atop the existing nano build
Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-14 15:05:10 -08:00
Keith Packard
945b4c6436 Add newlib-nano as companion lib
This allows building newlib-nano in addition to newlib and picolibc,
allowing users to select between C libraries within the same toolchain.

Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-14 15:05:10 -08:00
Chris Packham
e64318656c Merge branches 'elijahr-dtc-1.6.0', 'elijahr-readme-typo', 'foss-for-synopsys-dwc-arc-processors-abrodkin-libgmp-for-mac' and 'keith-packard-picolibc-companion' 2021-01-13 19:50:23 +13:00
Keith Packard
27b18d2fc7 picolibc: Build libstdc++ against picolibc if requested
This uses the gcc support for building libstdc++ using alternate lib
header files.

Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-11 23:29:01 -08:00
Keith Packard
43f5079382 gcc: Add support for building libstdc++ with alternate libc
This adds another mode to do_gcc_core_backend that builds libstdc++
against an alternate libc implementation.

Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-11 22:48:46 -08:00
Keith Packard
7e457684ea picolibc: Convert to companion library
This allows configurations to include picolibc without excluding
another C library.

Signed-off-by: Keith Packard <keithp@keithp.com>
2021-01-08 17:48:33 -08:00
Alexey Brodkin
1a65041dc0 libgmp: Fix cross-canadian build for macOS
Currently when building cross-canadian toolchain for macOS
the folowing error happens when GCC is configured:
|ld: illegal text-relocation to '___gmp_binvert_limb_table' in
|... /.build/... /buildtools/complibs-host/lib/libgmp.a(mp_minv_tab.o) from '___gmpn_divexact_1' in
|... /.build/... /buildtools/complibs-host/lib/libgmp.a(dive_1.o)
|collect2: error: ld returned 1 exit status

Apparently this might be solved with GMP configured with "--with-pic",
even though we're talking about static library here.

That solution was found here:
    https://github.com/Homebrew/homebrew-core/pull/25470

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2020-12-23 18:34:08 +03:00
Alexey Brodkin
b833f45259 gcc: Make it aware of Newlib nano IO feature
Even though GCC as a compiler has nothing to do with a C library
being used it still makes sense to know about Newlib's compact
implementation of IO functions:

 * For targets like MSP430 which require to have such a tuned
   Newlib if "-mtiny-printf" is passed to the GCC's command-line [1]

 * For correct compilation of the following GCC's own DejaGnu tests [2]:
     - gcc/testsuite/gcc.c-torture/execute/920501-8.c
     - gcc/testsuite/gcc.c-torture/execute/930513-1.c
     - gcc/testsuite/gcc.dg/torture/builtin-sprintf.c
     - gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.x

[1] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=02afb6a9321fbfb435452636cedc2cd43f0c4fd2
[2] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=571bbd0d48d5872eacbd0b681fce6e1ae754520b

So we add that missing cross-dependency now.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2020-12-23 17:54:03 +03:00
Kumar Gala
c12f5b209f Run through 'ct-ng updatetools'
Update config.{sub,guess} to get proper awareness for ARM based MacOS.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2020-12-04 10:14:53 -06:00
Chris Packham
a4231a555a
Merge pull request #1342 from DspHack/feature/add_support_for_ti_c6x
Experimental: Add support for the Texas Instruments C6X (TMS320C6000 …
2020-11-10 20:29:25 +13:00
Dan Tejada
3a3e645245 c6x: Remove multilib requirement
Restore tuple config check
     Add sample configuration

Signed-off-by: Dan Tejada <dan.tejada@cantada.com>
2020-11-02 16:21:26 -05:00
Chris Packham
beae27d87b arm: Disable context functions for Thumb
Similar to commit 57679b5e ("Disable context functions for Thumb") when
building for thumb we need to unset UCLIBC_HAS_CONTEXT_FUNCS.

Fixes #1397

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2020-11-01 21:17:50 +13:00
Chris Packham
827b42336e Merge branch 'xlocale' of git://github.com/lancethepants/crosstool-ng into lancethepants-xlocale 2020-11-01 20:01:58 +13:00
lancethepants
bc5798a8ea Don't remove XLOCALE support unconditionally.
Signed-off-by: Lance Fredrickson <lancethepants@gmail.com>
2020-10-15 13:59:04 -06:00
Alexey Brodkin
57f5909285 binutils: Disable glob for better portability
Since glibc 2.27 glob interface was changed [1]  and so
"glob" & "glob64" symbols require glibc 2.27+.

For us that means if we build Binutils on a machine with glibc 2.27+
produced binaries won't be any longer usable on machines with older
glibc.

As an example [2]: build on Ubuntu 18.04 (with glibc 2.27) and try to run
on CentOS 7.x (with glibc 2.17), you'll see this:
---------------------->8-------------------
ldd ld
ld: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by ld)
---------------------->8-------------------

Now given glob is not really used by Binutils itself (only needed by GDB)
and we build Binutils & GDB separately let's make at least Binutils
more portable.

In theory we may even try to do the same hack for GDB forcing it to use
imported glob implementation. But since GDB is now built strictly by C++
compiler we'll get waaay to many incompatibilities due to multiple changes
of C++ ABI in between GCC 7.5 of Ubuntu 18.04 and GCC 4.8.5 of CentOS 7.x,
so there's no point to even try.

[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=ccf970c7a77e86f4f5ef8ecc5e637114b1c0136a
[2] https://github.com/zephyrproject-rtos/sdk-ng/issues/280

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2020-10-14 23:10:47 +03:00
Chris Packham
99ce9d3861
Merge pull request #1400 from fvalette/fix-m4-build-for-mingw32-host
m4: fix build for mingw32 host
2020-10-07 20:03:16 +13:00
Florent Valette
1c93176e05 m4: fix build for mingw32 host
While building a canadian toolchain for windows host (any target),
the build failed for m4 host companion_tool with a recent mingw-w64
(at least 7.0.0).
m4 needs stack smashing protection which is not part of mingw-w64 c
library and an explicit trigger to link w/ libssp is needed.

Signed-off-by: Florent Valette <florent.valette@gmail.com>
2020-10-06 09:32:40 +02:00
Hans-Christian Noren Egtvedt
60e782fdec glibc: set glibc build system default_cflags empty
By setting glibc build system default_cflags to be empty before
building, we will enforce the build system to only use the crosstool-ng
CFLAGS when building glibc.

Properly solves the issue identified in #1396.

Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
2020-10-05 15:37:19 +02:00
Chris Packham
ea386017b6 Merge branch 'picolibc-multiarch' of git://github.com/keith-packard/crosstool-ng into master 2020-09-20 21:17:28 +12:00
Keith Packard
e802686d86 picolibc: Use target architecture to drive picolibc configuration
This selects code matching the target architecture within picolibc.

Signed-off-by: Keith Packard <keithp@keithp.com>
2020-09-16 16:04:51 -07:00
Keith Packard
c1c475d0a0 Map picolibc to suitable CT_TARGET_SYS values
picolibc is another bare-metal C library, and so should be mapped
to CT_TARGET_SYS just like newlib does.

Signed-off-by: Keith Packard <keithp@keithp.com>
2020-09-16 11:52:58 -07:00
Mikhail Falaleev
4c4e5ba047 Patches: search package patches in the top package directory
Before patches for specific package were searched in
packages/${pkg_name}/${version}. This means that with usage of custom
version, patches wont be applied. This commit makes ct-ng search bundled
patches also in packages/${pkg_name} directory. That means that we can
put some patches in this directory, that will be applied to any version
of this component.
2020-09-10 17:14:39 +03:00
Chris Packham
54bd54ee19 Merge branch 'BR1_zlinux_cross_comp' of git://github.com/pradghos/crosstool-ng into pradghos-BR1_zlinux_cross_comp 2020-09-06 21:44:21 +12:00
Keith Packard
c15de32ec6 Add picolibc support [v2]
This adds support for using picolibc instead of newlib on embedded
systems.

Signed-off-by: Keith Packard <keithp@keithp.com>

v2:
	Add check for meson and ninja
	Sync option default values with current picolibc defaults
	Remove xtensa sys header file install as those aren't in picolibc
2020-09-01 09:42:53 -07:00
Chris Packham
a2b4eab30c
Merge pull request #1366 from antmak/bugfix/zlib_macos_patch
zlib-1.2.11: Add a patch to cross-compile for macos
2020-08-30 20:57:44 +12:00
Pradipta Ghosh
ebae86dea7 Adding new samples s390x/s390-unknown-linux-gnu
- s390x/s390 is allowed to pair with other vendor name.
- new samples are being added to use this flexibility.

- Fix space issue
2020-08-27 09:51:17 -07:00
Anton Maklakov
6dd9d57280 crosstool-NG: Fix libtool for mangled tuples as all other cross-tools 2020-08-03 13:41:49 +07:00
Stephanos Ioannidis
041427aec9 Enable static libgcc when CT_GDB_NATIVE_STATIC_LIBSTDCXX is set
This commit updates the GDB build script to specify `-static-libgcc`
when `CT_GDB_NATIVE_STATIC_LIBSTDCXX` is enabled. Both libgcc and
libstdc++ are considered to be part of the "standard libraries," and
should be specified by the same flag (the configuration symbol could
potentially use a better name and/or further indirection).

This also semantically aligns the `CT_GDB_NATIVE_STATIC_LIBSTDCXX`
with the equivalent GCC configuration `CT_CC_GCC_STATIC_LIBSTDCXX`,
which also enables static linking of both libgcc and libstdc++.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2020-05-26 16:34:31 +09:00
Stephanos Ioannidis
b07da3bb69 Fix CT_GDB_NATIVE_STATIC_LIBSTDCXX reference
This commit fixes an incorrect reference to the configuration
`CT_GDB_NATIVE_STATIC_LIBSTDCXX` in the GDB build script.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2020-05-26 16:25:20 +09:00
Dan Tejada
d532f02542 Experimental: Add support for the Texas Instruments C6X (TMS320C6000 series) DSPs
-- c6x: Add support for c6x product families to pass on to uClibC-ng
  -- c6x: Fix multilib support
  -- c6x: Add patch fix internal instruction error (GCC 57295)

Signed-off-by: Dan Tejada <dan.tejada@cantada.com>
2020-05-20 21:16:14 -04:00
Alexey Neyman
8606251585 Add --with-cpu= on 32-bit SPARC
... if building for GLIBC 2.31+.

Signed-off-by: Alexey Neyman <stilor@att.net>
2020-03-03 16:40:33 -08:00
Alexey Neyman
d978290f39 Set --with-cpu-{32,64} for multilib builds
GLIBC 2.31 needs --with-cpu=ultrasparc for both 32/64-bits now, and
--with-cpu only sets the CPU model for the "primary" bitness.

Signed-off-by: Alexey Neyman <stilor@att.net>
2020-02-26 11:05:19 -08:00
Alexey Neyman
4fa0ba100b
Merge pull request #1270 from nolange/prevent_glibc_cflags_override
prevent the glibc build from overwriting flags
2020-02-16 15:22:44 -08:00
Alexey Neyman
4897426202
Merge pull request #1266 from nolange/move_builddir_kconfig
move BUILD_DIR variable into Kconfig
2020-02-16 15:21:45 -08:00
Alexey Neyman
be04d50510
Merge pull request #1303 from stilor/wip
Update docker to ubuntu 19.10
2020-02-09 13:26:47 -08:00
Alexey Neyman
c317f57b40 Suppress YAML support in DTC
... which fails to build if pkg-config is not installed.

Signed-off-by: Alexey Neyman <stilor@att.net>
2020-02-03 16:12:38 -08:00
Alexey Neyman
a152d61313
Merge pull request #1257 from nolange/fix_binutils_typo
fixup typo in bitutils.sh
2020-01-21 16:56:17 -08:00
Alexey Neyman
90947b3166
Merge pull request #1274 from maxmorozov/master
CT_LIBC_NEWLIB_REGISTER_FINI is processed correctly
2020-01-21 16:44:29 -08:00
Alexey Neyman
66c2932053
Merge pull request #1259 from nolange/add_binutils_deterministic_archives
enable option for binutils deterministic-archives
2019-12-23 15:19:24 -08:00
Alexey Neyman
be5d0317d2
Merge pull request #1201 from abrodkin/topic-glibc-multilib
ARC: Support building of multi-lib Glibc toolchain
2019-12-23 15:17:34 -08:00
Alexey Neyman
e0a63b8546
Merge pull request #1280 from dimkr/musl-cflags
Resepct CT_TARGET_{C,LD}FLAGS when building musl
2019-12-23 14:58:45 -08:00
Stephanos Ioannidis
bb1d687e1d Add newlib retargetable locking configuration
This commit adds support for the newlib configuration option
'--enable-newlib-retargetable-locking'.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2019-12-20 11:18:46 +09:00
Dima Krasner
de0d1dbe02 Resepct CT_TARGET_{C,LD}FLAGS when building musl
I was trying to build static binaries for a range of Broadcom soft-float ARMv7
SoCs and kept getting SIGILL, although I was targeting Cortex A7 (and A5,
later), even on A9 and A15.

I found out that once I add -msoft-float, +mp+sec is to blame:

   Attribute Section: aeabi
   File Attributes
  -  Tag_CPU_name: "7VE"
  +  Tag_CPU_name: "7"
     Tag_CPU_arch: v7
  -  Tag_CPU_arch_profile: Application
  -  Tag_ARM_ISA_use: Yes
     Tag_THUMB_ISA_use: Thumb-2
     Tag_ABI_PCS_wchar_t: 4
     Tag_ABI_FP_rounding: Needed
  @@ -12,8 +10,5 @@ File Attributes
     Tag_ABI_FP_number_model: IEEE 754
     Tag_ABI_align_needed: 8-byte
     Tag_ABI_enum_size: int
     Tag_ABI_optimization_goals: Aggressive Size
     Tag_CPU_unaligned_access: v6
  -  Tag_MPextension_use: Allowed
  -  Tag_DIV_use: Allowed in v7-A with integer division extension
  -  Tag_Virtualization_use: TrustZone and Virtualization Extensions

(This is the readelf -A diff, before and after armv7-a+nofp -> armv7+nofp).

I kept getting SIGILL even after building my application with a toolchain built
with the correct CFLAGS and found out that crosstool-ng doesn't pass the host
CFLAGS when building musl, which pollutes my binary with these ARMv7 extensions.

Signed-off-by: Dima Krasner <dima@dimakrasner.com>
2019-12-04 16:55:20 +02:00
Morozov Max
2260dcfff6 CT_LIBC_NEWLIB_FSEEK_OPTIMIZATION and CT_LIBC_NEWLIB_FVWRITE_IN_STREAMIO are took into account now 2019-11-04 10:11:04 +04:00
Morozov Max
21483c6dbb CT_LIBC_NEWLIB_REGISTER_FINI is processed correctly 2019-11-04 03:40:45 +04:00
Norbert Lange
bd0ea7ed21 prevent the glibc build from overwriting flags
The glibc will append the content of the CFLAGS variable,
overriding previous flags.
If unset, the CFLAGS variable is not empty, so explicitly set it.
Instead prepend the default CFLAGS flags.

Signed-off-by: Norbert Lange <nolange79@gmail.com>
2019-10-27 23:12:25 +01:00
Norbert Lange
ff0e8ac7ca move BUILD_DIR variable into Kconfig
this allows users to reference this variable,
for ex. in TARGET_CFLAGS to remap paths.

Signed-off-by: Norbert Lange <nolange79@gmail.com>
2019-10-19 00:20:55 +02:00
Norbert Lange
605805b3dd fix nonfunctional --enable-relro option
Signed-off-by: Norbert Lange <nolange79@gmail.com>
2019-10-15 11:19:34 +02:00
Norbert Lange
7469bc8a73 enable option for binutils deterministic-archives
Signed-off-by: Norbert Lange <nolange79@gmail.com>
2019-10-10 21:39:29 +02:00
Alexey Neyman
064711469c Add Linux versions
Signed-off-by: Alexey Neyman <stilor@att.net>
2019-10-01 21:22:44 -07:00
Chris Packham
8ad4a8b83f build/internals.sh: Handle pie executables
Fixes: #887

On some systems the file command identifies a pie executable as a shared
object. Update do_finish() to handle this case so that they are stripped
as well.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
2019-09-14 22:21:11 +12:00
Alexey Brodkin
de76f7cc82 ARC: Support building of multi-lib Glibc toolchain
From GCC's standpoint ARC's multilib items are defined by "mcpu" values
which we have quite a few and for all of them might be built optimized
cross-toolchain.

From Glibc's standpoint multilib is just multi-ABI [1] and so very limited
versions are supposed to co-exist (e.g. arc700 & archs).

Here we force Glibc to install libraries in GCC's multilib folder to create
a universal cross-toolchain that has libs optimized for multiple CPU types.

But note we only need to mess with installation paths in case of real
multilib, otherwise we keep default "lib/" paths so that GCC finds default
(the one and only) libs where it expects them to be.

Also here we add a sample which allows to build universal Glibc Linux
toolchain for ARC.

[1] https://sourceware.org/ml/libc-alpha/2019-06/msg00018.html

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2019-06-14 17:50:46 +03:00
Alexey Neyman
51f1db5c0a
Merge pull request #1178 from stilor/master
Last fixes for 1.24.0
2019-04-05 14:09:48 -07:00
Alexey Neyman
693d3943b1 Rename JOBSFLAGS -> CT_JOBSFLAGS
... so that it is saved/restored when restarting the build.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-04-04 18:57:42 -07:00
Alexey Neyman
31002a0c0a Add an ability to mark a configuration as invalid
... so that the build will fail early and predictably.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-04-04 18:57:42 -07:00
Alexey Neyman
cc3686ec2f An artifact of merging native/gdbserver backends
... resulted in an attempt to build libinproctrace.so whenever any
of the {gdbserver, native gdb} was enabled.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-04-04 18:57:32 -07:00
Max Filippov
4f360146eb Fix uClibc build for noMMU target
uclibc_backend_once tries to build dummy shared libraries regardless of
whether shared libraries support for target is enabled or not, resulting
in build failure in noMMU bFLT configuration.
Only build dummy shared libraries when shared library support for target
is enabled.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2019-03-23 11:09:45 -07:00
Max Filippov
f8ed7002c6 Add support for noMMU xtensa
scripts/build/kernel/linux.sh only provides suffix to known
architectures when building toolchain targeting noMMU linux.
Add support for xtensa and assign uclinux suffix to it.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2019-03-23 11:09:43 -07:00
Alexey Neyman
a75a770595 Make the proc_service.h workaround apply to gdbserver
... when it is compiled without the native GDB.

Also, fix the gdbserver to be installed without a program prefix in this
case, as it was before the unification of the GDB backend.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-03-12 23:08:58 -07:00
Alexey Neyman
de36f78f89 Allow older GDB to build against newer glibc
Also, fix the subdir used when only gdbserver is built (without native
GDB).

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-03-11 00:33:22 -07:00
Alexey Neyman
1e25ebc7e0 Move GDB build into a common backend function
... needed to create a common runtime test for an incompatible change
in glibc API.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-03-09 18:01:30 -08:00
Alexey Neyman
b3cce054ef Meet our new companion tool, bison
Which is here courtesy of CentOS6, which only has bison 2.4 - while new
glibc requires 2.7.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-03-04 00:22:02 -08:00
Alexey Neyman
862c35457d Fix build of glibc 2.29 on systems with obsolete host programs
- Force building make as a companion tool if host make is older than
4.0 (CentOS 7 currently has 3.82)
- Disable 2.29 as a choice if host python is older than 3.4
(CentOS 7 has 2.6 unless python from EPEL is installed)
- Python2 emits its version information to STDERR. Ugh.

While there, also use the detected host Python for GDB configuration.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-03-02 15:45:37 -08:00
Alexey Neyman
9b9e5c4162 Make lzip an optional dependency
Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-28 17:13:12 -08:00
Alexey Neyman
5bc79c34bb
Merge pull request #1144 from bwalle/expat-docbook
expat: Build without docbook
2019-02-25 15:32:10 -08:00
Dima Krasner
55fe8a8ba7 Fix musl build when CT_SHARED_LIBS=n
Signed-off-by: Dima Krasner <dima@dimakrasner.com>
2019-02-24 09:36:46 +02:00
Bernhard Walle
d295d45b0c expat: Build without docbook
This fixes following build error on Debian 9:

   configure: error: Your local docbook2man was found to work with SGML rather
      than XML. Please install docbook2X and use variable DOCBOOK_TO_MAN to point
      configure to command docbook2x-man of docbook2X.
      Or use DOCBOOK_TO_MAN="xmlto man --skip-validation" if you have xmlto around.
      You can also configure using --without-docbook if you can do without a man
      page for xmlwf.

Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
2019-02-20 18:34:26 +01:00
Alexey Neyman
8088c6ef47 Select flat/FDPIC in accordance with ct-ng setting
uClibc-ng 1.0.31 enabled FDPIC as an option for ARM/no-MMU
configurations and defaults to that option if not set explicitly.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-20 00:43:39 -08:00
Alexey Neyman
16efa9d3e7 Add debug output to Kconfig manipulation functions
Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-19 23:45:44 -08:00
Alexey Neyman
865171abc7 Stash the uClibc config after our mods
... before running `make olddefconfig`. This helps in debugging.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-19 23:39:14 -08:00
Alexey Neyman
a0249703fd Duh! do not override ${cflags}
... in the backend function with ${CFLAGS_FOR_HOST}. The caller either
supplies them already, or (in case of pass-1/2 of the canadian cross)
passes ${CFLAGS_FOR_BUILD} there.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-19 17:38:21 -08:00
Alexey Neyman
d083cbea80 Move moxiebox build to post_cc
core-2 gcc does not search the final prefix now for newlib's headers.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-17 23:55:16 -08:00
Alexey Neyman
32dd66a35a Use -idirafter instead of copying headers.
Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-17 16:57:57 -08:00
Alexey Neyman
f71d3cb1c2 Disable CXX while building glibc
Otherwise, glibc 2.29 tries to use it - but we haven't built libstdc++ yet.
We really need to implement #808... Until now, pass empty CXX to make.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-16 00:00:13 -08:00
Alexey Neyman
7217116836 Check/increase ulimit -n setting
... 2.32 ld runs out of file descriptors while linking uClibc-ng on
SuperH.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-15 18:46:39 -08:00
Alexey Neyman
7c7eca2fab Improve error detection
... by filtering the messages that contain a *word* "warning" or
"error", i.e. is preceded by a space or is at the beginning of the line.
This improves the output from new uClibc-ng releases - which produce a
warning about an unused label, `mprot_error`.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-14 15:08:01 -08:00
Alexey Neyman
3552aa2e40 Update config.{sub,guess}
Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-13 15:56:34 -08:00
Alexey Neyman
841c6fc8c1 Use CFLAGS for both CFLAGS/CXXFLAGS in GDB
These config variables are documented as such anyway.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-13 13:42:15 -08:00
Roy Storey
5d84835f90 decouple darwin/clang here as per #712
https://github.com/crosstool-ng/crosstool-ng/issues/712#issuecomment-300891861
2019-02-13 13:23:46 -08:00
Roy Storey
2306701d2c clang check before add to CT_CFLAGS_FOR_BUILD/HOST 2019-02-13 13:23:40 -08:00
Alexey Neyman
2219aab336 Implement an option to store downloads in subdirs
... following the buildroot model.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-13 01:05:13 -08:00
Alexey Neyman
74a53fdf3e Use enhanced framework for 'ct-ng update-samples'
Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-09 15:55:16 -08:00
Alexey Neyman
09cb590847 Improve upgradability of defconfig files
- Switch to two-pass reading of the config file to track both (a) the
option's value and (b) if the option has been explicitly called out in
the .config being processed.
- Split off per-version functions into separate files.
- Add a README with some guidelines on writing new upgrade scripts.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-09 14:09:20 -08:00
Alexey Neyman
5aed6ab6e2
Merge pull request #1134 from stilor/upgrading
Upgrade script + test suite
2019-02-06 22:46:14 -08:00
Alexey Neyman
27f0c8b838 Add a few tests to upgrade testsuite
... coverage not complete, but pretty diverse and covers most
non-trivial conversions. PRs with better coverage for 1.23.o options
welcome.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-06 00:01:55 -08:00
Alexey Neyman
523534c9db Start a testsuite for upgrade script
Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-05 00:53:36 -08:00
Alexey Neyman
3b86d2d0e6 Upgrade script for v2 of the config
Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-01 00:15:20 -08:00
Alexey Neyman
0fe21f8db8 Config v2: select relevant parts of each package version
Also, remove a couple of config options that dealt with package versions
that have been since retired.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-01-30 00:09:30 -08:00
Alexey Neyman
adc16046f7 Add upgrade logic to version-check.sh
Slightly rework config version detector to catch the case where neither
CONFIG_VERSION/CONFIG_VERSION_CURRENT is defined in the config file.

Add olddefconfig and use it after the upgrade.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-01-27 22:55:26 -08:00
Alexey Neyman
57e5be632d Basic framework for checking config file version
Signed-off-by: Alexey Neyman <stilor@att.net>
2019-01-26 13:13:32 -08:00
Dima Krasner
de797aa99d Coding style fixes in functions
Signed-off-by: Dima Krasner <dima@dimakrasner.com>
2019-01-23 09:56:05 +02:00
Dima Krasner
d44a626968 Coding style fix in uClibc.sh
Signed-off-by: Dima Krasner <dima@dimakrasner.com>
2019-01-23 09:54:29 +02:00
Dima Krasner
2870ffae51 Moved uClibc configuration installation to uClibc.sh
Signed-off-by: Dima Krasner <dima@dimakrasner.com>
2019-01-23 09:52:04 +02:00
Dima Krasner
1635c149a4 Store the uClibc .config alongside the ct-ng .config
Signed-off-by: Dima Krasner <dima@dimakrasner.com>
2019-01-22 22:36:15 +02:00
Alexey Neyman
92ad0fe0ab Dump how multilib iterator is invoked
Signed-off-by: Alexey Neyman <stilor@att.net>
2019-01-14 23:58:22 -08:00
Alexey Neyman
e05fa86bba Canonicalize prefix dir and sysroot
... because GCC prints the sysroot with symlinks resolved.

Fixes #892.

Signed-off-by: Alexey Neyman <stilor@att.net>
2019-01-14 23:56:40 -08:00
Alexey Neyman
9fc729b4b0 Bionic modifies CT_TARGET_CFLAGS
... which, after a recent change, is not reflected into CT_ALL_TARGET_CFLAGS
for non-multilib configurations.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-15 00:39:04 -08:00
Alexey Neyman
e46f6d9966 Use "package ksym" when fetching/extracting
... in the default implementation of the fetch/extract methods.

Fixes #1116.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-14 18:50:51 -08:00
Alexey Neyman
f2b64524b0 Add a symlink to LTO for binutils
... so that ar can find the plugin even when invoked directly, not
via the gcc-ar plugin.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-11 08:55:07 -08:00
Alexey Neyman
5cf859d9d9 Add config flags for omitting 'arch' and 'vendor'
... parts of the config tuple. While here, remove parts that are
setting portions of the target tuple to a value that's already
the default.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-10 01:10:01 -08:00
Alexey Neyman
afb17244d2 Run through 'ct-ng updatetools'
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-09 16:53:47 -08:00
Alexey Neyman
e85ec884ad Use -mel/-meb for moxie
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-07 14:49:03 -08:00
Alexey Neyman
8bee41d734 Remove a TBD
It only applied to core-pass-2 compiler; final compiler can locate
the linker script just fine.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-07 14:46:00 -08:00
Alexey Neyman
e149e28e57 Disable -fstack-protector* from being used by glibc
... until it was fixed (to some extent) in 2.25.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-07 00:03:04 -08:00
Alexey Neyman
9d2a5f8413 Set ALL_TARGET_CFLAGS initially for !MULTILIB
Fixes #1107.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-07 00:03:04 -08:00
Alexey Neyman
f5b57504d2 Add configuration options for enabling SSP
... in uClibc and glibc.

Fixes #681.

While here, relocate additional "sources" for uClibc/binutils into packages/
directory.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-04 16:15:37 -08:00
Alexey Neyman
893932e90f Add a config option for default RELRO setting
Fixes #656.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-03 20:19:09 -08:00
Alexey Neyman
d9afcd80fc Warn if architecture is empty on x86/32bit
as that defaults to i386, which will fail with glibc (and likely other
libcs).

Fixes #617.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-03 16:17:25 -08:00
Alexey Neyman
8c6cf388cd Fix uClibc builds after moxie merge
Broken because of the capitalization of the name.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-03 13:04:44 -08:00
Alexey Neyman
a4dc14dba4 Consider it success if DoForceRmdir removes only the content
Fixes #929.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-01 14:44:08 -08:00
Alexey Neyman
40d5bf6440 Add moxiebox as a choice for libc
This required some rework of the libc selection, as moxiebox is a layer on
top of another libc - newlib.

Also, moxiebox'es host VM (`sandbox`) needs a libcrypto on the host. We will
not have it if we're cross-compiling a canadian cross. Fortunately, all moxiebox
needs from libcrypto is SHA256, and it already includes a standalone implementation
of SHA256 in its runtime. Provide a little wrapper that allows moxiebox use
that implementation for the host binary, too.

Also, automate collecting/printing the list of all packages in a given category
(e.g. LIBC or COMP_TOOLS), generate a list of all Kconfig symbols for a given
category.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-01 10:10:51 -08:00
Alexey Neyman
172308cb1b Add moxie architecture
and a moxie-unknown-elf target (which is what #1088 apparently wanted).

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-11-28 00:30:10 -08:00
Alexey Neyman
da76ae3ea3 Add DTC as a companion tool
(needed for cross-gdb targeting the moxie-* targets)

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-11-28 00:30:10 -08:00
Alexey Neyman
35bec76b63 Fix installation of the license file
... for ct-ng configured without --enable-local. Also, install
licenses in subdirectories of the components.

Also, ct-ng configured with --enable-local removed the scripts directory
upon `ct-ng distclean`.

Also, misspelled CT_WGET/CT_CURL variables prevented use of
`ct-ng updatetools`.

Fixes #1091.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-11-12 01:19:04 -08:00
Alexey Neyman
8fe21d70a2 Make license collection optional, on by default
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-11-07 12:59:29 -08:00
Alexey Neyman
4270b8e62e
Merge pull request #1084 from antmak/collect_licences
Collect licenses for the distribution
2018-11-07 11:26:45 -08:00
Alexey Neyman
4acea9cc95 Fix detection of missing overlays
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-11-06 23:48:51 -08:00
Anton Maklakov
b36e89d294 Add an ability to use a regular directory for overlaying. If it doesn't exist, the tarball is still used 2018-11-05 15:49:51 +08:00
Anton Maklakov
aec70d5310 Collect licenses for the distribution 2018-11-05 15:39:47 +08:00
Alexey Neyman
2808fdb6a3
Merge pull request #985 from antmak/platform_headers
Use the platform headers in the pass-2 and canadian gcc stages
2018-11-03 15:38:51 -07:00
Alexey Neyman
f232d6d09a Add an ability to modify an exported variable
... and use that ability to permanently set CTNG_LD_IS in case gold is default linker
and we're building glibc.

Fixes #988. This was a long-standing breakage in crosstool-NG (at least since it began
to run each step in a sub-shell).

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-11-01 15:50:12 -07:00
Alexey Neyman
21af769802 Detect errors in CT_SaveLocal
The function is called from a conditional and therefore, the CT_OnError
handler is not invoked on failures. Need to return an error and check
for the error return in the caller.

Also, while here, fix the issue that was causing the failure -
move can fail if it crosses a filesystem, so fall back to 'cp+rm' in
that case.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-10-27 13:56:22 -07:00
Alexey Neyman
e12e90c798
Merge pull request #1069 from austin-beer/master
Prevent Bash from searching $PATH when sourcing the .config file
2018-10-25 21:15:54 -07:00
Austin Beer
11e65e75f9 Add comment about preventing Bash from searching $PATH 2018-10-25 15:07:55 -06:00
Austin Beer
93d86b7e5c Prevent Bash from searching $PATH when sourcing the .config file 2018-10-24 18:56:12 -06:00
Alexey Neyman
091b7e4c87 Generate correct tuple for PowerPC with SPE ABI
Fixes #1018.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-10-23 23:22:01 -07:00
Alexey Neyman
782b45d0da Supply "very old" and "very new" glibc versions
... as 1.0 and 99.99, respectively, to gcc configure.

Fixes #1031.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-10-21 19:05:19 -07:00
Alexey Neyman
ce7eea8003 Try to use 'git fetch --depth 1' if possible
It should be possible if fetching a tag/branch, and it may be possible
if fetching a changeset if a server is configured to allow it.

Fixes #986

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-10-20 23:33:14 -07:00
Alexey Neyman
e72d7df359 Fix state dir location
Fixes #1054

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-10-19 17:03:14 -07:00
Alexey Neyman
e697b4694a Create glibc-ports symlink inside CT_SRC_DIR
... so that it works in both "bundled" and "bundled,local" cases.

Fixes #1060.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-10-16 00:02:18 -07:00
Alexey Neyman
efe65615d0 Fix up timestamps after patching
... so that autotools-based packages do not re-run autoconf/autoheader/automake.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-09-28 11:48:01 -07:00
Alexey Neyman
2acab2f061 Make CT_PREFIX_DIR/CT_WORK_DIR/CT_BUILD_TOP_DIR absolute
... if they aren't already.

Fixes #1010.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-09-27 01:01:20 -07:00
Alexey Neyman
d573c15758 Use 'chmod a-x' instead of 'chmod -x'
There is a subtle difference when executable bit is a part of the umask.
And at least some versions (Debian/stretch) fail if the resulting mode
would've been different if not for the umask setting.

Fixes #998.

Although, with such chmods/umasks it is likely that some package installation
will break anyway. But I'll leave it until somebody complains.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-09-26 23:54:55 -07:00
Alexey Neyman
29f0662c18 Fix restarting after a complete build
It is much, much better to *first* make the directory writable and *then*
do a test for case-sensitivity (which requires writing in that directory).

Fixes #1033.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-09-26 16:20:12 -07:00
Alexey Neyman
b82b8adb44
Merge pull request #984 from slash3g/master
Properly handle newlib configuration flags
2018-09-25 23:52:05 -07:00
Alexey Neyman
b0e7b57c4a Restore *-android build
Modify CT_TARGET_CFLAGS (which are passed to GCC's FOR_TARGET flags) rather
than CT_ALL_TARGET_CFLAGS.

Fixes #1006.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-09-24 22:43:08 -07:00
Alexey Neyman
c426acbee7
Merge pull request #990 from antmak/fix_newlib_multilib_opt
Fix a wrong name for the newlib's multilib option
2018-09-21 23:37:29 -07:00
Anton Maklakov
b1dbc3ce9a Fix a wrong name for the newlib's multilib option 2018-06-15 13:42:44 +08:00
Anton Maklakov
1dea24ce9a Use the platform headers in the pass-2 and canadian gcc stages 2018-06-12 17:07:06 +08:00
Daniele Baracchi
398030c11a Properly handle newlib configuration flags 2018-06-11 21:42:20 +02:00
Alexey Neyman
d7ee16cb28 Make patch order overridable by individual packages
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-06-06 00:50:36 -07:00
Alexey Neyman
57679b5e61 Disable context functions for Thumb
They're written in ARM dialect, and `ldmia r14, {r14, pc}` is not accepted in T2
encoding. GCC8 changed the list of multilibs for arm-*, which now includes a
variant with CPU that supports T2 but not A1 encoding.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-06-05 16:38:30 -07:00
Alexey Neyman
0ce942862e Add --enable-obsolete for powerpc-*-spe
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-06-05 00:16:53 -07:00
Alexey Neyman
4137c422c6 Detect errors from gas
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-06-05 00:16:37 -07:00
Alexey Neyman
07ec87f14f Avoid adding arch/cpu/tune flags for target to GCC build
... as it may need to override them for building runtime-selectable code.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-06-05 00:16:37 -07:00
Alexey Brodkin
0a64056dd3 ARC: Disable CONFIG_ARC_HAS_ATOMICS in uClibc if building without -matomics
In case we build for ARC core which has no support of atomic ops among
other things we need to configure libc to use Linux kernel helper to emulate
HS atomic ops. This is done with disabling of CONFIG_ARC_HAS_ATOMICS in uClibc.

Currently we __remove__ this option from .config but this makes no sense as
its default state is "y" so we need to explicitly disable it instead.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2018-05-21 15:03:17 +03:00
Alexey Neyman
d274ab06fe
Merge pull request #967 from stilor/fix-building-older-glibc
Fix building older glibc
2018-05-15 16:41:28 -07:00
Alexey Brodkin
86bbb14649 Add ARC architecture support
Synopsys' DesignWare ARC Processors are a family of 32-bit CPUs
that SoC designers can optimize for a wide range of uses,
from deeply embedded to high-performance host applications in a variety
of market segments.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2018-05-15 16:37:08 +03:00