aboutsummaryrefslogtreecommitdiff
path: root/scripts/build/arch
Commit message (Collapse)AuthorAgeFilesLines
* Add PRU cross tool targetDimitar Dimitrov2021-01-191-0/+5
| | | | | | | | | Add sample configuration for building cross toolchain for the TI PRU. PRU cores are present in many of the BeagleBone single board computers. More information about the PRU can be found in https://bbb.io/pru Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
* Merge pull request #1342 from DspHack/feature/add_support_for_ti_c6xChris Packham2020-11-101-0/+79
|\ | | | | Experimental: Add support for the Texas Instruments C6X (TMS320C6000 …
| * c6x: Remove multilib requirementDan Tejada2020-11-021-2/+0
| | | | | | | | | | | | | | Restore tuple config check Add sample configuration Signed-off-by: Dan Tejada <dan.tejada@cantada.com>
| * Experimental: Add support for the Texas Instruments C6X (TMS320C6000 series) ↵Dan Tejada2020-05-201-0/+81
| | | | | | | | | | | | | | | | | | | | DSPs -- c6x: Add support for c6x product families to pass on to uClibC-ng -- c6x: Fix multilib support -- c6x: Add patch fix internal instruction error (GCC 57295) Signed-off-by: Dan Tejada <dan.tejada@cantada.com>
* | arm: Disable context functions for ThumbChris Packham2020-11-011-0/+1
| | | | | | | | | | | | | | | | | | Similar to commit 57679b5e ("Disable context functions for Thumb") when building for thumb we need to unset UCLIBC_HAS_CONTEXT_FUNCS. Fixes #1397 Signed-off-by: Chris Packham <judge.packham@gmail.com>
* | Map picolibc to suitable CT_TARGET_SYS valuesKeith Packard2020-09-161-2/+2
|/ | | | | | | picolibc is another bare-metal C library, and so should be mapped to CT_TARGET_SYS just like newlib does. Signed-off-by: Keith Packard <keithp@keithp.com>
* Add --with-cpu= on 32-bit SPARCAlexey Neyman2020-03-031-15/+26
| | | | | | ... if building for GLIBC 2.31+. Signed-off-by: Alexey Neyman <stilor@att.net>
* Set --with-cpu-{32,64} for multilib buildsAlexey Neyman2020-02-261-0/+4
| | | | | | | GLIBC 2.31 needs --with-cpu=ultrasparc for both 32/64-bits now, and --with-cpu only sets the CPU model for the "primary" bitness. Signed-off-by: Alexey Neyman <stilor@att.net>
* ARC: Support building of multi-lib Glibc toolchainAlexey Brodkin2019-06-141-0/+36
| | | | | | | | | | | | | | | | | | | | | | | From GCC's standpoint ARC's multilib items are defined by "mcpu" values which we have quite a few and for all of them might be built optimized cross-toolchain. From Glibc's standpoint multilib is just multi-ABI [1] and so very limited versions are supposed to co-exist (e.g. arc700 & archs). Here we force Glibc to install libraries in GCC's multilib folder to create a universal cross-toolchain that has libs optimized for multiple CPU types. But note we only need to mess with installation paths in case of real multilib, otherwise we keep default "lib/" paths so that GCC finds default (the one and only) libs where it expects them to be. Also here we add a sample which allows to build universal Glibc Linux toolchain for ARC. [1] https://sourceware.org/ml/libc-alpha/2019-06/msg00018.html Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
* Add config flags for omitting 'arch' and 'vendor'Alexey Neyman2018-12-103-23/+10
| | | | | | | | ... parts of the config tuple. While here, remove parts that are setting portions of the target tuple to a value that's already the default. Signed-off-by: Alexey Neyman <stilor@att.net>
* Use -mel/-meb for moxieAlexey Neyman2018-12-071-0/+5
| | | | Signed-off-by: Alexey Neyman <stilor@att.net>
* Warn if architecture is empty on x86/32bitAlexey Neyman2018-12-031-1/+5
| | | | | | | | | as that defaults to i386, which will fail with glibc (and likely other libcs). Fixes #617. Signed-off-by: Alexey Neyman <stilor@att.net>
* Add moxiebox as a choice for libcAlexey Neyman2018-12-012-1/+12
| | | | | | | | | | | | | | | | | This required some rework of the libc selection, as moxiebox is a layer on top of another libc - newlib. Also, moxiebox'es host VM (`sandbox`) needs a libcrypto on the host. We will not have it if we're cross-compiling a canadian cross. Fortunately, all moxiebox needs from libcrypto is SHA256, and it already includes a standalone implementation of SHA256 in its runtime. Provide a little wrapper that allows moxiebox use that implementation for the host binary, too. Also, automate collecting/printing the list of all packages in a given category (e.g. LIBC or COMP_TOOLS), generate a list of all Kconfig symbols for a given category. Signed-off-by: Alexey Neyman <stilor@att.net>
* Add moxie architectureAlexey Neyman2018-11-281-0/+7
| | | | | | and a moxie-unknown-elf target (which is what #1088 apparently wanted). Signed-off-by: Alexey Neyman <stilor@att.net>
* Generate correct tuple for PowerPC with SPE ABIAlexey Neyman2018-10-231-1/+1
| | | | | | Fixes #1018. Signed-off-by: Alexey Neyman <stilor@att.net>
* Disable context functions for ThumbAlexey Neyman2018-06-051-0/+1
| | | | | | | | They're written in ARM dialect, and `ldmia r14, {r14, pc}` is not accepted in T2 encoding. GCC8 changed the list of multilibs for arm-*, which now includes a variant with CPU that supports T2 but not A1 encoding. Signed-off-by: Alexey Neyman <stilor@att.net>
* Add --enable-obsolete for powerpc-*-speAlexey Neyman2018-06-051-3/+3
| | | | Signed-off-by: Alexey Neyman <stilor@att.net>
* ARC: Disable CONFIG_ARC_HAS_ATOMICS in uClibc if building without -matomicsAlexey Brodkin2018-05-211-1/+1
| | | | | | | | | | | In case we build for ARC core which has no support of atomic ops among other things we need to configure libc to use Linux kernel helper to emulate HS atomic ops. This is done with disabling of CONFIG_ARC_HAS_ATOMICS in uClibc. Currently we __remove__ this option from .config but this makes no sense as its default state is "y" so we need to explicitly disable it instead. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
* Add ARC architecture supportAlexey Brodkin2018-05-151-0/+34
| | | | | | | | | Synopsys' DesignWare ARC Processors are a family of 32-bit CPUs that SoC designers can optimize for a wide range of uses, from deeply embedded to high-performance host applications in a variety of market segments. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
* Only decorate TARGET_ARCH if using specific CPUAlexey Neyman2018-01-211-2/+6
| | | | | | | | | Otherwise, binutils don't recognize it as a valid target - even though GCC does. Fixes #897. Signed-off-by: Alexey Neyman <stilor@att.net>
* add RISC-V architecture supportAntony Pavlov2017-11-191-0/+5
| | | | Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
* Use the new SuperH fixes in the two multilib samplesAlexey Neyman2017-09-032-6/+107
| | | | | | | | | | | - Glibc configure args and tuple need adjustment on SuperH - Only allow "both endian" and "with CPU" for unspecified arch variant. May reconsider endianness (was breaking things before adjusting glibc tuple) - Retire non-multilib sample, it should be a subset of the multilib one now. Signed-off-by: Alexey Neyman <stilor@att.net>
* Super-H multilib toolchain fixesAlexey Neyman2017-09-032-30/+38
| | | | | | | | | | | | | | | 1. On SuperH, configuring GCC with explicit variant of the CPU (like "sh4") limits the default set of multilibs to just that CPU and requires --with-multilib-list to change. Allow for "unspecified" variant, so that we can defer to GCC to determine the list. 2. Support toolchains with both endiannesses at the same time. 3. Add a SuperH/newlib sample 4. Add more flags processing for uClibc Signed-off-by: Alexey Neyman <stilor@att.net>
* Building packages using the new frameworkAlexey Neyman2017-07-081-61/+0
| | | | | | (fails at building GMP off the VCS because it needs to run bootstrap scripts) Signed-off-by: Alexey Neyman <stilor@att.net>
* Convert the rest of packages to new frameworkAlexey Neyman2017-07-081-1/+1
| | | | Signed-off-by: Alexey Neyman <stilor@att.net>
* Merge pull request #773 from stilor/fix-bionic-32bitAlexey Neyman2017-07-071-2/+2
|\ | | | | Fix ARM32 name for android
| * Fix ARM32 name for androidAlexey Neyman2017-07-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | Must have eabi suffix for GCC to accept it. Also: - We only have one glibc now, no need to account for eglibc. - Rename aarch64 samples, eabi suffix does not apply to them (and ct-ng saveconfig was saving them into a different directory). Fixes #772. Signed-off-by: Alexey Neyman <stilor@att.net>
* | scripts/nios2: do not override precomputed flagsKirill K. Smirnov2017-07-011-8/+2
|/ | | | Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
* Added a sample of the MSP430 architecture and removed config.subAndrew Wygle2017-06-021-1/+0
| | | | | | override from msp430.sh Signed-off-by: Andrew Wygle <awygle@gmail.com>
* Added MSP430 architecture support.Andrew Wygle2017-06-021-0/+6
| | | | Signed-off-by: Andrew Wygle <awygle@gmail.com>
* Preliminary bionic/Android supporthyc2017-05-141-0/+1
| | | | Mostly from Crystax NDK
* Separate uclibc's multilib headers on MIPS, tooAlexey Neyman2017-05-141-0/+11
| | | | | | | | | | The generated sysnum.h is different for o32/n32/64 ABIs. This needs to be revisited; either do this for all architecutres or perhaps, compare the headers for various multilibs and combine them if the are identical. Signed-off-by: Alexey Neyman <stilor@att.net>
* Fix up the sysroot issue for sh4 in a different wayAlexey Neyman2017-03-261-0/+23
| | | | | | | | | | | (see the comments in the code for details on the issue) Old workaround in 100-gcc.sh stopped working (probably, due to one of GCC version upgrades), so switch to the other approach originally described there: adjust the list of multilibs to not include the default target explicitly. Signed-off-by: Alexey Neyman <stilor@att.net>
* Correct warning text to include newer glibc versionsAlexey Neyman2017-03-081-1/+1
| | | | Signed-off-by: Alexey Neyman <stilor@att.net>
* Allow one to select uclibceabi/uclibcgnueabi suffixAlexey Neyman2017-02-091-1/+1
| | | | Signed-off-by: Alexey Neyman <stilor@att.net>
* Add support for AArch64 in uClibc-ngAlexey Neyman2017-02-021-21/+23
| | | | Signed-off-by: Alexey Neyman <stilor@att.net>
* Create <sgidefs.h> if MUSL doesn't create oneAlexey Neyman2017-01-261-0/+19
| | | | | | Document the status quo and work around for mips-musl. Signed-off-by: Alexey Neyman <stilor@att.net>
* Use ${CT_CC} instead of gcc ...Alexey Neyman2017-01-131-2/+2
| | | | | | ... when refering to target's compiler. Signed-off-by: Alexey Neyman <stilor@att.net>
* xtensa: fix endianness supportMax Filippov2016-11-221-0/+2
| | | | | | | | | | | | | | | | | 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>
* Update x86.shPedro Navarro2016-08-251-1/+3
| | | Added additional x86 architectures, like core2, that also map to i686
* musl: Add multilib support.Alexey Neyman2016-08-231-0/+11
| | | | Signed-off-by: Alexey Neyman <stilor@att.net>
* Support multilib in sh/uClibc.Alexey Neyman2016-08-231-1/+31
| | | | Signed-off-by: Alexey Neyman <stilor@att.net>
* First stab at multilib/uClibc.Alexey Neyman2016-08-233-1/+120
| | | | | | | | | Create a separate 'libc_backend_once', install headers into a subdirectory (different sets of headers are installed for 32- and 64-bit architectures), and create a symlink for the dynamic linker location expected by GCC. Signed-off-by: Alexey Neyman <stilor@att.net>
* uClibc: Split configuration tweaker into per-arch functions.Alexey Neyman2016-08-239-0/+139
| | | | Signed-off-by: Alexey Neyman <stilor@att.net>
* Change multilib functions to set the variable.Alexey Neyman2016-08-234-45/+69
| | | | | | | | Rather than echo-ing the new value, set the value into the variable with the name passed as an argument (similar to CT_SanitizeVarDir). This allows to use CT_DoLog in these functions. Signed-off-by: Alexey Neyman <stilor@att.net>
* libc/*.sh: Deprecate libc_check_config step.Alexey Neyman2016-08-2310-71/+59
| | | | | | | | | | | | | | | | | | This step was only used in uClibc. However, with upcoming multilib, the config management will have to be done for each variant differently, anyway. uClibc was the only user of libc_check_config step, as well as CT_CONFIG_DIR directory. Retire these. Two other clean-ups in uClibc.sh: - KERNEL_HEADERS check seems to be bogus, this config option is not present even in 0.9.30 - which is not supported already. - SHARED_LIB_LOADER_PREFIX was renamed to MULTILIB_DIR in 0.9.31, according to ChangeLog - and MULTILIB_DIR is passed from command line instead. Signed-off-by: Alexey Neyman <stilor@att.net>
* arch/x86: add a sanity checkAlexey Neyman2016-06-091-0/+11
| | | | | | | | i[34567]86-*-gnux32 is not a valid tuple. Signed-off-by: Bryan Hundven <bryanhundven@gmail.com> Signed-off-by: Ray Donnelly <ray.donnelly@gmail.com> Signed-off-by: Alexey Neyman <stilor@att.net>
* arch/all: Add common function to return multilib targetAlexey Neyman2016-06-0910-0/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code was abstracted out of Cody P Schafer's multilib patch. It doesn't seem right having architecture dependent code in a specific libc implementation script. So this patch breaks it out into scripts/build/arch/<arch>.sh in a function: multilib_target_to_build="$(CT_DoArchMultilibTarget 'multi_flags' 'target-in')" Note that this function gets called on each multilib variant with different sets of compiler flags supplied in 'multi_flags'. The caller will first filter the flags so that there is no conflicting flags (e.g., no '-m32 -m64') supplied. Changed by Alexey Neyman: - make option analysis check specific option rather than match global options string as a whole. Moreover, old code did not handle multiple options in the same multilib, e.g. '-m64 -mlittle'. - fixed substitutions in powerpc.sh (*le variants did not match the pattern in the shell parameter expansion) - make s390.sh actually apply the flags it gathered from the options. - straighten the spaghetti in x86.sh by setting two flags, arch & abi. Also, do not depend on "gnu" being the last part - we can have '*-uclibcx32', for example. Signed-off-by: Bryan Hundven <bryanhundven@gmail.com> Signed-off-by: Ray Donnelly <ray.donnelly@gmail.com> Signed-off-by: Alexey Neyman <stilor@att.net>
* arch/sparc: better default CPU when targetting LinuxAlexey Neyman2016-06-091-0/+13
| | | | | | | | | | | | | | | | By default, sparc64-*-linux is configured with -mcpu=v9. However, according to https://sourceware.org/ml/libc-alpha/2005-12/msg00027.html: "There is no Linux sparc64 port that runs on non-UltraSPARC-I+ ISA CPUs." v9 is such a "non-UltraSPARC-I+ ISA CPU", so it makes no sense to default to v9 when targetting Linux. Change the default to ultrasparc, even though it can suboptimally schedule instructions for newer SPARC CPUs. See the pending patch: https://patchwork.ozlabs.org/patch/409424/ Signed-off-by: Alexey Neyman <stilor@att.net>
* xtensa: Remove support for CT_CUSTOM_LOCATION_ROOT_DIRBryan Hundven2015-12-081-7/+1
| | | | | | | | | Since CUSTOM_LOCATION_ROOT_DIR was removed from config/global/paths.in in commit c499ccb, xtensa should depend only on it's ARCH_XTENSA_CUSTOM_OVERLAY_LOCATION. Signed-off-by: Bryan Hundven <bryanhundven@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>