samples/powerpc-e500v2-linux-gnuspe/reported.by
author Bryan Hundven <bryanhundven@gmail.com>
Sun Jun 26 03:26:54 2011 -0700 (2011-06-26)
changeset 2515 364b06df9e3a
parent 2290 ba82eb173bd4
permissions -rw-r--r--
glibc: Refactor startfiles/headers into do_libc_backend()

Refactor the contents of 'do_libc_start_files()' and 'do_libc()' into a
parameterized 'do_libc_backend()'. 'do_libc_start_files()' and 'do_libc()'
call 'do_libc_backend()' with either 'libc_mode=startfiles' or
'libc_mode=final' (respectively) so that the startfiles/headers and
the final libc builds are configured and built with the same options.

One example of where this is needed is when building a mips toolchain.
Previously, if you were building an n32 toolchain, you wouldn't have
noticed an issue, because if '-mabi' is not in CFLAGS, n32 is the
default:

http://sourceware.org/git/?p=glibc-ports.git;a=blob;f=sysdeps/mips/preconfigure;hb=HEAD

But when trying to build an o32 or n64 toolchain the build would
have failed. This is because (e)glibc expects "-mabi={o32,n32,n64}" to be
in CFLAGS, but was not previously provided in 'do_libc_start_files()'.
The build failure would happen in the shared-core gcc when it tries to
configure an n64 or o32 gcc with an n32 libc.

A simpler solution would have been to just add TARGET_CFLAGS to configure
in 'do_libc_start_files()', but this way makes configure and make
consistent for both steps.

Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
     1 reporter_name="Anthony Foiani <anthony.foiani@gmail.com>"
     2 reporter_url="http://sourceware.org/ml/crossgcc/2010-09/msg00100.html"
     3 reporter_comment="This is a sample config file for Freescale e500v2 processors (e.g., MPC8548,
     4 MPC8572). It uses eglibc (for e500/SPE patches) and a recent gcc (4.6.0,
     5 for e500v2 DPFP support) and will generate appropriate dual-precision
     6 floating point instructions by default.
     7 
     8 Note: If building a Linux kernel with this toolchain, you will want to make
     9 sure -mno-spe AND -mspe=no are passed to gcc to prevent SPE ABI/instructions
    10 from getting into the kernel (which is currently unsupported). At this time,
    11 the kernel build system properly passes those two options, but older kernels
    12 were only passing -mno-spe by default."