Opened 14 years ago

Closed 14 years ago

#759 closed task (fixed)

Add --disable-multilib to ARM's and MIPS's GCC

Reported by: Andrew Bradford Owned by: clfs-commits@…
Priority: major Milestone: CLFS Embedded 1.0.0
Component: BOOK Version: CLFS Embedded GIT
Keywords: Cc:

Description

We should be building a GCC that's single library for the embedded book. Need to add --disable-multilib to the ARM and MIPS books to do this.

This may require specifying the arm/thumb instruction set (--with-mode=), soft/hard/softfp floating point operation (--with-float=), and how divide by zero is handled (--with-divide=).

See discussion on dev mailing list: http://lists.cross-lfs.org/pipermail/clfs-dev-cross-lfs.org/2011-February/000898.html

Change History (4)

comment:1 by Andrew Bradford, 14 years ago

Copy/paste from mailing list discussion:

From gcc-4.5.2/gcc/config, it looks like any target triplet of arm*-*-linux* gets a default configuration from gcc-4.5.2/gcc/config/arm/linux-elf.h and arm.h that is: arm mode, little (or big, if you have arm*b-*) endian, hard-float, apcs abi, and does not allow thumb interworking.

If your target triplet is arm*-*-linux-*eabi, configuration from gcc-4.5.2/gcc/config/arm/linux-eabi.h and bpabi.h will overwrite some of this with: aapcs-linux abi, cpu of arm10tdmi (which is a member of armv5t), vfp, and soft-float.

I now get the impression that in order to safely use --disable-multilib, the ARM book should specify: --with-float, --with-mode, --with-abi, --with-fpu, and --with-cpu OR --with-arch. (For --with-cpu / --with-arch, see #758.)

comment:2 by Andrew Bradford, 14 years ago

For MIPS, we should be sure to specify: --with-float (soft / hard), --with-abi, --with-arch, and --with-endian.

GCC figures out the endian-ness for ARM based on the target triplet. It doesn't appear to do the same for MIPS.

comment:3 by Andrew Bradford, 14 years ago

My git repo, as of commit b54e9693a1657df4c308a92602e96370c3850f6a, specifies all the above mentioned requirements in order to enable --disable-multilib for all GCC builds (all archs and both static and final GCC).

comment:4 by Joe Ciccone, 14 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.