summaryrefslogtreecommitdiff
path: root/scripts/build/cc/gcc.sh
AgeCommit message (Collapse)AuthorFilesLines
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
2013-11-08cc/gcc: Add support for golangYann E. MORIN"1-0/+1
Signed-off-by: Richard Weinberger <richard@nod.at> Message-Id: <ca374aef944e28a6ec3c.1383921708@azrael> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-05-05cc/gcc: add preliminray support for 4.8Yann E. MORIN"1-10/+22
This means: - introduce the new symbols for 4.8 - do not always select PPL if graphite is selected Reported-by: "Plotnikov Dmitry" <leitz@ispras.ru> [Dmitry did a preliminray patch to add gcc-4.8 support, which this patch is inspired from] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-05-13cc/gcc: Set CXX_FOR_BUILD for bare metal and canadian build.Zhenqiang Chen1-0/+1
>From 4.8, g++ is used as the default compiler to build the toolchain. Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org> Message-Id: <CACgzC7B-LQvAw3hOYhBA7b7g0H1WtH20gqXM=Y=YFO4FrnZKWQ@mail.gmail.com> Patchwork-Id: 243590
2013-05-02cc/gcc: modify to build gcc-4.8-based cross-toolsJongsung Kim1-0/+5
Building cross-tool based on gcc-4.8 fails while "Installing pass-2 core C compiler", because building libgcc.mvars needs libbacktrace.a that gcc.sh doesn't build. This patch inserts a few lines configuring, and making libbacktrace into gcc.sh to build gcc-4.8-based cross-tools successfully. Reported-by: Plotnikov Dmitry <leitz@ispras.ru> Signed-off-by: Jongsung Kim <neidhard.kim@lge.com> Message-Id: <201305031831.33395.neidhard.kim@lge.com> Patchwork-Id: 241258
2012-11-25cc/gcc: do not print 'core' or 'final'Yann E. MORIN"1-6/+6
In gcc-'s core and final passes, do not print 'core' or 'final' in log messages. We already print it in step messages. Also, as we use the core backend to build the bare-metal final gcc, it can be disturbing to read 'core' while we're in fact in 'final'. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-11-22cc: add a flag for skipping core passesYann Diorcet1-0/+8
It is used for skipping unnecessary compilation steps when the libc doesn't need to be compiled (eg. when we do not use a C library). Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com> Message-Id: <150eadb0117e697d79aa.1353625025@blackmint> Patchwork-Id: 201222
2012-11-16scripts: add BUILD/HOST extra cflags/ldflagsYann Diorcet1-2/+13
On some hosts, and for certain toolchains (eg. toolchain targetting the upcoming Darwin), it may be necessary to pass arbitrary CFLAGS and/or LDFLAGS when building the components. And necessary infrastructure: - EXTRA_{CFLAGS,LDFLAGS}_FOR_{BUILD,HOST} as config options - pass those extra flags to components Fix-up a slight typo in elf2flt at the same time (misnamed cflags). Signed-off-by: Yann Diorcet <diorcet.yann@gmail.com> Message-Id: <d24043276c9243a35421.1353077450@macbook-smorlat.local> Patchwork-Id: 199645
2012-10-29cc/gcc: remove svn sourceYann E. MORIN"1-23/+5
Since we now have the opportunity to use a custom local directory/tarball as the source for gcc, it no longer makes sense to retrieve gcc ourselves from its subversion repository. Cc: Bryan Hundven <bryanhundven@gmail.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-10-11cc/gcc: Add CUSTOM version and CUSTOM_LOCATION config options and GetCustomDavid Holsgrove1-1/+9
CUSTOM_LOCATION config options only presented in menuconfig if component CUSTOM version selected. Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com> [yann.morin.1998@free.fr: don't patch custom directory location] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Message-Id: <f2272ac0f37cedd0bb91.1349931194@localhost.localdomain> PatchWork-Id: 190787
2012-10-13cc/gcc: do not print multilib for canadian-crossYann E. MORIN"1-10/+14
Previous import from patchwork missed one hunk (in cset #d8feb93b3e49) Apply it now. Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Patchwork-Id: 189053
2012-10-04scripts/gcc: Canadian Cross skip -print-multi-lib log outputDavid Holsgrove1-10/+15
Attempting to ${CT_TARGET}-gcc -print-multi-lib will fail In do_cc_core_backend, for the final compiler in a canadian cross baremetal, warn that multi-libs cannot be determined In do_cc_backend, for either final compiler for a canadian cross, warn that multi-libs cannot be determined (Plus fixed CT_PREFIX_DIR in do_cc_backend to be ${prefix}) Signed-off-by: "David Holsgrove" <david.holsgrove@xilinx.com> Message-Id: <CAM=EW8aQDoNx-CkJHjXBoDP4iTDJ8z5hh3=KhO5UTU6rp3Pj=w@mail.gmail.com> Patchwork-Id: 189053
2012-08-22cc/gcc: Add the ability to build gcc from svnYann E. MORIN"1-23/+42
I took some of the svn functionality from eglibc. Signed-off-by: Bryan Hundven <bryanhundven@gmail.com> [yann.morin.1998@free.fr: fix the conditional test in build script] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-08-22cc/gcc: cleanup comments from rude wordingsYann E. MORIN"1-3/+2
That comes from way back when nothing would work as expected, and I would easily get heated as soon as anything would break. Sigh, those were the old days. Apologies. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-08-04cc/gcc: remove duplicate code in core pass-1Yann E. MORIN"1-20/+6
Whatever the threading model (NPTL, LT...), we build the same core pass-1 compiler, so there is no need to have a case-esac construct. Remove now mis-leading and incorect comment. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-08-01cc/gcc: remove now useless condition-variableYann E. MORIN"1-21/+10
Both core pass-1 and -2 compilers are unconditionally built, so we no longer require a condition variable. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-08-01cc/gcc: always build core pass-1Yann E. MORIN"1-0/+9
Up until now, all conditions requiring a core pass-1 was when the threading implementation used was NPTL. So we only built the core pass-1 when NPTL was used. Now, things have changed (what? when? Dunno...), and some bare-metal canadian toolchains fail to build if a core pass-1 is not present. OTOH, a core pass-1, although not needed for non-NPTL builds, does no harm at all if it is present. So, unconditionally build a core pass-1 (but still pass conditional options to the core backend). Reported-by: Per Arnold Blaasmo <Per-Arnold.Blaasmo@atmel.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-05-09cc/gcc: do not build manuals in parallelYann E. MORIN"1-1/+1
Reported-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Reported-by: Johannes Stezenbach <js@sig21.net> Tested-by: Johannes Stezenbach <js@sig21.net> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-05-06cc/gcc: add option to enable/disable libquadmathYann E. MORIN"1-0/+9
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-01-03cc/gcc: build core compilers for canadianYann E. MORIN"1-11/+5
Currently, we rely on an existing external cross-compiler targetting the target, to build the C library. This can pause quite a few problems if that compiler is different from the one we are building, because it could introduce some ABI issues. This patch removes this dependency, by building the core compilers as we do for standard cross, and also by building the binutils and gcc, for running on the build machine. This means we no longer need to offer the cross-sompiler selection in the menuconfig. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-04-02cc/gcc: add build frontendYann E. MORIN"1-2/+42
Bizarrely enough, the core gcc are not enough to be able to build a canadian cross, and a real, full cross compiler is required so that the canadian cross can be properly built... WTF?!? Sigh... Add a build-frontend, as was done for the binutils and the complibs. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2012-04-01cc/gcc: frontends are responsible for selecting the list of languagesYann E. MORIN"1-2/+4
Do for the final step the same as for the core step: compute the list of selected langauages from the frontend, not in the backend. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2011-08-15cc/gcc: pass the language list to the core backendYann E. MORIN"1-4/+6
As the core backend can be used to also build the bare-metal compiler, we have to tel it what languages to build. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-15cc/gcc: add language helper functionYann E. MORIN"1-14/+20
Add a function that prepares the language configure option. It is needed in at least two places, some commonalisation is needed. ;-) Unfortunately, it is no longer possible to print warnings about experimental languages any more. Anyway, the experimental status is clearly indicated in the menuconfig. so it should not be a surprise if the build breaks. :-/ Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-25complibs: fixup the host complibs install dirYann E. MORIN"1-3/+3
It's easier to have as much as possible stuff in the same place to ease backup/restore, and make things easier to follow. Move the host companion libraries install dir as a sub-dir of the build-tools install dir (but not directly in it, it would break for canadian or cross-native). Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-25cc/gcc: cleanup the frontendsYann E. MORIN"1-35/+21
A few noop fix-ups: - fix the comments in core pass-1 - commonalise settings that can be Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17cc/gcc: always build core compilers to run on the build machineYann E. MORIN"1-5/+5
The core compilers are used to build the C library, so they should always run on the build machine, not on the host. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-01-01cc/gcc: install the core compilers in the build-tools dirYann E. MORIN"1-5/+2
There really is no good reason to install the core compilers in their own places, one for each pass. We can install them with the other build tools. Also, this implies that: - there are fewer directories to save/restore - there are fewer symlinks to create for binutils - the PATH is shorter Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-02-27cc/gcc: Update core_prefix_dir to prefix.Zhenqiang Chen1-1/+1
core_prefix_dir is not defined. It should be prefix. Signed-off-by: Zhenqiang Chen <zhenqiang.chen@linaro.org>
2011-07-24cc-gcc: the frontends are responsible for mkdir/chdirYann E. MORIN"1-17/+22
The build dir are created depending on the host (host for that specific backend, not host for the toolchain). Only the frontends know what host this is, so only the frontends can create non-ambiguous dirs. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-24cc/gcc: fix core backend's API docYann E. MORIN"1-13/+14
Make it more in line with the final backend's doc, and make it simpler as well. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-24cc/gcc: no need to build a static core pass-1 gcc for baremetalYann E. MORIN"1-11/+0
The only user of the static core compiler in pass-1 was the newlib C library. Now that it is build in a later step, we do no longer need to build a static core compiler in pass-1. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2012-02-13cc/gcc: comonalise the manuals build decisionYann E. MORIN"1-3/+7
Let the final frontend decide whether or not to build the manuals. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17cc/gcc: do not use the core pass-2 to build the baremetal compilerYann E. MORIN"1-9/+16
In case we build a baremetal compiler, use the standard passes: - core_cc is used to build the C library; - as such, it is meant to run on build, not host; - the final compiler is meant to run on host; As the current final compiler step can not build a baremetal compiler, call the core backend from the final step. NB: Currently, newlib is built during the start_files pass, so we have to have a core compiler by then... Once we can build the baremetal compiler from the final cc step, then we can move the newlib build to the proper step, and then get rid of the core pass-1 static compiler... Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17cc/gcc: add the backend/frontend infra for final gccYann E. MORIN"1-10/+39
Currently, we issue the bare-metal compiler from the pass_1 & pass_2 core compilers, because the final gcc breaks while doing so. This implies we have to build some libces during the start_files step, instead of the standard libc step. This is the case for newlib. By adding a backend/frontend infra to the final gcc, we can abstract what backend to call: the standard backend for non-bare-metal gcc, and the core backend for bare-metal. This patch is just an no-op, it just adds the final backend and frontend without changing the way bare-metal is built, to come in a subsequent patch. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-08-23cc/gcc: add 'cflags' paramater to the core backendYann E. MORIN"1-1/+9
As the core backend is used to generate the bare-metal compiler, we need to pass it the host CFLAGS. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17cc/gcc: add host parameter to core compiler build processYann E. MORIN"1-1/+9
Tell the core compiler what host it should run on (instead of hard-coding runing on CT_HOST). No functional change so far, switching between CT_HOST and CT_BUILD will come in a following patch. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17cc/gcc: pass the install prefix to the core passesYann E. MORIN"1-8/+12
Currently, the discrimination on the core compilers prefixes depends on the type of core compiler to build. This is not correct, and the caller of the core backend should specify the prefix. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2011-07-17cc/gcc: pass the companion libs prefix to cc_coreYann E. MORIN"1-7/+15
In case of canadian-cross, the companion libraries are not the same for the core cc (they run on 'build') as they are for the final cc (they run on 'host'). Prepare for this differentiation (coming later), while retaining the current behavior (to use the same compblibs). Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>