Building cross-gdb in canadian cross requires expat/ncurses for the
host. Currently, 300-gdb.sh only builds expat/ncurses for the target
(for native-gdb). For cross-gdb on regular cross (build==host), expat
and ncurses are expected to be provided by the host.
There are two approaches possible:
- If building for canadian cross, build expat/ncurses for cross-gdb
just as the native-gdb does.
- Promote expat/ncurses to first class citizens and build them as
companion libs during the build of the build-to-host toolchain.
I am leaning towards the latter approach - it would also allow to
specify the versions for expat/ncurses rather than have them hardcoded
in 300-gdb.sh - but would appreciate feedback.
Signed-off-by: Alexey Neyman <stilor@att.net>
Error message:
[EXTRA] Preparing working directories
[ERROR] Missing: 'i586-mingw32msvc-ar' or 'i586-mingw32msvc-ar' or 'ar': either needed!
Signed-off-by: Alexey Neyman <stilor@att.net>
The issue with this sample is that the sh4-* targets in GCC do not
implement __builtin_trap() function. Starting with release 5.1,
GCC inserts abort() calls where NULL pointers are dereferenced. The
elf/dl-conflict.c in glibc is one such place: it calls elf_machine_rela
with NULL `sym' pointer. This causes an undefined `abort' symbol to
appear in the object file and as a result, pulls in some files during
the linking of the dynamic loader that are not supposed to. Eventually,
it results in link error due to multiple definitions of _itoa and some
other symbols.
The right fix would be to implement __builtin_trap() for sh4 in GCC.
A workaround would be adding -fno-delete-null-pointer-checks to
CFLAGS-dl-conflict.c in elf/Makefile. Until either of these happens,
though, pin the GCC version to 4.9.3 - the last that did not generate
`abort' calls. Note that the version where GCC started to generate
`abort' calls is apparently different for different architectures;
the issue in [1] was reported against GCC 4.9.
References:
[1] https://www.sourceware.org/ml/libc-alpha/2014-10/msg00807.html
(similar issue on HP-PA which was resolved by implementing
__builtin_trap)
Options were renamed. However, matching current option names result
in a compile error for strfmon_l.o in glibc: GCC 4.6 detects an
unitialized variable in its own va_arg() implementation. Likely,
an older GLIBC was used when this sample was submitted - which did
not provide -Werror in CFLAGS.
Thus, use most recent GCC (5.2.0) and revert GLIBC_FORCE_UNWIND to
its default value, 'y' (as forced unwind is required with this version).
- Incompatible ISL/CLooG were requested by config after newer releases
of both were brought in.
- Consistency with other samples: save tarballs (which will avoid
downloading them each time from Travis), extra logging.
This should ideally be upstreamed to uclibc maintainers, but with the
last release more than 3 years ago, I wouldn't hold my breath for a
fix being released any time soon.
As of right now, ltrace fails to build. To get CI happy, lets just
disable it!
When we fix ltrace, just revert this change.
This is also in reference to bug #115
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
.. and set CT_TARGET_VENDOR to w64. Otherwise config.gcc doesn't
pickup the right files for include_next (and probably many other
things go wrong too).
w64 has been the correct vendor for absolutely ages now on all
distributions that provide MinGW-w64 cross compilers.
Signed-off-by: Ray Donnelly <mingw.android@gmail.com>
C++ support is enabled in most samples existing in crosstool-ng and is also
supported by AVR.
As pointed out in pull request #124 in the crosstool-ng github, Arduino based
projects willing to use this toolchain will require C++ support.
Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
The avr-libc manual and most distributions build the AVR 8-bit gcc
toolchain with the "avr" (non-canonical) target.
Some experimentation also led to the conclusion that other (canonical)
targets are not very well supported, so we force the "avr" target for
crosstool-ng as well.
Some patches are required in avr-libc for a toolchain with gcc 5.x to
work. These patches are still not part of any avr-libc release version,
so the config sample currently forces 4.9.x to avoid requiring to clone
avr-libc trunk.
References:
https://savannah.nongnu.org/bugs/?44574https://gcc.gnu.org/gcc-5/changes.html
Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
As posted on http://www.eglibc.org/
====================
EGLIBC is no longer developed and such goals are now being addressed
directly in GLIBC.
====================
I'm not interested in maintaining build support for unsupported
software.
Older branches of crosstool-ng continue to have eglibc support.
If you find issues with older branches, I'm always open to pull
requests.
Removing eglibc also frees up glibc cleanup and build optimization.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Fixing this sample proved to be, well, challenging.
Mark it broken so it does not stop the release.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Bryan Hundven <bryanhundven@gmail.com>
Removed the arm-davinci sample, it does not bring much more
that the other samples.
Add an ARM uClibc EABIhf sample.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Use a more coherent naming for the options. This will help commonalise
the native case (e.g. NPTL on Linux, win32 on Windows), and add alternate
implementations (e.g. musl.)
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Bryan Hundven <bryanhundven@gmail.com>
This configuration has been tested on an Atmel sama5d3 board. It is a Cortex-A5
without neon and the floating point unit is a vfpv4-d16.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
This commit updates the arm-unknown-linux-uclibcgnueabi sample to the
modern age:
- gcc is bumped from 4.4.3 to 4.8.2
- binutils is bumped from 2.19 to 2.24
- gdb is bumped from 7.1 to 7.7
- uclibc is bumped from 0.9.30 to 0.9.33
- kernel headers are bumped to 3.10
- strace is bumped to 4.8
- all companion libraries are also updated
In addition, the ARCH_CPU/ARCH_TUNE configuration options are changed
from xscale to arm926ej-s, with the reasoning that in the ARMv5
ecosystem, ARM926EJ-S cores are much, much more widely used than
Xscale cores.
The resulting toolchain was tested by building a Busybox-only system
with Buildroot, and testing it under an ARMv5 Qemu emulation.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
In make-3.8x, the $(wildacrd) function would sort the entries,
while in make-4.x, it would just return the entries in any
unpredictable order [*]
Use the $(sort) function to get reproducible behaviour.
[*] Well, most probably the roder the entries appear when read
from readdir()
Reported-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
This patch fixes the download of the avr32 headers in crosstool-ng by
fetching them directly from Atmel's web site instead of the now-broken URL
given by the original author of the avr32-header-fetching modification,
who fetched them from a copy on his own, now-defunct server.
It also adds the necessary logic to extract from a zip file, as that is
how the headers are packaged.
To configure it for avr32 after launching ct-ng menuconfig in an empty
directory:
Paths and misc options ->
Shell to use as CONFIG_SHELL = sh
Target options ->
Target Architecture = avr32
Toolchain options ->
Tuple's alias = avr32
Binary utilities ->
binutils version = 2.18a
C compiler
gcc version = 4.2.2
C-library
newlib version = 1.17.0
Enable IOs on long long = yes
Enable IOs on floats and doubles = yes
Disable the syscalls supplied with newlib = yes
CONFIG_SHELL is necessary to get round the "fragment: command not
found" bug when binutils-2.18 is configured using bash.
Prepared against crosstool-ng mercurial trunk on 31 March 2012.
Signed-off-by: Martin Guy <martinwguy@gmail.com>
[yann.morin.1998@free.fr: update bundles sample accordingly]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <CAL4-wQrg_NQ7jm-NCADqeyQr9twyhtx42OUGNThP6gWeqZc=kw@mail.gmail.com>
Patchwork-Id: 232612
Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
[yann.morin.1998@free.fr: make it a defconfig with pinned versions]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <bdf1fde968aee8d0cd95.1360063830@advdt005-ubuntu>
Patchwork-Id: 218239
Now we use defconfig files to store the samples, we have to be a bit more
conservatives in the symbols names, so as to avoid gigantic version bumps
when updating sub-level versions from a package.
Update samples accordingly.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Add a ct-ng action to check if samples needs being updated.
This will be usefull when the config options change.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
It's been a while we've had those versions, time to unmark them being
experimental. It does not mean everything is perfect, but may gather
some more testing on those versions.
Update samples accordingly.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Replace the 32-bit-only mingw32 with mingw-w64 that is capable
of building toolchains for both 32-bit and 64-bit Windows.
kernel/mingw: replace mingw32 with generic Windows
kernel/windows: New windows kernel supporting 32 and 64 bit arch
libc/mingw: Remove old options
patches: Remove old mingw libc options' patches
Signed-off-by: "Yann Diorcet" <diorcet.yann@gmail.com>
[yann.morin.1998@free.fr: array var in libc/mingw.sh, typos]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <b045ac08fc9eac2e5ee3.1352898499@blackmint>
Patchwork-Id: 198901
Refresh all samples against the new set of options, to be
sure they all build OK, before we can do the release.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Since we use defconfigs to save the samples, listing all the
samples can no longer be done by passing all the sample names
at one to the script; we need to pass them one-by-one after
we expand the sample's defconfig ibnto a complete .config.
Reported-by: Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Now that we are using defconfig files, the samples do not contain
the full configuration, so we can not simply parse them to show
their content.
Instead, we must fake recalling a sample, and parse the generated
.config file.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
When saving a sample, use savedefconfig instead of copying
the full .config file.
This reduces the saved .config, and reduces clutter when it
is later upgraded.
Also use defconfig when retrieving a sample.
Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
No feature- of version-bump, just update the samples
so that no (NEW) option pops up in the release.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Update all samples to reflect the new set of options, plus:
- remove the arm-iphone-linux-gnueabi sample (obsolete...)
- disable hard-float in ARM bare-metal samples.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
It's been a while now that crosstool-NG has been hosted on it's own
website, and not at my home. Change every reference to the old site
to the new one, everywhere is makes sense to.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Update all the samples, so that there is not config-prompt when
recalling samples. This is no upgrade, it's just about having
new options set (y or n) in the samples.
Also, get rid of the armeb-test_nptl-linux-uclibcgnueabi, it's no
longer needed, there's a non-test sample with uClibc NPTL, now.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
[yann.morin.1998@anciens.enib.fr: add pointer to ML thread]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
As the mirror is always tried first, and the default is my server,
it means every download will first hit my server. As I do not have
much mirrored there, it means a lot of time is lost.
Disable use of the mirror for all samples, except the one that does
need it for the uClibc snapshot.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sample provided by Ioannis E. VENETIS
Reported-by: "Ioannis E. Venetis" <venetis@mail.capsl.udel.edu>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sample origiannly reported and provided by dsreed on the #crostool-ng
channel on freenode. I don't have the real ID for dsreed, but the
sample is not orginally mine, but his/hers.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Release time is coming at a fast pace. It is now time to
update the samples so they apply cleanly.
The canadian-cross sample mingw32,i686-none-linux-gnu has
been replaced with i586-mingw32msvc,i686-none-linux-gnu.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
ia64 is broken in every gcc/glibc combinations I tested (except for the
existing sample that used very old versions).
Nobody complained on the list about not being able to build recent versions.
So the only way forward I can see is to remove the architecture altogether.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
No new feature, no newer version, only updates so that
samples can be recalled without anything to set.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Parallel download can cause issues in some network environments
(eg. behind some firewalls/routers), so default to not //.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Update the configuration and the comment.
Reported-by: Anthony Foiani <anthony.foiani@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Both toolchains were tested to successfully:
- _build_ busybox, giving respectively an n32 and an n64 binary
although it has not been run-tested.
- build linux-2.6.36-rc3 for Loongson, giving an n64 vmlinux
(which is expected, due to the way the kernel is built),
and the kernel properly boots!
Credits are due to Julien MOUTHINO (julm on freenode#uClibc) for
testing that the kernel boots on his hardware! Cheers! ;-)
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
- don't list samples in the main help screen
- improve the samples listing in list-samples
- don't document the 'config' action, it's long dead
- document the 'V' environment variable
- improve on START, STOP and PREFIX environment variables
- add PREFIX and V to autocomplete
- advertise auto-complete at install time
Signed-off-by: Remy Bohmer <linux@bohmer.net>
[yann.morin.1998@anciens.enib.fr: use defaults for CT_TARGET_ARCH]
Signed-off-by: "Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
Dragan Marinkovic <marinkovic.dragan@gmail.com> wrote:
I finally had the time (and board) to spend some time with
crosstool-NG version 1.5.2 and TMS320DM6446 (DaVinci Digital Media
System-on-Chip,
http://focus.ti.com/docs/prod/folders/print/tms320dm6446.html).
I was able to successfully build and run v2.6.27-davinci1 kernel
(Kevin Hilman's branch) with busybox based initramfs on it. I don't
believe that any later kernel would represent any challenge (it just
happens that I'm currently working with this version). What a thrill
:).
crosstool-NG/toolchain config is attached. It may be useful to someone
using crosstool-NG ...
Don't select unneeded config knobs. Don't select non-existing config knobs.
Use the "no patch" config knob, instead of pointing to an non-exiting local
patch dir. Simplify the tuple-related scripts. Update the samples.
Bizarely enough, binutils-2.18 fails to build when CONFIG_SHELL is set
to /bin/bash (although it has code to recognise bash and act accordingly).
Waht is really strange is that it does build when CONFIG_SHELL is set
to /bin/sh, *although* /bin/sh is a symlink to /bin/bash. WTF?!?!
Add a sample that builds on Linux a mingw32-hosted toolchain that
generates code for i686-none-linux-gnu.
Signed-off-by: Bart van der Meulen <bartvdrmeulen@gmail.com>