summaryrefslogtreecommitdiffstats
path: root/package/gcc
Commit message (Collapse)AuthorAgeFilesLines
...
* gcc: pass MAKEINFO=missing in the environment rather than as a ./configure argPeter Korsgaard2013-09-044-1/+14
| | | | | | | | | | | | | | Fixes a build issue with the avr32 toolchain: http://jenkins.free-electrons.com/job/buildroot/config=atngw100_defconfig/104/ Invalid configuration `MAKEINFO=missing': machine `MAKEINFO=missing' not recognized Instead pass it in the environment of ./configure, similar to how it was done originally in 62322acb2ce (toolchain/gcc: disable makeinfo). Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc: re-disable info documentationPeter Korsgaard2013-09-031-0/+1
| | | | | | | | | | | | The documentation of older GCC versions (E.G. 4.3.x) contain constructs that are no longer accepted by recent (5.x) versions of makeinfo, breaking the build. The documentation isn't really needed, and takes up extra space/build time, so work around it by disabling documentation, like we had before the conversion of the toolchain to the package infrastructure. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc-final: Drop obsolete code for handling lib64Markos Chandras2013-08-281-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since 5628776c4a4d29d0715633ea463b64cc19e19c5a "toolchain-external: fix lib64 symlinks" lib64 is a symlink to lib so there is no reason to copy the libraries to lib64 anymore. This fixes multiple building problems for buildroot toolchains: [...] mv: 'output/host/usr/mips64-buildroot-linux-uclibc/sysroot/lib64/libuClibc-0.9.33.2.so' and 'output/host/usr/mips64-buildroot-linux-uclibc/sysroot/lib/libuClibc-0.9.33.2.so' are the same file mv: 'output/host/usr/mips64-buildroot-linux-uclibc/sysroot/lib64/libutil-0.9.33.2.so' and 'output/host/usr/mips64-buildroot-linux-uclibc/sysroot/lib/libutil-0.9.33.2.so' are the same file mv: 'output/host/usr/mips64-buildroot-linux-uclibc/sysroot/lib64/libutil.so.0' and 'output/host/usr/mips64-buildroot-linux-uclibc/sysroot/lib/libutil.so.0' are the same file rmdir: failed to remove 'output/host/usr/mips64-buildroot-linux-uclibc/sysroot/lib64': Not a directory [...] Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc: fix libstdc++_pic for AVR32Alexander Lukichev2013-08-221-0/+20
| | | | | | | | | | | | | | | | | It is not clear why 300-libstdc++-pic.patch pre-applied to gcc-4.2.2-avr32-2.1.5 seems to have come from some older version of gcc (as early as 4.0.3). This older patch incorrectly refers to object files to be included in the library libstdc++_pic.a as *.o, while their location seems to be in .libs/*.o (see the contents at e.g. https://github.com/ZigFisher/Midge/blob/master/toolchain/gcc/4.0.3/300-libstdc%2B%2B-pic.patch ). The same patch for gcc 4.1.0 refers to the files as .libs/*.o (see https://github.com/ZigFisher/Midge/blob/master/toolchain/gcc/4.1.0/300-libstdc%2B%2B-pic.patch ). This patch corrects rules in Makefile.in. Signed-off-by: Alexander Lukichev <alexander.lukichev@gmail.com> Acked-by: Simon Dawson <spdawson@gmail.com> Tested-by: Simon Dawson <spdawson@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc: fix !BR2_LARGEFILE buildsFrancois Perrad2013-08-071-0/+1
| | | | | | | | see http://lists.busybox.net/pipermail/buildroot/2013-August/076278.html Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Tested-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc/mudflap: disable for blackfin, it doesn't buildGustavo Zacarias2013-07-271-0/+5
| | | | | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc/bfin: 4.{6,7,8}.x are brokenGustavo Zacarias2013-07-271-3/+4
| | | | | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc/bfin: doesn't support --with-cpu defaultsGustavo Zacarias2013-07-271-0/+3
| | | | | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* gcc/arm: disable mudflap for thumb(1)Gustavo Zacarias2013-07-191-0/+5
| | | | | | | libmudflap doesn't build for a thumb(1) toolchain so disable it. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* arc: gcc: Go from 4.4.7 to 4.8 for ARCMischa Jonker2013-07-198-8/+244
| | | | | | | | | | This fixes multiple issues, including: - 'operand out of range' errors (due to defaulting to medium calls instead of short calls) - library dependencies that were not being found Signed-off-by: Mischa Jonker <mjonker@synopsys.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc-final: ensure TARGET_DIR/usr/lib exists before copying to itPeter Korsgaard2013-07-171-0/+1
| | | | | | Got dropped in the toolchain/gcc -> package/gcc conversion. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* arch/arm: add support for Thumb2Thomas Petazzoni2013-07-161-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | Until now, we were using the default ARM instruction set, as used by the toolchain: the 32 bits ARM instruction set for the internal backend, and for external toolchain, whatever default was chosen when the toolchain was generated. This commit adds support for the Thumb2 instruction set. To do so, it: * provides a menuconfig choice between ARM and Thumb2. The choice is only shown when Thumb2 is supported, i.e on ARMv7-A CPUs. * passes the --with-mode={arm,thumb} option when building gcc in the internal backend. This tells the compiler which type of instructions it should generate. * passes the m{arm,thumb} option in the external toolchain wrapper. ARM and Thumb2 code can freely be mixed together, so the fact that the C library has been built either ARM or Thumb2 and that the rest of the code is built Thumb2 or ARM is not a problem. [Peter: fix empty BR2_GCC_TARGET_MODE check] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc: create symbolic link to ld-linux in EABIhf/gcc 4.7/eglibcThomas Petazzoni2013-07-161-0/+12
| | | | | | | | | | | When using eglibc, the ld-linux loader is installed as ld-linux-armhf.so.3, but gcc 4.7.x was not yet updated, and generates binaries that reference ld-linux.so.3. This was fixed starting with gcc 4.8.x. In order to be able to use gcc 4.7, we create the appropriate symbolic link. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc: take into account ARM floating point capabilitiesThomas Petazzoni2013-07-161-0/+7
| | | | | | | | | | | | The ARM EABIhf support was introduced in gcc 4.6.x, so versions earlier than this one should not be used when EABIhf is selected. The ARM VFPv4 support was introduced in gcc 4.5.x, so versions earlier than this one should not be used when VFPv4 is used. [Peter: drop OABI dependencies] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* arch: introduce BR2_GCC_TARGET_{FPU, FLOAT_ABI}Thomas Petazzoni2013-07-161-0/+10
| | | | | | | | | | | | | | | | Buildroot already has the BR2_GCC_TARGET_{TUNE,ARCH,ABI,CPU} hidden kconfig strings that allow per-architecture Config.in files to feed the appropriate values of --with-{tune,arch,abi-cpu} when building gcc, or the appropriate flags for the external toolchain wrapper. This commit has two additional options: BR2_GCC_TARGET_{FPU,FLOAT_ABI}, that allows to define the --with-{fpu,float} gcc configure options for the internal backend, or the -m{fpu,float-abi} options for the flags of the external toolchain wrapper. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc: use BR2_EXTRA_GCC_CONFIG_OPTIONS in gcc-initial and gcc-intermediateThomas Petazzoni2013-07-143-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | When refactoring the internal toolchain backend logic, the code was changed to pass the custom configure options given through BR2_EXTRA_GCC_CONFIG_OPTIONS only for the gcc final pass, with the idea that we're only interested by user customization for the final compiler. However, the beaglebone_defconfig was passing --with-float=hard --with-fpu=vfpv3-d16 as BR2_EXTRA_GCC_CONFIG_OPTIONS, and since the refactoring, it was causing build failures of the beaglebone_defconfig (with messages saying that Busybox is built to use VFP arguments, but libc/libm are not). This is due to the fact that the gcc intermediate, which is used to build the C library, wasn't built to generate hard float, while the final compiler was generating hard float. So, we get back to the original situation where the options in BR2_EXTRA_GCC_CONFIG_OPTIONS are passed to all of the compiler passes. Of course, the specific case of hard float will be fixed by following patches in this area, but the idea still remains: the three gcc should have the same options, if those options affected the ABI of the generated code. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc: remove BR2_GCC_SHARED_LIBGCC optionThomas Petazzoni2013-07-113-18/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Commit 6b48b4803450 ("add a know to enable/disable building a shared libgcc"), from october 2006, isn't really as to why a BR2_GCC_SHARED_LIBGCC option was needed. However, now that gcc has been converted to the package infrastructure, it causes problems because the host packages are always being passed --enable-shared --disable-static, so re-adding --disable-shared on top of that break things. Moreover, our tests indicate that both a shared *and* a static version of libgcc are built, and that linking dynamically and statically a program that uses libgcc_s gives correct results: dynamically linked against libgcc_s in the first case, statically linked in the second case. Therefore, it appears that this option is no longer necessary, and removing it has the advantage of fixing the builds of qemu_mips64_malta_defconfig and qemu_sparc_ss10_defconfig, both of which had BR2_GCC_SHARED_LIBGCC not enabled. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc: re-add upstream URL for arc specific gcc variantPeter Korsgaard2013-07-071-0/+2
| | | | | | | | Got dropped in the gcc -> packages work. Fixes http://autobuild.buildroot.net/results/08e/08e8149c9889141d644896e1fd3e0d2f14299033/ Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc: apply PowerPC patch when neededThomas Petazzoni2013-07-051-0/+9
| | | | | | | | | | | | | | When converting gcc to the package infrastructure, a specific thing for PowerPC was forgotten: applying the conditional patch powerpc-link-with-math-lib.patch.conditional. This breaks the build of some PowerPC toolchains, with failures such as: <http://jenkins.free-electrons.com/job/buildroot/./config=qemu_ppc_virtex_ml507_defconfig/ws/output/host/usr/lib/gcc/powerpc-buildroot-linux-uclibc/4.7.3/../../../../powerpc-buildroot-linux-uclibc/lib/libgcc_s.so.1>: undefined reference to `copysignl' Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Tested-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc: fix avr32 typoPeter Korsgaard2013-07-051-1/+1
| | | | | Reported-by: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* eglibc: enable support in the Buildroot toolchain backendThomas Petazzoni2013-07-043-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Using the newly introduced 'eglibc' package, this commit enables the option of building a toolchain using the eglibc C library in the Buildroot toolchain backend. In details, this commit: * Creates a choice to select uClibc or eglibc in the Buildroot toolchain backend (in toolchain/toolchain-buildroot/Config.in), and removes the fact that the Buildroot toolchain backend forcefully enables uClibc (toolchain/Config.in). * Creates a BUILDROOT_LIBC variables, which points to the package implementing the C library (i.e either 'uclibc' or 'eglibc'). * Modifies the gcc-final and gcc-intermediate makefiles to use the BUILDROOT_LIBC variable instead of hardcoding the use of uclibc. * Ensures that TLS support is always enabled when building eglibc. [Peter: fix commit text to refer to BUILDROOT_LIBC] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* uclibc: convert to the package infrastructureThomas Petazzoni2013-07-041-1/+1
| | | | | | [Peter: update manual to match] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc-initial, gcc-intermediate, gcc-final: optimize extractionThomas Petazzoni2013-07-0310-122/+23
| | | | | | | | | | | | | | | | Several sub-directories of the gcc code base are in fact not needed for the Buildroot build: libjava/, libgo/ and gcc/testsuite/ being the biggest ones. Avoiding their extraction saves quite a bit of disk space, and compensates a bit the fact that we now extract three times the gcc source code. This requires changing the 100-uclibc-conf.patch to no longer patch files from the libjava/ directory, since this directory is no longer extracted. [Peter: add comment about why this is done] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* toolchain: switch to using gcc through package infrastructureThomas Petazzoni2013-07-0355-0/+2749
| | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc-final: new packageThomas Petazzoni2013-07-031-0/+135
| | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc-intermediate: new packageThomas Petazzoni2013-07-031-0/+43
| | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc-initial: new packageThomas Petazzoni2013-07-031-0/+37
| | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
* gcc: common definitionsThomas Petazzoni2013-07-032-0/+290
[Peter: tweak file header] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
OpenPOWER on IntegriCloud