summaryrefslogtreecommitdiff
path: root/scripts/build/arch
AgeCommit message (Collapse)AuthorFilesLines
2022-02-11Convert tabs to spacesAlexey Neyman1-25/+25
Recent changes introduced a mixture of tabs/spaces that result in broken indentation in multiple places. Signed-off-by: Alexey Neyman <stilor@att.net>
2022-02-11Retire obsoleted milestonesAlexey Neyman2-2/+2
... and the code dependent on them, after the latest wave of obsolete package removals. This concludes the glorious history of the original uClibc (non-NG) with lots of kludges removed. There was a choice here, whether to call the resulting libc "uClibc" or "uClibc-ng". I opted in favor of giving uClibc-ng the recognition it deserves, although it had some ripple effect in the ct-ng code. Signed-off-by: Alexey Neyman <stilor@att.net>
2021-08-24ARC: No more fiddling with uClibc's CONFIG_ARC_HAS_ATOMICSAlexey Brodkin1-17/+0
Older ARC700 processors had atomic instructions (AKA llock/scond) as an option and so quite some "atomic" operations were not possible w/o OS support, which we implemented - see arc_usr_cmpxchg() in the Linux kernel. And in uClibc, which was the only Linux libc back in the day of ARC700 era, it is well supported. Well, uClibc could be configured to support it. Which is done with CONFIG_ARC_HAS_ATOMICS Kconfig option. But the problem is there's no check for ARC ISA version in uClibc when this option gets enabled. That leads to a funny situation when even for ARCv2 processors (ARC HS3x & HS4x) uClibc tries to utilize arc_usr_cmpxchg() syscall which is not supported for this newer ISA since ARCv2 processors have atomic instructions built-in all the time. So what was happening here we didn't specify additional "-matomic" CFLAG unless we were targeting exactly those ancient ARC770 processors (ARC700 + MMUv3 + atomics) and so even for ARCv2 we forced uClibc to not use built-in atomics. And even though there're ways to add a smarter solution here to handle that pretty rare by now case of ARC750 (ARC700 + MMUv2 - atomics), I suggest we just remove this part completely, leaving a possibility to add needed option in uClibc-ng's configuration (I mean "packages/uClibc-ng/config"). Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-01-19Add PRU cross tool targetDimitar Dimitrov1-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>
2020-11-10Merge pull request #1342 from DspHack/feature/add_support_for_ti_c6xChris Packham1-0/+79
Experimental: Add support for the Texas Instruments C6X (TMS320C6000 …
2020-11-02c6x: Remove multilib requirementDan Tejada1-2/+0
Restore tuple config check Add sample configuration Signed-off-by: Dan Tejada <dan.tejada@cantada.com>
2020-11-01arm: Disable context functions for ThumbChris Packham1-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>
2020-09-16Map picolibc to suitable CT_TARGET_SYS valuesKeith Packard1-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>
2020-05-21Experimental: Add support for the Texas Instruments C6X (TMS320C6000 series) ↵Dan Tejada1-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>
2020-03-04Add --with-cpu= on 32-bit SPARCAlexey Neyman1-15/+26
... if building for GLIBC 2.31+. Signed-off-by: Alexey Neyman <stilor@att.net>
2020-02-26Set --with-cpu-{32,64} for multilib buildsAlexey Neyman1-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>
2019-06-14ARC: Support building of multi-lib Glibc toolchainAlexey Brodkin1-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>
2018-12-10Add config flags for omitting 'arch' and 'vendor'Alexey Neyman3-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>
2018-12-07Use -mel/-meb for moxieAlexey Neyman1-0/+5
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-04Warn if architecture is empty on x86/32bitAlexey Neyman1-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>
2018-12-01Add moxiebox as a choice for libcAlexey Neyman2-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>
2018-11-28Add moxie architectureAlexey Neyman1-0/+7
and a moxie-unknown-elf target (which is what #1088 apparently wanted). Signed-off-by: Alexey Neyman <stilor@att.net>
2018-10-24Generate correct tuple for PowerPC with SPE ABIAlexey Neyman1-1/+1
Fixes #1018. Signed-off-by: Alexey Neyman <stilor@att.net>
2018-06-05Disable context functions for ThumbAlexey Neyman1-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>
2018-06-05Add --enable-obsolete for powerpc-*-speAlexey Neyman1-3/+3
Signed-off-by: Alexey Neyman <stilor@att.net>
2018-05-21ARC: Disable CONFIG_ARC_HAS_ATOMICS in uClibc if building without -matomicsAlexey Brodkin1-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>
2018-05-15Add ARC architecture supportAlexey Brodkin1-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>
2018-01-22Only decorate TARGET_ARCH if using specific CPUAlexey Neyman1-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>
2017-11-19add RISC-V architecture supportAntony Pavlov1-0/+5
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
2017-09-03Use the new SuperH fixes in the two multilib samplesAlexey Neyman2-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>
2017-09-03Super-H multilib toolchain fixesAlexey Neyman2-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>
2017-07-08Building packages using the new frameworkAlexey Neyman1-61/+0
(fails at building GMP off the VCS because it needs to run bootstrap scripts) Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-08Convert the rest of packages to new frameworkAlexey Neyman1-1/+1
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-07Merge pull request #773 from stilor/fix-bionic-32bitAlexey Neyman1-2/+2
Fix ARM32 name for android
2017-07-07Fix ARM32 name for androidAlexey Neyman1-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>
2017-07-01scripts/nios2: do not override precomputed flagsKirill K. Smirnov1-8/+2
Signed-off-by: Kirill K. Smirnov <kirill.k.smirnov@gmail.com>
2017-06-02Added a sample of the MSP430 architecture and removed config.subAndrew Wygle1-1/+0
override from msp430.sh Signed-off-by: Andrew Wygle <awygle@gmail.com>
2017-06-02Added MSP430 architecture support.Andrew Wygle1-0/+6
Signed-off-by: Andrew Wygle <awygle@gmail.com>
2017-05-14Preliminary bionic/Android supporthyc1-0/+1
Mostly from Crystax NDK
2017-05-14Separate uclibc's multilib headers on MIPS, tooAlexey Neyman1-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>
2017-03-27Fix up the sysroot issue for sh4 in a different wayAlexey Neyman1-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>
2017-03-08Correct warning text to include newer glibc versionsAlexey Neyman1-1/+1
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-10Allow one to select uclibceabi/uclibcgnueabi suffixAlexey Neyman1-1/+1
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-02-03Add support for AArch64 in uClibc-ngAlexey Neyman1-21/+23
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-26Create <sgidefs.h> if MUSL doesn't create oneAlexey Neyman1-0/+19
Document the status quo and work around for mips-musl. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-01-14Use ${CT_CC} instead of gcc ...Alexey Neyman1-2/+2
... when refering to target's compiler. Signed-off-by: Alexey Neyman <stilor@att.net>
2016-11-22xtensa: fix endianness supportMax Filippov1-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>
2016-08-26Update x86.shPedro Navarro1-1/+3
Added additional x86 architectures, like core2, that also map to i686
2016-08-23musl: Add multilib support.Alexey Neyman1-0/+11
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23Support multilib in sh/uClibc.Alexey Neyman1-1/+31
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23First stab at multilib/uClibc.Alexey Neyman3-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>
2016-08-23uClibc: Split configuration tweaker into per-arch functions.Alexey Neyman9-0/+139
Signed-off-by: Alexey Neyman <stilor@att.net>
2016-08-23Change multilib functions to set the variable.Alexey Neyman4-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>
2016-08-23libc/*.sh: Deprecate libc_check_config step.Alexey Neyman10-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>
2016-06-10arch/x86: add a sanity checkAlexey Neyman1-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>