This follows the trend set by 1*.sh scripts that configure ISL, GMP,
MPFR, CLooG, etc. Building with shared libraries presents all kinds
of problems:
- The shared libraries need to be installed into ${CT_PREFIX_DIR}.
- The binaries linked against companion libs need to have proper
RPATH, or they're looking for shared libs in
.build/${CT_PREFIX}/buildtools/lib.
- All libraries must agree as to whether they're built shared,
static, or both. Otherwise, gettext tries to link in static libncurses.a
into a shared library and fails (since libncurses was compiled without
the -fPIC switch and hence contains relocations that cannot be handled
in a shared library).
So this fixes the current mess. If we decide to re-enable building
the companion libs shared, we should probably make this dependent on
a separate suboption of CT_STATIC_TOOLCHAIN.
Add a config loosely based on one reported in the issue 274.
Signed-off-by: Alexey Neyman <stilor@att.net>
uClibc-ng 1.0.20 fixed static linking with "libdl" by adding all libdl functions
into the libc. On xtensa, though, libdl contains an unresolved reference that is
satisfied by the ld.so - which is not a part of the linking in a static case.
Signed-off-by: Alexey Neyman <stilor@att.net>
3.0.9/100-headers-install-fix*.patch picked up upstream.
The Cygwin fix is needed for Cygwin on all kernel versions.
Signed-off-by: Alexey Neyman <stilor@att.net>
There are two separate issues with gdb configure usage:
1) inspecting build system libraries while cross-compiling;
2) preferring a shared library over static one.
The first usage issue is described and fixed now.
The second issue was described but the notes were removed
for some reason. This patch restores those notes.
Suggested-by: Alexey Neyman <stilor@att.net>
Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
This is workaround, as more packages require similar tweaks (some
depend on X_Y_Z_or_later config variables either in kconfig, or in
the build scripts.
We should have a CT_CompareVersion, that will apply the default
or per-package method of comparison.
Signed-off-by: Alexey Neyman <stilor@att.net>
In that case, CT_GetCustom just creates a symlink to the original.
In that case, 'cp -a <path> .' gives an error and 'cp -a <path> <newdir>'
creates <newdir> as a symlink (which will then run the build inside
the shared directory, .build/src/<package>).
Signed-off-by: Alexey Neyman <stilor@att.net>
This fixes the following kind of ICE on configurations with zero
overhead loops support:
../src/pjlib-test/thread.c: In function 'thread_test':
../src/pjlib-test/thread.c:328:1: internal compiler error: in
dwarf2out_var_location, at dwarf2out.c:21846
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This enables the resulting toolchaing to be used to build a canadian
cross to x86_64-pc-linux-gnu target. Unmark that sample as broken,
it now builds successfully.
It is likely that it is affected by issue #483, too - I see the
resulting gcc executable has a DLL dependency on libiconv-2.dll,
which is only installed into .build/.../buildtools. This will be
investigated/fixed separately.
Signed-off-by: Alexey Neyman <stilor@att.net>
In case of bare metal, newlib is built without any syscalls,
and dmalloc fails to link with undefined references to _exit,
fstat, open, sbrk and so on.
Same for DUMA: depends on <memory.h>, not available with newlib.
Signed-off-by: Alexey Neyman <stilor@att.net>
Current build passes {CFLAGS,LDFLAGS}_FOR_HOST - which breaks canadian cross
(e.g. tried building for x86_64-unknown-linux-uclibc host). This dates
back to the days of yore when CFLAGS were set directly in the do_gcc_core_backend
(and that function is used as the final gcc's backend).
do_gcc_core_backend is now passed with CFLAGS/LDFLAGS to use, so let
the pass-1/pass-2/final-for-build steps pass the appropriate flags.
Signed-off-by: Alexey Neyman <stilor@att.net>
Put xtensa core name to the tuple vendor string (without any overlay the
default core is 'fsf') and rename sample directory accordingly.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This fixes build for elf target with windowed xtensa core that currently
breaks with the following error message:
unwind-dw2-fde-dip.c:36:40: fatal error: elf.h: No such file or directory
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Add -mlongcalls and -mtext-section-literals to target CFLAGS. Target
libraries built with these flags have great call range, useful for linux
applications.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This fixes toolchain build with --text-section-literals, which should
normally be enabled for linux targets.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
To build uClibc correctly we need correct endianness selected in the
crosstool-NG. Xtensa cores may be little- or big-endian, but this
property is static. The toolchain knows the core endianness and doesn't
need options to select it.
Enable ARCH_SUPPORTS_BOTH_ENDIAN and select LE by default. Specify empty
CT_ARCH_ENDIAN_CFLAG so that -m{big,little}-endian don't get added to
the TARGET_CFLAGS, as it's not supported by gcc. Specify empty
CT_ARCH_ENDIAN_LDFLAG so that -EB/-EL don't get added to the
TARGET_LDFLAGS as they are ignored. Select big-endian in the example
xtensa-unknown-linux-uclibc configuration.
This fixes uClibc toolchain build for little-endian cores.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>