Commit Graph

21 Commits

Author SHA1 Message Date
Christian Marangi 28420cd67b
scripts/ext-toolchain: implement external GCC version detection
Some package may needs to enable compatibility option based on the GCC
version.

Currently the GCC version is set based on the default value and doesn't
actually reflect the real value provided by the external toolchain if
used.

Fix this by correctly detecting the GCC version in the external
toolchain and set the correct value in CONFIG_GCC_VERSION.

A new option is added in menuconfig to manually set the GCC version if
needed.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-10-20 16:13:31 +02:00
Christian Marangi 7be01fe13b
scripts: ext-toolchain: add support for musl
Openwrt now supports only glibc and musl. Add support for musl and
rework the libc check to handle the new config flags and correctly
compile package basend on that.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-07-24 19:53:45 +02:00
Christian Marangi 75311977f5
scripts: ext-toolchain: add support for info.mk in probe_cc
Openwrt generate info.mk that contains the libc type. For probe_cc check
if the file exist and parse directly it for LIBC type.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-07-24 19:53:44 +02:00
Christian Marangi ddeabc75eb
scripts: ext-toolchain: actually probe libc type on config generation
Currently we never call probe_cc before config generation, this cause
the script to never actually detect the correct libc type.
Call probe_cc before config generation to correctl set the .config file.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-07-24 19:53:44 +02:00
Christian Marangi f4dd18ca39
scripts: ext-toolchain: add option to overwrite config
It can be useful to overwrite an already generated config.
Option are simply added at the end of the config and make defconfig
will overwrite the relevant option with the new one.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-07-24 19:53:44 +02:00
Christian Marangi 53c293262f
scripts: ext-toolchain: fix wrong prefix in print_config generation
The parsed prefix in print_config is wrong and this produce broken
generated .config that won't work with any external toolchain.

Currently the prefix from a CC of

'arm-openwrt-linux-muslgnueabi-gcc-12.1.0'

produce a prefix

'arm-openwrt-linux-muslgnueabi-gcc-'

This is wrong as the real prefix should be

'arm-openwrt-linux-muslgnueabi-'

This is probably caused by a change in how the toolchain is now handled
that now append also the gcc version. Probably in ancient days the
version wasn't part of the name and the prefix generation stripped the
'-gcc' instead of the gcc version.

Fix this and correctly strip the gcc version and the gcc suffix to
correctly call toolchain bins.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-07-24 19:53:43 +02:00
Josh Soref 08622de7d6 scripts: fix various typos
This only affects typos in comments or user-facing output.

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
[only picks changes to scripts, drop "commandline" replacement,
 fix case for "arbitrary", improve commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-10-31 21:24:47 +01:00
Florian Fainelli 6704410b15 scripts: Probe external toolchains for libthread-db
libthread-db is a package that can be configured for external
toolchains, so let's have the script probe for it.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-05-11 13:43:01 -07:00
Florian Fainelli 08fb61d316 scripts: Probe external toolchains for libgomp
Now that libgomp can be a package, probe external toolchains for that
library.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-05-11 13:42:58 -07:00
Jo-Philipp Wich 24a7ccb056 treewide: replace jow@openwrt.org with jo@mein.io
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-06-07 11:42:52 +02:00
John Crispin 3eff7927ce scripts: fix 64bit uclibc external toolchain detection
according to gcc, UCLIBC_DYNAMIC_LINKER64

Signed-off-by: Dirk Neukirchen <dirkneukirchen@web.de>

SVN-Revision: 46362
2015-07-14 09:57:52 +00:00
Jo-Philipp Wich 9622f68581 buildroot: allow specifying libc personality for external toolchains
SVN-Revision: 35703
2013-02-20 15:06:10 +00:00
Jo-Philipp Wich 643babfc3c ext-toolchain.sh: don't pass CFLAGS when wrapping ld
SVN-Revision: 31549
2012-05-01 22:45:55 +00:00
Jo-Philipp Wich c21b5cc34a ext-toolchain.sh: rework generated gcc wrapper Only append -L and -Wl,-rpath-link flags if the command line contains -l, -L, -shared or -static flags; this is needed to suppress "-rpath-link: linker input file unused because linking not done" on each cc invocation.
SVN-Revision: 29946
2012-01-29 18:53:12 +00:00
Jo-Philipp Wich 86ddf7c7a8 ext-toolchain.sh: support --wrap with src == dest
SVN-Revision: 29944
2012-01-29 17:42:10 +00:00
Jo-Philipp Wich fe60046a26 ext-toolchain.sh: CONFIG_NLS -> CONFIG_BUILD_NLS
SVN-Revision: 29782
2012-01-19 00:03:52 +00:00
Jo-Philipp Wich ee62b0d751 ext-toolchain.sh: fix typo
SVN-Revision: 29781
2012-01-19 00:01:54 +00:00
Jo-Philipp Wich 796231d95c ext-toolchain.sh: add option to write .config Add a new --config option to generate a .config from a given toolchain, this allows for easy integration of external toolchains, e.g.
./scripts/ext-toolchain.sh --toolchain /opt/mips-2011.03 --cflags "-muclibc" --config atheros

to setup a ready-to-compile atheros target using the external CodeSourcery toolchain.

SVN-Revision: 29780
2012-01-18 23:46:06 +00:00
Jo-Philipp Wich 989c73848f ext-toolchain.sh: properly handle toolchains without sysroot support
SVN-Revision: 29772
2012-01-18 04:03:15 +00:00
Jo-Philipp Wich f20b6c3ff9 ext-toolchain.sh: - use GCC's own idea of the target name (-dumpmachine) - display help if called without args - add copyright foo - remove some leftover flag handling code
SVN-Revision: 29769
2012-01-18 03:32:30 +00:00
Jo-Philipp Wich 7a563f122f add ext-toolchain.sh, a utility for external toolchains The ext-toolchain.sh utility script implements various external toolchain tasks: * Testing of available features, like c++, soft-float or ipv6 support * Finding the libc implementation (uclibc or eglibc/glibc) * Inferring the GNU target name * Finding shared objects for packaging (libc, libpthread, ...) * Finding executables for packaging (ldd, gdbserver, ...) * Generating wrapper scripts for toolchain commands
SVN-Revision: 29765
2012-01-18 03:03:24 +00:00