summaryrefslogtreecommitdiff
path: root/recipes/gcc
AgeCommit message (Collapse)AuthorFiles
2009-09-30gcc: update Maverick Crunch support to 20090908 versionMarcin Juszkiewicz67
From Martin W. Guy page http://martinwguy.co.uk/martin/crunch/ The 20090908 version * performs single and double precision floating point in the FPU (add, sub, mul, neg, abs, cmp and conversions from single and double precision floats to integral types). * by default, disables the floating point cfnegs and cfnegd instructions, which fail to convert 0 to -0 as they should. You can re-enable them with the -funsafe-math-optimizations flag, which is one of those enabled by -ffast-math (gcc-4.3 has an even more specific -fno-signed-zeros flag, which is one of those enabled by -funsafe-math-optimizations). * by default, does not respect denormalised values, so the smallest representable values are ±2-126 for floats and ±2-1022 for doubles instead of the usual ±2-149 and ±2-1074. * has a -mieee flag, which enables handling of denormalized values by disabling all the buggy instructions. With this, floating point addition, subtraction, negation, absolute value and conversion between floats and integer types are performed in software, leaving only floating point multiplication and comparison performed in hardware. * has no negative impact on regular ARM code generation. * always works round the hardware bugs in the FPU and no longer has the -mcirrus-fix-invalid-insns flag since chip development has stopped and all existing silicon has the same bugs except for the original revision D0 which is not supported. * passes GCC's IEEE testsuite except for the one specific test that checks for correct handling of denormalized values. With -mieee it passes all the math tests. * passes all other testsuites that I've tried (see below) including the stringent "paranoia" floating point IEEE conformance test. * produces the fastest Maverick code yet: 5.94 MFLOPS according to FFTW's tests/bench -opatient cf1024 benchmark and LAME takes 2m25 to encode that 30-second WAV file on a 200MHz EP9307 (compared to 5.4 and 2m30 for the futaris patches for 4.1.2 and 4.2.0). * does not use the FPU's buggy 64-bit integer instructions unless the new -mcirrus-di flag is given. Programs that do a lot of 64-bit integer operations (add, sub, mul, neg, abs, shifts) may be faster using this, but rigorous testing will be necessary to ensure that bad code is not being produced. OpenSSL's testsuite fails if this is enabled. There is more detail at the head of the arm-crunch-cirrus-di-flag.patch file. Known bugs * C: Values held in Maverick registers are not restored when performing a setjmp/longjmp pair. There is a fix to glibc for this in a message to the linux-cirrus mailing list. * C++: Similarly, exception unwinding (performing a throw back to a catch block in a different function) does not restore floating point and 64-bit values held in Maverick registers. * C++: Some C++ files will not compile, saying ".save {mv8}" Error: register expected although the same files will compile with optimization disabled. There is a patch to make binutils recognize these registers in the .save macro in a message to the linux-cirrus mailing list.
2009-09-12gcc-configure-common.inc: Fiddle with NATIVE_SYSTEM_HEADER_DIR only form ↵Khem Raj1
cross gcc build * target gcc does not like the NATIVE_SYSTEM_HEADER_DIR being tweaked. for now conditionalize it so it gets included only for cross builds it could be that target gcc for micro wont work because it needs headers in /usr/include and the actual headers are in /include Signed-off-by: Khem Raj <raj.khem@gmail.com>
2009-09-11gcc-configure-common.inc: Muck with NATIVE_SYSTEM_HEADER_DIRKhem Raj1
* GCC's notion of standard includes being in /usr/include is not valid for micro distro which uses flattened layout Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Henning Heinold <heinold@inf.fu-berlin.de>
2009-09-10gcc-configure-cross.inc: Export more binutilsKhem Raj1
* Export AS_FOR_TARGET OBJDUMP_FOR_TARGET OBJCOPY_FOR_TARGET STRIP_FOR_TARGET Signed-off-by: Khem Raj <raj.khem@gmail.com>
2009-09-10gcc-configure-common: Dont fiddle with NATIVE_SYSTEM_HEADER_DIRKhem Raj2
* This does not work on canadian cross build of target gcc. Signed-off-by: Khem Raj <raj.khem@gmail.com>
2009-09-05gcc-4.4.1: Fix canadian cross compilation.Khem Raj3
* Forward port cache amnesia patch * Forward port gcc-flags-for-build patch * do_configure needs to be overridden for 4.4.1 Signed-off-by: Khem Raj <raj.khem@gmail.com>
2009-09-03OpenEmbedded: Switch to using linux-uclibceabi and linux-gnu for TARGET_OSKhem Raj3
* Bump the ABI_LAYOUT. Build from scratch will be needed. * Replace using TARGET_OS from linux->linux-gnu. * Replace using linux-uclibcgnueabi->linux-uclibceabi. * Add 'eabi' to DISTRO_FEATURES (only for minimal and micro). * Use eabi and BASE_PACKAGE_ARCH to compute real TARGET_OS. * Fix the micro conf to get console image building. * Fix the linux-uclibcgnueabi overrides in all recipes. Signed-off-by: Khem Raj <raj.khem@gmail.com> Acked-by: Phill Blundell <pb@reciva.com> Acked-by: Michael 'Mickey' Lauer <mickey@vanille-media.de>
2009-08-28gcc-4.4.1: Backport improved TLS detection patch in cross environmentKhem Raj2
This patch is required for libstdc++ mainly as far as gcc is concerned. Without this patch configure detects TLS falsely and enables tls when compiling libstdc++ on uclibc based systems uclibc lacks TLS support as of now. With NPTL it will have TLS support but thats a distant future. Signed-off-by: Khem Raj <raj.khem@gmail.com>
2009-08-27gcc-4.4.1.inc: Disable 128 bit long double for powerpc-*-uclibcKhem Raj1
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2009-08-27gcc-4.4.1: Disable libdecnumber for uclibc target.Khem Raj3
We do not set FENV in uclibc so as a result we can not build libdecnumber. We disable it for gcc 4.4.1 uclibc targets. copysignl is in libm in uclibc so gcc complains about this function in libgcc. We see if it is uclibc powerpc softfloat then we add -lm to linker commandline. Not best but works. Signed-off-by: Khem Raj <raj.khem@gmail.com>
2009-08-20gcc: fix libstdc/libgcc packaging on x86_64Michael Smith7
do_install was looking under ${D}/some long cross path/*/lib; needs to be lib64 on x86_64. On x86_64 base_libdir would be set to /lib64, so we can go by that. Bump INC_PR for recent gccs: 4.1.2, 4.2.[34], 4.3.[34], 4.4.1. Signed-off-by: Michael Smith <msmith@cbnco.com>
2009-08-12gcc: add new gcc version 4.3.4Dirk Opfer179
Tested on a armv5te platform using thumb instruction set
2009-08-08gcc-4.4.1.inc: Make cross compile for SH architecture.Khem Raj2
checksums.ini: Add checksum for lilo. Signed-off-by: Khem Raj <raj.khem@gmail.com>
2009-08-07gcc-4.4.1.inc: Make gcc 4.1.1 compilable for uclibc targets.Khem Raj1
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2009-08-06gcc: Remove gcc 4.1.0 recipes in favour of gcc 4.4.1Khem Raj152
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2009-06-25gcc: get rid of fix-ICE-in-arm_unwind_emit_set.diffDirk Opfer17
Remove fix-ICE-in-arm_unwind_emit_set.diff from gcc versions >= 4.2.1 upstream gcc already includes this fix. Instead of patching arm_unwind_emit_set the patch was modified and slipped into thumb_pushpop and can cause a gcc segfault. Signed-off-by: Dirk Opfer <dirk@do13.de>
2009-06-19gcc-package-sdk.inc: ${layout_base_bindir} is not the path to where the real ↵Tom Rini4
binary is. The binary will always be two levels back, and it will always be in ${bindir} as that's what we pass to configure, so basename that to find the right directory name. Bump INC_PR in gcc-canadian-sdk 4.2.4, gcc-cross-sdk 4.2.4/4.3.3/4.4.0
2009-06-19gcc-4.4.0: Switch to INC_PRTom Rini4
2009-06-19gcc-4.3.2: Switch to INC_PRTom Rini4
2009-06-19gcc-4.3.1: Switch to INC_PRTom Rini4
2009-06-19gcc-4.2.3: Switch to INC_PRTom Rini4
2009-06-19gcc-4.2.2: Switch to INC_PRTom Rini4
2009-06-19gcc-4.1.2: Switch to INC_PRTom Rini4
2009-06-19gcc-4.1.1: Switch to INC_PRTom Rini4
2009-06-19gcc-4.1.0: Switch to INC_PRTom Rini4
2009-06-19gcc-3.4.4: Switch to INC_PRTom Rini5
2009-06-19gcc-3.4.3: Switch to INC_PRTom Rini4
2009-06-19gcc-3.3.4: Use INC_PRTom Rini4
2009-06-13gcc-4.4.0: add some uclibc patchesPhil Blundell2
2009-06-10gcc-package-cross: tolerate absence of libstdc++Phil Blundell1
2009-06-02gcc 4.3.3: add ep93xx patches from Martin W. GuyMarcin Juszkiewicz29
Patchset taken from http://martinwguy.co.uk/martin/crunch/ Text from page: On 10 March there were no known bugs in this stuff (again). On 19 March libvorbisenc managed to find a bug in GCC whereby it incorrectly optimizes certain code sequences that use single-precision floats. The Maverick code generator exhibits similar symptoms for the same code, but only at optimization levels -O2 and above, so the fastest reliable optimization options for Maverick at present are -O -ffast-math. I've been working on GCC-4.3.3 to make it generate working code for the Cirrus Logic MaverickCrunch FPU, as found in their ARM-based EP9302, EP9307, EP9312 and EP9315 chips, making floating point-intensive code about 2.5 times faster. This follows on from Hasjim Williams' earlier work with gcc-4.1.2 and 4.2.0, a bundle of his more recent ideas and more hacks from me. If you want to understand the patches themselves, there is an article about the MaverickCrunch FPU and GCC's problems with it on the Debian wiki [1] and I have added commentary at the top of the individual patch files. 1. http://wiki.debian.org/ArmEabiMaverickCrunch Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Tom Rini <trini@embeddedalley.com>
2009-05-27gcc: made sure that no unsubstituted @LDFLAGS@ is left in the generated ↵Martin Dietze1
Makefiles
2009-05-20gcc 4.3.2, 4.3.3, 4.4.0: attempt to fix zecke-no-host-includes.patchKoen Kooi6
2009-05-13gcc*4.3.3: Switch to INC_PR, start at r3Tom Rini4
2009-05-13gcc 4.3.3: fix regression from 4.3.1 that caused fortran to get disabled for ↵Koen Kooi3
linux-gnueabi * powerpc people are welcome to enable fortran as well :)
2009-05-11gcc*4.2.4: Switch to using INC_PR (r6).Tom Rini5
2009-05-11gcc-canadian-sdk: Drop gcc-package-canadian-sdk.inc as we don't really need it.Tom Rini2
The contents of gcc-package-canadian-sdk.inc aren't actually installed / used for a canadian-sdk, and duplicating the unneeded python function lead to lockfile errors to boot (noted by David Huggins-Daines <dhuggins@cs.cmu.edu>). Signed-off-by: Tom Rini <trini@embeddedalley.com>
2009-05-06gcc: For 4.2.2 and newer, set LICENSE = GPLv3Tom Rini8
Drop LICENSE/SECTION from mingw-gcc as it was redundant
2009-04-30gcc-4.3.x: Really honor LDFLAGS, bump PR.Tom Rini18
Rework SYSROOT_CFLAGS_FOR_TARGET.patch each time, and rename to -4.3.2/4.3.3.
2009-04-30gcc-4.1.0: Use patches from 4.1.1, really honor LDFLAGS, bump PRTom Rini3
2009-04-30gcc 4.0.2: Disable libmudflap/ssp, add gcc-posix-open-fix.patch, really ↵Tom Rini6
honor LDFLAGS, bump PR
2009-04-30gcc 4.0.0: Fix fortran building, disable libmudflap/ssp, add ↵Tom Rini6
gcc-posix-open-fix.patch, add missing cross-initial/cross-intermediate files, really honor LDFLAGS, bump PR
2009-04-30gcc (various): Drop incomplete LDFLAGS patch and really honor them, bump PRTom Rini41
2009-04-30gcc-3.4.x: Rename gcc-posix.patch to gcc-posix-open-fix.patch, put in files/Tom Rini4
2009-04-25gcc-4.4.0: Add recipes for latest gcc release 4.4.0Khem Raj154
* This is a preliminary port. Now all patches has been ported yet.
2009-04-17mingw-gcc, mingw-runtime, mingw-w32api: Fix DEFAULT_PREFERENCES to be correctTom Rini1
We want a default of -1 (not 0) and 1 for "mingw32" so that the default list of overrides will catch and use them.
2009-04-07gcc-canadian-sdk: Fix C++ relocation, add SYSROOT, use SDK_REALPATH_MINGW, ↵Tom Rini2
bump PR.
2009-04-06gcc-cross-sdk: Fix relocation of the toolchain and bump PR.Tom Rini15
There's two parts to this. The first is to make relative, not absolute symlinks for 'cpp', etc. The second is that we need to configure without --with-gxx-include-dir and instead install the base C++ headers into the expected location. The path passed to --with-gxx-include-dir will not be relocated and is an absolute. Acked-by: Florian Boor <florian.boor@kernelconcepts.de> Acked-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Tom Rini <trini@embeddedalley.com>
2009-04-06gcc-svn: Add recipe to build bleeding edge gcc.Khem Raj153
2009-04-02gcc: Fix 4.1.[012], 4.2.[1234] and 4.3.[123] SRC_URI to use ${GNU_MIRROR} ↵Tom Rini10
and update checksums.ini This fixes a big problem with 4.3.3 as it wasn't using ftp.gnu.org but an alternate mirror that's gone away. Since I had to fix one I noticed others not calling ${GNU_MIRROR} but ftp.gnu.org. Also a few weren't using ${PV}, so use that too.