Commit Graph

210 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
3f16a8e269 Restore a missing GDB option
(whether GDB has --disable-build-with-cxx) and use it.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-05-06 15:20:50 -07:00
0f34b0ebf0 Fix strace 4.21+ on aarch64
... which now defaults to --enable-mpers=yes, which attempts to
invoke aarch64-*-gcc with -m32 and fails.

Signed-off-by: Alexey Neyman <stilor@att.net>
2018-04-29 12:06:54 -07:00
6c9027b401 Fix gdb build flags forming
Build flags are scalar variables.

Signed-off-by: Sergey Korolev <s.korolev@ndmsystems.com>
2017-12-18 02:35:58 +03:00
37caa3d4d7 Merge pull request #882 from ksergeyv/gdb-link
Fix variables passing to gdb configure scripts
2017-12-17 11:42:07 -08:00
70a1584e15 Fix variables passing to gdb configure scripts
These changes mainly fix static linking errors when building static
native gdb and gdbserver (tested with gcc 7.2.0 + uClibc-ng 1.0.27 +
binutils 2.29.1 for MIPS):

[ALL  ]    .../lib/libstdc++.a(eh_throw.o): In function `__cxa_throw':
[ALL  ]    (.text.__cxa_throw+0x64): undefined reference to `_Unwind_RaiseException'
[ALL  ]    (.text.__cxa_throw+0x6c): undefined reference to `_Unwind_RaiseException'
[ALL  ]    .../lib/libstdc++.a(eh_throw.o): In function `__cxa_rethrow':
[ALL  ]    (.text.__cxa_rethrow+0x78): undefined reference to `_Unwind_Resume_or_Rethrow'
[ALL  ]    (.text.__cxa_rethrow+0x80): undefined reference to `_Unwind_Resume_or_Rethrow'
...

The problem is in mixing of CPP, CC, CXX, and LD with CPPFLAGS, CFLAGS,
CXXFLAGS, and LDFLAGS before passing to configure scripts.
gcc is sensitive to argument order and the scripts are normally responsible
to combine the variables in a proper way.

Signed-off-by: Sergey Korolev <s.korolev@ndmsystems.com>
2017-12-14 22:55:43 +03:00
1de8f5e98b Do not build a native gdbserver automatically
Signed-off-by: Sergey Korolev <s.korolev@ndmsystems.com>
2017-12-14 00:09:36 +03:00
ca45a8f9ab Add -D__GLIBC__ to target CFLAGS
... when using musl to compile strace.

Also, honor CT_TARGET_CFLAGS in scripts compiling target libs/binaries.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-09-30 18:47:35 -07:00
1d724767bd config: Add package versioning flexibility
Some users (like myself) may want to omit the crosstool-NG version
from the binaries' versioning output, as it can be incredibly long
and not too helpful. Add a config option to disable it. The possible
combinations are as follows:

- crosstool-NG version (default)
- crosstool-NG version - custom toolchain ID
- Custom toolchain ID
- No crosstool-NG version OR custom toolchain ID

Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2017-09-01 16:48:59 -07:00
fd522eed50 Resolve a few more TBDs
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-09 23:08:12 -07:00
9d91f44bc8 Separate the notions of package name/label
Also, remove resolved TBDs.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-08 10:57:57 -07:00
567277099a Fix the references to old config variables
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-08 10:57:56 -07:00
50df064004 Add option to build gdbserver for target that does not require libstdc++.so 2017-06-16 22:28:07 -07:00
1e37cd5450 Honor CFLAGS_FOR_BUILD
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-06-15 23:07:00 -07:00
72a5a1d6de Add GDB 8.0 ...
... which now requires C++.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-06-04 23:23:09 -07:00
0fc6f1c47e CC_FOR_BUILD in gdb.sh
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-04-02 15:55:07 -07:00
4562aa2cff Handle Python with non-default names
Check for python2/python3 and if found, pass them to --with-python.
Allow user to override the choice via a new config option. This
fixes systems where there is no "python", only "python2" or "python3".

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-04-01 19:19:35 -07:00
3906acc007 Move some scripts to a new directory, maintainer
... which are not of much interest to the end user.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-03-21 14:03:31 -07:00
2ef7d36efb Disable format warnings for clang
It picks up gettext string and results in [ERROR] messages from ct-ng
when gettext strings happen inside an error() call.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-03-07 00:15:29 -08:00
59bab98b2d Revert "Determine whether -E/-r option selects extended regexp"
This reverts commit 7bcf18bfab.
2017-02-26 19:06:35 -08:00
7bcf18bfab Determine whether -E/-r option selects extended regexp
... and then use the right option. See the note in scripts/functions
on where we should use ${foo} and where just 'foo'; this boils down to
whether we can expect the build tools override to be in effect (e.g. in
the actual build scripts) or not (i.e. outside of scripts/build).
While running in scripts/functions, or in scripts/crosstool-NG.sh the
build tools override directory (.build/tools/bin) may have not been
set up (yet, or at all).

Also, modify the installed scripts (populate, xldd) accordingly.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-13 22:47:40 -08:00
93db580091 Merge pull request #584 from stilor/disallow-gold-for-elf2flt
Require BFD linker if building for flat format
2017-02-10 23:55:16 -08:00
5920157fdd Supply --disable-build-with-cxx instead of requiring C++
... when building native GDB/gdbserver.

Suggested by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-09 22:14:36 -08:00
a41978b95a Remove wrapping if in 300-gdb.sh
If GDB is turned off, the script will not be even sourced. Otherwise,
if GDB checkbox is set but none of the cross/native/gdbserver are
selected, debug.sh gives a bogus error message.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-09 21:21:57 -08:00
c83335c5a3 Use 'make install' to install DUMA
This serves two purposes:
- installs its manpage
- installs headers, without them it does not make sense to install a
static library

Unfortunately, there's no way to select shared-only build of DUMA.
Hence, disable selection for static library.

Also, allow user to select whether to use stock or ct-ng's wrapper.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-30 12:11:37 -08:00
3fc7c1ef69 Fix handling of ltrace 0.5.3 peculiarity.
Also, remove 0.5.2 selection - no longer available for download.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-26 12:19:49 -08:00
7186e39f32 Run all configure scripts using ${CONFIG_SHELL}
... as its help message says in menuconfig.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-25 00:06:28 -08:00
fb426ac912 Replace strace workaround with a patch.
The correct solution was checked in to strace GIT; will be part of the
next release. Backport patch to 4.10..4.15, and remove the workaround
from 500-strace.sh. Versions 4.9 and older should build fine even
without the workaround (they would be picking up wrong definitions,
but they need different patch and I don't feel like spending any time
on these versions).

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-16 09:07:59 -08:00
c1612e9295 Use ${CT_CC} instead of gcc ...
... when refering to target's compiler.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-13 21:47:07 -08:00
d34a6bd8a0 GDB 7.12 needs c++.
Also, minor fixes in 300-gdb.sh

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-13 21:47:07 -08:00
9f5a92a783 Unify fetching Linaro components.
Add CT_GetLinaro, use it from gcc/binutils/gdb/glibc/newlib.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-12 23:00:41 -08:00
c69e593a92 Pick up <linux/ioctl.h> and friends from TARGET.
Otherwise, cross-compiling fails on non-Linux build machines.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-10 10:39:37 -08:00
7989e5d743 ${LD_TARGET} -> ${CT_TARGET}.
Obvious typo, worked by some miracle.

Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-10 10:39:37 -08:00
4a138d8407 Shut clang's warning that confuses configure.
Warning causes gdb's configure to not detect <limit.h> declarations
of LONG_MIN/MAX.

Found-by: Kirill Smirnov <kirill.k.smirnov@gmail.com>
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-10 10:39:37 -08:00
83d9e6a49a Kill dmalloc.
- No new releases in almost 10 year.
- No public bug tracker or VCS.
- No responses from maintainer over sent patches.

RIP, dmalloc.

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-12-16 16:10:32 -08:00
f5a375e407 Merge pull request #443 from KirillSmirnov/gdb-native
debug/gdb: properly link with expat
2016-12-05 18:24:05 -08:00
ee1c04378c debug/gdb: restore comments
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>
2016-12-05 23:39:55 +03:00
51a3606b17 Fix use of custom location if it is a directory.
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>
2016-12-02 15:02:58 -08:00
488b27f58b Partially revert 6f8e89cb5c.
The referenced commit replaced 'make' with '${make}' everywhere. This is
wrong for at least the utilities that we may build as companion tools
(make, libtool): this will always invoke the version detected by configure
by supplying the absolute path. In other words, the wrappers in
.build/tools/bin are not fallbacks - they are either temporary (in case
a respective companion tool is built) or permanent redirectors.

This is the reason why the PATH= has .build/*/buildtools/bin at higher
precedence than .build/tools/bin; the latter has the versions detected by
configure and the former has the versions built as companion tools.

Revert the rest of the gang (grep/sed/...) for consistency. After all,
we may decide to supply some of them as well (awk, for instance).

Signed-off-by: Alexey Neyman <stilor@att.net>
2016-11-20 23:50:17 -08:00