Age | Commit message (Collapse) | Author | Files |
|
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.
|
|
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>
|
|
* 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>
|
|
* Export AS_FOR_TARGET OBJDUMP_FOR_TARGET
OBJCOPY_FOR_TARGET STRIP_FOR_TARGET
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
* This does not work on canadian cross build of target gcc.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
* 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>
|
|
* 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>
|
|
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>
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
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>
|
|
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>
|
|
Tested on a armv5te platform using thumb instruction set
|
|
checksums.ini: Add checksum for lilo.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
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>
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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>
|
|
Makefiles
|
|
|
|
|
|
linux-gnueabi
* powerpc people are welcome to enable fortran as well :)
|
|
|
|
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>
|
|
Drop LICENSE/SECTION from mingw-gcc as it was redundant
|
|
Rework SYSROOT_CFLAGS_FOR_TARGET.patch each time, and rename to -4.3.2/4.3.3.
|
|
|
|
honor LDFLAGS, bump PR
|
|
gcc-posix-open-fix.patch, add missing cross-initial/cross-intermediate files, really honor LDFLAGS, bump PR
|
|
|
|
|
|
* This is a preliminary port. Now all patches has been ported yet.
|
|
We want a default of -1 (not 0) and 1 for "mingw32" so that the default list
of overrides will catch and use them.
|
|
bump PR.
|
|
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>
|
|
|
|
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.
|