The "ext" variable is set with the file extension of executable binaries
for a given platform. To improve tidiness, this patch ensures the
variable is always set even when there is no file path.
Signed-off-by: Joel Holdsworth <jholdsworth@nvidia.com>
In do_gcc_core_backend and do_gcc_backend, variables "file" and "ext"
are used to store intermediate values. Previously, these were not
declared local. This patch corrects this issue.
Signed-off-by: Joel Holdsworth <jholdsworth@nvidia.com>
In Bryan Hundven's patch 1ad439907 from 2010, the author added -lstdc++
and -lm to the host gcc build's LDFLAGS, because at the time the linker
did not correctly include these libraries causing the build to fail.
In modern builds, this causes a problem for canadian gcc builds where
the host machine is mingw32-w64 Windows.
Within the gcc build there is the liblto_plugin module. On Windows this
must be built as the "liblto_plugin.dll" dynamic library. However,
libtool cannot produce a dynamic library unless every library dependency
is also a dynamic library, and falls back to producing a libstdc++.a
static library. liblto_plugin does not require libstdc++ - it
does not contain any C++ code, and the dependency would usually be
elided by the linker.
Unfortunately, in this case, crosstool-ng will never build a
libstdc++.dll dynamic library - only a libstdc++.a static library.
Therefore, there will never be a dynamic library version of stdc++ for
libtool to load and then discard.
This patch corrects the issue by removing "-lstdc++" from LDFLAGS,
because modern versions of gcc are able to correctly include libstdc++
where necessary. It also remove "-lm" for similar reasons.
Signed-off-by: Joel Holdsworth <jholdsworth@nvidia.com>
Drop gdb 7.11.1, 7.12.1, 8.0.1, 8.1.1 and 8.2.1. Cleanup milestones
related to these older versions.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
strace aims to be backwards compatible with older kernels so we don't
actually need to have every strace version. The 4.15-4.26 versions were
technically in a ct-ng release so they were obsoleted. Now that the
1.25.0 release is out we can remove these versions.
Going forward we will obsolete the version that is in the latest ct-ng
release and simply remove intervening strace versions as they are
released.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
glibc 2.12.1 was marked as obsolete. Now that the 1.25.0 release is out
this version can be removed completely. As glibc 2.12.1 was the last
remaining version supported by glibc-ports support for glibc-ports is
also removed.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
The bionic libc support was out of date and relied on downloading
binaries from the internet. It was already marked as obsolete. Now that
the 1.25.0 release is out it can be completely removed.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
The avr-libc project has moved to github and is now using git. Update
the repository field accordingly.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Modern versions of the 'file' utility give different output for position
dependent and position independent executables. The populate tool should
consider both types.
Signed-off-by: Johan Levin <johan13@gmail.com>
Newer GCC versions trigger warnings on older GLIBC versions. GLIBC 2.29
is warning free with GCC9. GLIBC 2.31 is warning free with GCC10. GLIBC
2.34 is warning free with GCC11.
Add milestones for 2.31 and 2.34 and use those to set the default value
for GLIBC_ENABLE_WERROR based on the GCC version.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Bring in the following changes
- Fix a deflate bug when using the Z_FIXED strategy that can result in
out-of-bound accesses.
- Fix a deflate bug when the window is full in deflate_stored().
- Speed up CRC-32 computations by a factor of 1.5 to 3.
- Use the hardware CRC-32 instruction on ARMv8 processors.
- Speed up crc32_combine() with powers of x tables.
- Add crc32_combine_gen() and crc32_combine_op() for fast combines.
Drop two patches that have been applied upstream and regenerate the
remaining two.
Fixes#1708
Signed-off-by: Chris Packham <judge.packham@gmail.com>
On my Ubuntu machine (with `dash` version `0.5.10` and `bash` version `5.0.17`),
I would get errors such as the following:
```
crosstool-ng/scripts/functions: line 730: [: !=: unary operator expected
```
This is generally because a variable is not set, and expands to an empty string
causing the test operator to mis-parse the expression. To fix this, I have
added quotes around the variable.
Signed-off-by: Elliot Saba <staticfloat@gmail.com>
* Fixes 1.7.4 issue with recent meson versions which error on
'descrption' typo.
* Positional parameters (%$1d) in printf/scanf
* Lots (and lots) of math library exception/errno fixes; now tested against
glibc test suite.
Signed-off-by: Keith Packard <keithp@keithp.com>
Posix threads are enabled in the x86_64-w64-mingw32 sample having them
enabled in i686-w64-mingw32 makes things consistent for these targets.
Fixes#1696
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Some versions of GCC emit a .machine directive near the start of the
compiler's assembly output that overrides the CPU passed on the command
line. Bring in an upstream change for binutils that works around the
problem.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Prior to commit bbc4db13 ("kconfig: Sync with upstream v4.18") we used
the macros CURSES_LOC and MENU_LOC to tell us where curses.h and menu.h
were installed. Restore this behaviour so that we can deal with some of
the odd places that the curses headers end up.
Fixes#1403
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Rather important option for arm cortex toolchains supporting c++,
avoids pulling in all printf/iostream code by default.
Signed-off-by: Norbert Lange <nolange79@gmail.com>
libdebuginfod is incompatible with static linking so pass
--without-debuginfod when CT_STATIC_TOOLCHAIN is selected.
Fixes#1683
Signed-off-by: Chris Packham <judge.packham@gmail.com>
CentOS6 has reached EOL so now glibc-2.12.1 can be marked as obsolete.
This also means the last glibc-ports version (and glibc-ports itself)
obsolete as well. These will be removed after the next release.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Support for bionic was dropped by GCC some time ago. There are patches
for older GCC versions but those are difficult to maintain and the
version of the android-ndk they support is of little use. Mark all of
the existing bionic support as obsolete so it can be removed after the
next release.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
strace maintains backwards compatibility with older kernels so there is
no need to keep multiple versions of strace. Versions 5.0 to 5.14
weren't present in the crosstool-ng-1.24 release so remove them directly
instead of marking them as obsolete.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
strace maintains backwards compatibility with older kernel versions so
there's no particular reason to keep many versions of strace around.
Mark the versions that were present in the 1.24 release as obsolete.
They will be remove following the next release.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Binutils version 2.38 has been released
https://www.phoronix.com/scan.php?page=news_item&px=GNU-Binutils-2.38https://sourceware.org/pipermail/binutils/2022-February/119721.html
Patches 0000 to 0008 from binutils-2.37 applied clean, so forward ported
them.
The following patches are now applied from upstream, hence dropped:
0010-change-uint-to-unsigned.patch
0011-bfd-close-the-file-descriptor-if-there-is-no-archive-fd.patch
0012-pr28391-strip-objcopy-preserve-dates-a-cannot-set-time.patch
0013-ld-pru-fix-resource_table-output-section-alignment.patch
0014-pr28422-build_id-use-after-free.patch
0015-pr28459-readelf-issues-bogus-warning.patch
0016-pr28417-std-string-no-longer-allows-accepting-nullptr_t.patch
0017-pr28540-segmentation-fault-on-NULL-byte_get.patch
0018-gold-place-note-gnu-property-section-before-other-note-sections.patch
0019-waddress-warning-in-ldelf.c.patch
Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
Support for the SPE ABI was removed in GCC 9. Update the select to
GCC_REQUIRE_older_than_9 so that GCC 8.5 can be selected.
Fixes#1349, fixes#1666
Signed-off-by: Chris Packham <judge.packham@gmail.com>
This refreshes the line numbers, removes any fuzz (which would make any
future forward ports easier) and standardizes the patch/file headers
(which makes them easier to read).
Signed-off-by: Alexey Neyman <stilor@att.net>
To avoid proliferation of versions, I suggest the following policy: the
oldest LTS release still receiving maintenance updates + the most recent
release for distributions that offer LTS releases.
For CentOS, this means CentOS7 and CentOS Stream 9 (since CentOS are all
"long-term support", this is just the oldest and the newest among
currently supported).
For Ubuntu, this means Ubuntu 18.04 (previous LTS are in "security fixes
only" mode) and Ubuntu 21.10. Recent Ubuntu attempts to be interactive
during the configuration of tzdata, required some additional setup.
In the common installation script, the logic for handling a
configured/built local directory breaks if `gmake` is detected as the
make binary; `make distclean` then fails inside the container because
not all systems have `gmake` symlink. Remove that attempt of a
workaround completely, just require that the host directory is clean.
Signed-off-by: Alexey Neyman <stilor@att.net>
Otherwise, it tries to link against libgcc_eh which is not available
until the final compiler (or previously, the pass-2 compiler) is built.
Signed-off-by: Alexey Neyman <stilor@att.net>
With libc_headers step before pass-1, there is no need to distinguish
pass-1 and pass-2; they are configured identically (note that with the
current configuration, core pass-2 is only used for win32 - hence, uses
build_libgcc=yes and mode=static).
Signed-off-by: Alexey Neyman <stilor@att.net>
After 557b9d4, libc_start_files and libc_main steps are performed one
after another. It doesn't make sense, especially since some of the libcs
(glibc, uClibc-ng) go to great lengths to first install start files in
the first step, libc_start_files, only to remove them immediately in the
second step, libc_main.
Current build steps also break in the xtensa newlib configurations, as
it needs to install the custom xtensa headers before building the libgcc
and after 557b9d4, the headers are not installed before libgcc is built
in pass-1.
Therefore, finish what 557b9d4 mentioned but did not do: move header
installation into a new step, libc_headers, and combine libc_start_files
and libc_main into a single step.
This also allows to combine the core pass-1/pass-2 steps, to be done in
a subsequent commit.
Signed-off-by: Alexey Neyman <stilor@att.net>