Commit Graph

1473 Commits

Author SHA1 Message Date
Bryan Hundven
2a89c32193 gcc: Remove gcc <= 4.7.x
As per #222, in crosstool-NG >= 1.23.0, we will only support:

 [upstream supported gcc versions] - 1

As of this writing, these versions are:

* 5.2.0
* 4.9.3
* 4.8.5 (the -1, since development on 4.8.x is now closed)

I plan to keep 4.8.5 around because of some architectures having issues
with over-optimization or just faulty optimization in the 4.9.x and
possibly newer versions.

I also cleaned up a requirement for glibc to depend on >= gcc-4.6.x for
>= glibc-2.20, but since the lowest gcc we support after this change is
>= 4.8.5, this condition can go away.

Patches for older gcc versions are removed in the next commit.

This closes #222

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-29 17:36:58 -08:00
Bryan Hundven
3c072d6206 binutils/gdb: Fix configure options when building from binutils-gdb repo
When building from:
{git,http}://sourceware.org/git/binutils-gdb.git

and setting BINUTILS_CUSTOM or GDB_CUSTOM, they could be the same
source.

These config options should not affect normal released versions.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-24 20:40:44 -08:00
Bryan Hundven
8478376a86 uClibc: Add kconfig option to enable IPv6 support
This commit adds a kconfig option to enable IPv6 support.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-22 22:18:08 -08:00
Ray Donnelly
b0743fdcda Clang: Use {C,CXX}FLAG -fbracket-depth=512 for GCC build
https://llvm.org/bugs/show_bug.cgi?id=19650
https://gcc.gnu.org/ml/gcc/2014-05/msg00014.html

Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
2015-11-22 14:39:26 +00:00
Bryan Hundven
d5eb7360d5 uClibc: remove references to sh64*
As per the change notes of GCC-6:

https://gcc.gnu.org/gcc-6/changes.html

and conversations I've had with the buildroot folks, there is no need
to support sh5/sh64.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-21 01:26:42 -08:00
Bryan Hundven
6a6968cc8f showSamples: Fix uClibc-ng name and Mingw-w64 versions
Some LIBCs need some love in showSamples.sh.

uClibc-ng is of type of uClibc, so output uClibc-ng if
CT_LIBC_UCLIBC_NG=y.

mingw-w64 doesn't have a CT_LIBC_VERSION, but it does have a
CT_WINAPI_VERSION. So output that instead.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-17 13:18:14 -08:00
Bryan Hundven
5739495c35 showSamples.sh: Fix how we get gcc and version for showSamples.sh
I'm not even sure how the previous loop was supposed to work.
The config variables are not exported to the environment.
Now we properly get which cc we are using and grab the version to
display it correctly with the output of wiki-samples.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-17 11:41:08 -08:00
Bryan Hundven
3c1d8625e6 Merge pull request #268 from bhundven/consistent_usage_of_found_apps
consistency: Use exported variables of required tools
2015-11-17 04:13:26 -08:00
Bryan Hundven
6f8e89cb5c consistency: Use exported variables of required tools
We check for apps:

* make
* sed
* grep
* awk
* libtool/libtoolize
* install
* patch
* and more

...during configure. Our scripts should be consistent about using the
variables that define where the found tool was found.

Of course, we do hard-link these tools in buildtools, but that should be
a backup for the components we are building. Our scripts should always
use the tools we find.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-17 02:48:09 -08:00
Bryan Hundven
20f69f3240 ncurses: bump to ncurses-6.0
This commit removes ncurses-5.9 and adds 6.0.
I also provide the stable patch updates in patches/ncurses/6.0.
I have also added an experimental toggle for enabling the new ABI
support.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-16 13:35:56 -08:00
Bryan Hundven
7bca67bbb2 file modes: Fix file modes... again.
These files are sourced, not executed, and do not need to be executable.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-14 20:22:55 -08:00
Bryan Hundven
465e5a8b9f Merge pull request #249 from stilor/expat_ncurses
Promote expat/ncurses to 'companion libs'
2015-11-14 17:40:21 -08:00
Alexey Neyman
6744ff68e4 Do not log state saving/restoring as ERROR.
These are not errors.

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-11-14 15:26:46 -08:00
Alexey Neyman
847d1d8abf Update new companion libs with *_for_target.
Signed-off-by: Alexey Neyman <stilor@att.net>
2015-11-13 10:34:13 -08:00
Alexey Neyman
be2203be68 Pass CFLAGS/LDFLAGS to backends.
Signed-off-by: Alexey Neyman <stilor@att.net>
2015-11-13 10:32:26 -08:00
Alexey Neyman
16f7a9578f Clean up 300-gdb.sh a bit.
Now that expat/curses have migrated into separate script, no need for
do_debug_gdb_parts() and need_gdb_src checks.

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-11-13 10:32:26 -08:00
Alexey Neyman
4d2d2ba954 Enable building expat/ncurses for host.
Then re-enable cross-gdb for nios2-spico-elf sample, previously
disabled.
2015-11-13 10:31:46 -08:00
Alexey Neyman
6102726147 Change ncurses to a companion library.
Currently, builds for build and target (matching the current
implementation). Need to add building for host for canadian crosses.

TIC_PATH is removed - configure in ncurses searches $PATH, so it finds
'tic' in buildtools anyway. Arguably unneeded code for MacOS also
removed, with a FIXME comment for validation by someone using MacOS.

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-11-13 10:31:46 -08:00
Alexey Neyman
ac7ce38475 Convert expat for target into a companion lib.
Expat-for-host to be done.

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-11-13 10:28:44 -08:00
Alexey Neyman
6f7e6b9969 Build companion libs for target.
Currently, only libelf has a for-target step - but it generalizes
the step to hook other libraries into this step.

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-11-13 10:24:22 -08:00
Bryan Hundven
e78251b751 Merge pull request #253 from jcmvbkbc/xtensa-for-mainline-20151113
Add support for Xtensa architecture
2015-11-13 01:47:08 -08:00
Bryan Hundven
e4bb360748 file modes: Set files to be non-executable
I was going to start doing some autoconf work, and noticed that
configure.in was executable. Then I noticed Makefile.in was executable.

o.O

So, I ran ```find . -type f -executable``` and found a bunch of files
that shouldn't be set executable.

This commit makes them normal files again.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-12 23:18:04 -08:00
Chris Zankel
81328ed1cb xtensa: add support for the configurable Xtensa architecture.
The Xtensa processor architecture is a configurable, extensible,
and synthesizable 32-bit RISC processor core. Processor and SOC vendors
can select from various processor options and even create customized
instructions in addition to a base ISA to tailor the processor for
a particular application.

Because of the configurability, the build process requires one additional
step for gcc, binutils, and gdb to update the default configuration.
These configurations are packed into an 'overlay' tar image, and are
simply untarred on top of the default configuration during the build.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2015-11-13 09:08:53 +03:00
Bryan Hundven
57de8dcf22 Merge pull request #239 from diorcety-ctng/cc-cygwin-mingw-linux
Canadian cross build = x86_64 Cygwin host = x86_64 MinGW_W64 target = x86_64 GNU/Linux
2015-11-12 21:50:31 -08:00
Bryan Hundven
4c9218d51d Merge pull request #245 from villytiger/install-strip
Use install-strip target for gcc optionally
2015-11-12 21:50:08 -08:00
Bryan Hundven
377493fc5d Merge pull request #221 from bhundven/uclibc-ng
Add support for uClibc-ng
2015-11-12 21:46:34 -08:00
Ray Donnelly
06855ab27e libtool: Update to 2.4.6 and patch for Cygwin
Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
2015-11-13 02:17:46 +00:00
Ray Donnelly
9e81836b81 Add gettext and libiconv as companion libs
.. they're needed for the RPC generation in glibc
on both Cygwin and MinGW-w64.

Neither are built on GNU/Linux and iconv is not
built on Darwin.

Two patches for gettext are needed, one so that
-O0 works and one so that static builds can be
made.

They can take a good while to build, so if not
needed for_host or for_build then they are not
built.

Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
2015-11-13 02:17:45 +00:00
Bryan Hundven
a173dfa939 uClibc: Fall back to default configs if not provided
I've added the .config files to contrib/uClibc-defconfigs from buildroot
to use as default configs if they are not provided in the sample.

If a particular architecture really needs an option set, it should be
either updated in the manange_uClibc_config function in
scripts/build/libc/uClibc.sh or a custom ${uclibc_name}.config should be
added to the sample (usually via `ct-ng saveconfig`).

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-12 16:15:41 -08:00
Bryan Hundven
21a448516e uClibc: Add support for uClibc-ng
This commit adds uClibc-ng 1.0.8.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-12 16:15:41 -08:00
Bryan Hundven
1c924f06fa uClibc: rewrite mungeuClibcConfig to manage_uClibc_config
This commit updates uClibc to use the new CT_Kconfig options from the
previous commit. The older sed method of sanity checking the uClibc
.config was error prone and clumsy.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-12 16:15:41 -08:00
Bryan Hundven
c4d14a97ad functions: Add global functions for manipulating kconfig options
This commit adds 4 new functions to aid in the process of managing a
kconfig .config file:

* CT_KconfigSetOption <option> <value> <file>
* CT_KconfigEnableOption <option> <file>
* CT_KconfigDisableOption <option> <file>
* CT_KconfigDeleteOption <option> <file>

(akin to how buildroot manages the uClibc.config)

These functions are global so that we can manage any component that also
uses kconfig, or to be able to use it internally on Crosstool-NG's
kconfig files.

Last but not least, be consistent and update sed to be ${sed}!

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-12 16:15:39 -08:00
Bryan Hundven
ad0d71d287 mpfr: Swap primary mirror to gnu.org
mpfr.org has been less then reliable, so lets make gnu.org the primary
instead of the secondary source.

This closes #250

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-11 17:19:51 -08:00
Bryan Hundven
930fa77076 uClibc: Reduce supported versions
This commit reduces the number of supported versions to:

* 0.9.33.2
* custom location

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-11 08:27:33 -08:00
Ilya Lyubimov
69405c3b32 Use install-strip target for gcc optionally 2015-11-11 12:29:54 +03:00
Alexey Neyman
f3e62e0c09 Disable parallel build of mingw-w64-crt.
Unfortunately, parallel build issue is not yet fixed in current
mingw-w64 sources.

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-11-10 18:21:43 -08:00
Alexey Neyman
bea0cde305 Support mingw-w64 in addToolVersion.sh.
... and add 4.0.4 release.

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-11-10 18:18:57 -08:00
Bryan Hundven
e9e29e7a46 blackfin: Remove blackfin support
This commit removes blackfin support.

I'm open to re-adding blackfin after crosstool-1.23.0 is released, but
it is currently too difficult to port forward to newer versions of gcc
and uclibc.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-09 22:30:45 -08:00
Bryan Hundven
85f98147f5 Merge pull request #233 from stilor/fix-build-all
Fix build-all
2015-11-04 02:50:05 -08:00
Bryan Hundven
5ffc9ecd10 Merge pull request #235 from stilor/ctng-source
ctng source
2015-11-03 00:35:30 -08:00
Bryan Hundven
3b854d4939 uClibc: Don't use CROSS, use CROSS_COMPILE instead
As per:
http://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/commit/Makefile.help?id=044843f002f666db3bc06c513ed6291a00ad1225

CROSS= is for compatibility, but we plan on dropping older uClibc
versions, and adding uClibc-ng and uClibc-snapshot support.

Use CROSS_COMPILE instead.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-02 17:01:20 -08:00
Bryan Hundven
bb821551c5 linux: Set CROSS_COMPILE while building/checking headers
Some architectures, like arc and blackfin set CROSS_COMPILE to a default
if it is not set on the command-line.

Since we are building the cross-compiler, we need to ALWAYS set
CROSS_COMPILE, since building/checking headers is done after the GCC
PASS1 step.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-11-02 16:55:44 -08:00
Bryan Hundven
1a25115a18 gcc: Support only the latest branch releases of gcc
This change, as per #222, reduces the number of supported releases of
gcc to the latest branch releases.

I noticed while doing this work that gcc-4.5.4 was never added, so I
moved patches for gcc-4.5.3 to 4.5.4 and updated the
bfin-unknown-linux-uclibc example. Also, 120-siginfo.patch was fixed
upstream in the 4.5.4 release, so this patch is omitted.

I also bumped the avr sample to 4.9.3 from 4.9.2.

With the addition of gcc-5.x, the gcc release team now releases the
major.minor.0 versions, while updates to the branch are available in
svn/git. We'll address that when we get to issue #219. This change just
removes CC_GCC_5_1 and moves CC_GCC_5_2 to CC_GCC_5, and removes
CC_GCC_5_1_or_later and moves CC_GCC_5_2_or_later to CC_GCC_5_or_later.

This is the first of two part changes, as mentioned in #222.
This change is slated for release in 1.22.0. The next change will be
slated for 1.23.0, and will limit gcc versions to what is on
https://gcc.gnu.org under "Release Series and Status", which is
currently 4.9.3 and 5.2.0, although I will also support the previous
supported version. In this example that would be 4.8.5.

Last, but not least, this change also retires AVR32 support.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-10-31 12:17:35 -07:00
Alexey Neyman
b2f8afef85 Interpret escape sequences in CT_DoLog.
Otherwise, CT_Abort messages with \n are not displayed properly.

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-10-30 16:24:52 -07:00
Alexey Neyman
5844514e74 Fix samples using GMP 4.3.2.
Some older versions of configure (including the one in GMP 4.3.2)
interpret the $ECHO environment variable as the `echo' utility to
use. CT-NG sets the variable to `:' and exports it if V=0 or V=1
is supplied, breaking the samples using such configure. This currently
includes bfin-unknown-linux-uclibc and powerpc-unknown-linux-uclibc.

Also, correct the description of the V= variable - V=0 is *not* the
default; in fact, default does not correspond to any of the V=[012]
values.

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-10-30 16:24:52 -07:00
Alexey Neyman
1d6bed6254 Only create backtrace stamp if dir exists.
If the build is aborted before the working directory is created,
there's also an induced error message about inability to create
a 'backtrace' file. But in that case, there is no subshells executing
yet.

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-10-30 16:24:52 -07:00
Alexey Neyman
80cbfb9da7 Make show-config consistent with sample name.
'ct-ng show-config' will prepend host for canadian builds; otherwise,
the name is different from the name used to configure the build
(and indistinguishable from a simple cross).

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-10-30 16:24:52 -07:00
Alexey Neyman
f849505ac9 Sanity check for number of parallel jobs.
Signed-off-by: Alexey Neyman <stilor@att.net>
2015-10-30 13:53:53 -07:00
Alexey Neyman
319023c7af Implement 'ct-ng source'.
Provides a simpler alternative to editing config to enable
CT_ONLY_DOWNLOAD, doing ct-ng build and then restoring .config.

Signed-off-by: Alexey Neyman <stilor@att.net>
2015-10-30 01:23:53 -07:00
Bryan Hundven
f7c312b240 scripts/config.{sub,guess}: Update from upstream
Update config.sub and config.guess from:
* git://git.sv.gnu.org/config.git

See their gitweb:
* http://git.savannah.gnu.org/gitweb/?p=config.git

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-10-29 15:13:33 -07:00