summaryrefslogtreecommitdiff
path: root/scripts/build/cc/gcc.sh
AgeCommit message (Collapse)AuthorFilesLines
2021-06-07gcc: Allow setting custom target CXXFLAGSStephanos Ioannidis1-3/+26
This commit adds two additional arguments (`cxxflags_for_target` and `extra_cxxflags_for_target`) for the gcc backend build function that can be used to specify custom target CXXFLAGS. By default, the target CXXFLAGS is set to the target CFLAGS. When `cxxflags_for_target` is specified however, it overrides that behaviour and allows setting different target CXXFLAGS from the target CFLAGS. The `extra_cxxflags_for_target` argument can be used to specify the extra target CXXFLAGS to be appended to the target CXXFLAGS. This is useful when it is necessary to append CXX-specific flags to the existing CFLAGS to be used as the target CXXFLAGS. A useful application of this is building full and nano versions of libstdc++ with different target CXXFLAGS as necessitated by `nano.specs`. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-06-07gcc: Assume '-O2' by default for building gcc target librariesStephanos Ioannidis1-3/+11
The gcc target libraries (e.g. libstdc++) are currently built without any optimisation flag when `CT_CC_GCC_ENABLE_TARGET_OPTSPACE` is not enabled and default to `-O0` unless user explicitly specifies an optimisation flag. This commit updates the gcc build script to assume `-O2` for building target libraries unless user provides a different optimisation flag. Note also that this is the default behaviour for gcc when C[XX]FLAGS_FOR_TARGET is not overridden. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-03-17Extend CC_GCC_LIBSSP with manual stateIvan Kukhta1-10/+10
Signed-off-by: Ivan Kukhta <Ivan.Kukhta@acronis.com>
2021-01-13Merge branches 'elijahr-dtc-1.6.0', 'elijahr-readme-typo', ↵Chris Packham1-7/+77
'foss-for-synopsys-dwc-arc-processors-abrodkin-libgmp-for-mac' and 'keith-packard-picolibc-companion'
2021-01-12gcc: Add support for building libstdc++ with alternate libcKeith Packard1-7/+77
This adds another mode to do_gcc_core_backend that builds libstdc++ against an alternate libc implementation. Signed-off-by: Keith Packard <keithp@keithp.com>
2020-12-23gcc: Make it aware of Newlib nano IO featureAlexey Brodkin1-0/+5
Even though GCC as a compiler has nothing to do with a C library being used it still makes sense to know about Newlib's compact implementation of IO functions: * For targets like MSP430 which require to have such a tuned Newlib if "-mtiny-printf" is passed to the GCC's command-line [1] * For correct compilation of the following GCC's own DejaGnu tests [2]: - gcc/testsuite/gcc.c-torture/execute/920501-8.c - gcc/testsuite/gcc.c-torture/execute/930513-1.c - gcc/testsuite/gcc.dg/torture/builtin-sprintf.c - gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.x [1] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=02afb6a9321fbfb435452636cedc2cd43f0c4fd2 [2] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=571bbd0d48d5872eacbd0b681fce6e1ae754520b So we add that missing cross-dependency now. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2020-02-26Set --with-cpu-{32,64} for multilib buildsAlexey Neyman1-2/+2
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-04-05Rename JOBSFLAGS -> CT_JOBSFLAGSAlexey Neyman1-15/+15
... so that it is saved/restored when restarting the build. Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-20Duh! do not override ${cflags}Alexey Neyman1-2/+3
... in the backend function with ${CFLAGS_FOR_HOST}. The caller either supplies them already, or (in case of pass-1/2 of the canadian cross) passes ${CFLAGS_FOR_BUILD} there. Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-18Use -idirafter instead of copying headers.Alexey Neyman1-13/+20
Signed-off-by: Alexey Neyman <stilor@att.net>
2019-02-13Implement an option to store downloads in subdirsAlexey Neyman1-2/+2
... following the buildroot model. Signed-off-by: Alexey Neyman <stilor@att.net>
2019-01-15Canonicalize prefix dir and sysrootAlexey Neyman1-5/+14
... because GCC prints the sysroot with symlinks resolved. Fixes #892. Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-11Add a symlink to LTO for binutilsAlexey Neyman1-0/+14
... so that ar can find the plugin even when invoked directly, not via the gcc-ar plugin. Signed-off-by: Alexey Neyman <stilor@att.net>
2018-12-07Set ALL_TARGET_CFLAGS initially for !MULTILIBAlexey Neyman1-21/+23
Fixes #1107. Signed-off-by: Alexey Neyman <stilor@att.net>
2018-11-03Merge pull request #985 from antmak/platform_headersAlexey Neyman1-6/+5
Use the platform headers in the pass-2 and canadian gcc stages
2018-10-22Supply "very old" and "very new" glibc versionsAlexey Neyman1-1/+5
... as 1.0 and 99.99, respectively, to gcc configure. Fixes #1031. Signed-off-by: Alexey Neyman <stilor@att.net>
2018-06-12Use the platform headers in the pass-2 and canadian gcc stagesAnton Maklakov1-6/+5
2018-06-05Avoid adding arch/cpu/tune flags for target to GCC buildAlexey Neyman1-3/+9
... as it may need to override them for building runtime-selectable code. Signed-off-by: Alexey Neyman <stilor@att.net>
2018-02-12cc/gcc: use correct sysroot arg for do_gcc_core_backendM1cha1-1/+2
This fixes gccs LIMITS_H_TEST detection for baremetal targets so limits.h will be installed correctly. Signed-off-by: Michael Zimmermann <sigmaepsilon92@gmail.com>
2017-09-28Add an ability to verify the digest/signatureAlexey Neyman1-1/+2
Fixes #611. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-09-03Workaround for static uClibc-ng issue with -lpthreadAlexey Neyman1-2/+9
Also, preserve .config when running test-package.sh. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-09-03Super-H multilib toolchain fixesAlexey Neyman1-1/+1
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-09-01config: Add package versioning flexibilityNathan Chancellor1-2/+2
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-08-26Fix glibc-ports with the new frameworkAlexey Neyman1-1/+3
While here, also consider patched by anything other than "bundled patches" as per-target sources. Add scary warnings in case of a failure. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-08-22Fix PPC64LE by supplying --with-glibc-versionAlexey Neyman1-0/+10
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-08-21Save export status for environment varsAlexey Neyman1-2/+2
... and limit our modifications to our variables. Fixes #762. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-08-19Use per-package list of formats to determine downloadsAlexey Neyman1-1/+1
Fixes #789 Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-10Resolve a few more TBDsAlexey Neyman1-4/+5
Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-08Some locations were missed while renaming kconfig symbolsAlexey Neyman1-7/+6
... because there the symbols were constructer part by part. Also, remove cc.sh and source $(CT_CC).sh directly - we only build a single compiler at a time. Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-08Building packages using the new frameworkAlexey Neyman1-0/+1
(fails at building GMP off the VCS because it needs to run bootstrap scripts) Signed-off-by: Alexey Neyman <stilor@att.net>
2017-07-08Fix the references to old config variablesAlexey Neyman1-0/+1156
Signed-off-by: Alexey Neyman <stilor@att.net>
2015-05-29multi_cc: Prepare ct-ng for multiple compilersRay Donnelly1-911/+0
This commit moves gcc.sh to 100-gcc.sh to accomodate for other cross-compilers that crosstool-ng might be able to build. The first, to come soon, is llvm/clang. Signed-off-by: Ray Donnelly <mingw.android@gmail.com> Reviewed-by: Bryan Hundven <bryanhundven@gmail.com> Reviewed-by: Yann Diorcet <diorcetyann@gmail.com>
2015-04-07Only create ${CT_TARGET}-cc${ext} symlink if ${CT_TARGET}-gcc existsJohannes Pfau1-2/+6
Without this canadion cross builds create invalid symlinks: When the code in do_cc_core_backend is called there is no ${CT_TARGET}-gcc in the install directory. Therefore ext is empty and we create a link to ${CT_TARGET}-gcc. The final compiler step then installs ${CT_TARGET}-gcc.exe and creates a working ${CT_TARGET}-cc.exe symlink but we still keep the invalid link as well. Signed-off-by: Johannes Pfau <johannespfau@gmail.com>
2015-02-02scripts/*/*.sh: prioritize http downloadsBryan Hundven1-3/+5
Prirotize http downloads before ftp downloads. By having http download first, those using proxy will work with the current download mechnism. This tells me that that mechnism needs to be updated. (proxy support and/or kconfig toggles) closes #3 Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2015-01-16gcc: Add Linaro GCC 4.9-2015.01 and GCC 4.8-2014.11Cristoforo Cataldo1-12/+13
This commit allows to choose, download and build latest Linaro GCC: - gcc-linaro-4.9-2015.01 - gcc-linaro-4.8-2014.11 Signed-off-by: Cristoforo Cataldo <cristoforo.cataldo@gmail.com>
2015-01-01cc/gcc: Remove copyheaders toggle in do_cc_core_backend, make defaultDavid Holsgrove1-8/+2
Canadian Cross compile for baremetal fails with error; checking for the value of EOF... configure: error: computing EOF failed which is due to libstdc++ configure not being able to find stdio.h Having all modes of the core compiler copyheaders from CT_HEADERS_DIR (in combination with previous patch for newlib to add a do_libc_start_files function to copy into the CT_HEADERS_DIR) resolves this. Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-12-09gcc and gdb: fix fetching linaro builds (part three)Bryan Hundven1-1/+2
Yes, I missed the backslash which messed up the linaro stuff. The more I look at this code, I feel it needs to be refactored a bit. So I'll come back to this in the future and clean it up. Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2014-12-09gcc and gdb: fix fetching linaro builds (part two)Bryan Hundven1-1/+1
It's not my day. linaro_version is a filter. If it is not a linaro toolchain, it will just be CT_{CC,GDB}_VERSION. If it is a linaro toolchain, CT_{CC,GDB}_VERSION will be prefixed with 'linaro-' and will not match linaro_version, as linaro_version will just have the part after 'linaro-'. This *really* fixes the issue :sigh: Thanks again to @elsonwei for being right the first time! Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2014-12-09gcc and gdb: fix fetching linaro buildsBryan Hundven1-2/+2
linaro_version and linaro_series are defined but not set if we are not configured for linaro builds. Therefore we need to default them to "" (null string). As reported by @elsonwei Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
2014-12-08scripts: Update download locationsBryan Hundven1-9/+10
This change updates the download locations to default to the official download site. For gcc and gdb, also separate out the linaro download locations so that if you are downloading the linaro variant, it skips trying to download from the official gcc mirror. This commit closes #3 Signed-off-by: Bryan Hundven <bryanhundven@gmail.com> Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-08-31cc/gcc: add option to enable/disable libsanitizerYann E. MORIN1-3/+7
libsaniotizer requires a few headers that are not in uClibc, for example. Also, it is only available for native threads (NPTL under glibc.) Finally, it is only available starting with gcc-4.8. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-07-19cc/gcc: avoid passing --enable-multilib (take 2)Cody P Schafer1-3/+4
The previous patch (cset b61a1b1, cc/gcc: avoid passing --enable-multilib) only fixed the core backend, and missed the final backend. This patch does the same as b61a1b1, but for the final backend. Signed-off-by: Cody P Schafer <dev@codyps.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-05-10cc/gcc: allow CC_EXTRA_CONFIG_ARRAY on baremetalCody Schafer1-1/+5
The final bare-metal compiler is built using the core backend. Currently the core uses the CC_CORE_EXTRA_CONFIG_ARRAY variable. While this works as supposed to, this can leave the user puzzled in the menuconfig, since all he can see is the core options, not the final options. Only show the core options if any of the core passes are needed, and use the final options in the core-backend if we're issuing the bare-metal compiler. Signed-off-by: Cody P Schafer <dev@codyps.com> [yann.morin.1998@free.fr: hide core options if no core pass needed; use final option in core backend if issuing the bare-metal compiler] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Message-Id: <22181e546ba746202489.1399688067@localhost> Patchwork-Id: 347586
2014-05-10cc/gcc: avoid passing --enable-multilibCody Schafer1-3/+3
Some versions of gcc have a broken --enable-multilib flag. As multilib is the default, only pass the --disable-multilib flag Signed-off-by: Cody P Schafer <dev@codyps.com> [yann.morin.1998@free.fr: make it an if-block; duplicate commit log as comment] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Message-Id: <5c970c1ceb22528fe28a.1399687923@localhost> Patchwork-Id: 347585
2014-05-05cc/gcc: only build required core passesYann E. MORIN"1-2/+2
We now know exactly what pass to build, so build only what is required. Reported-by: Trevor Woerner <trevor.woerner@linaro.org> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-01-04cc/gcc: add option to enable/disable decimal floatsYann E. MORIN"1-0/+10
Decimal floats need support form the C library, namely support for fenv, which is missing in uClibc for any architecture but x86/32. Add an option (a choice) to enable or disable decimal floats. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2014-01-04cc/gcc: set CXXFLAGS at configure gccDaniel Dittmann1-0/+2
Since gcc 4.8 C++ is also used as implementation language (see gcc release notes). Signed-off-by: "Daniel Dittmann" <ddittmann@gmx.net> Message-Id: <acc7d11bc77b30f21c5b.1388863298@bernalk.machteam> Patchwork-Id: 306883
2014-01-04cc/gcc: diable libsanitizer without NPTLYann E. MORIN"1-0/+3
gcc-4.8 comes with a new library to sanitise memory access: - heap-, stack-, and global-buffer overflow, use-after-free - data-races between threads This library requires some _np parts of the API, which are not implemented in the (old) LinuxThreads, which is still available in uClibc. Since NPTL requires a i486 or above, i386 are stuck with using LT, which precludes building the libsanitizer. Disable libsanitizer, a bit like libatomic is. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Niels Penneman <niels@penneman.org>
2014-01-03cc/gcc: fix gcc 4.8 build for C library without threads supportNiels Penneman1-0/+5
Signed-off-by: Niels Penneman <niels@penneman.org> Message-Id: <309df93f4354c80e05c9.1388743085@i7sb.local> Patchwork-Id: 306521
2013-11-19cc/gcc: Add Fortran support for Baremetal buildZhenqiang Chen1-0/+10
Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org> [yann.morin.1998@free.fr: fix damage due to mailer] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Message-Id: <CACgzC7D5HCVS-qX=ydcQphNFH=VGgJzTdZWQWaLKAv-CdE8crA@mail.gmail.com> Patchwork-Id: 292703