This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [3.4 patch] Fix PR16314, undefined reference to `__subdf3' forarm-softfloat
On Tue, 31 Aug 2004, Richard Earnshaw wrote:
On Tue, 2004-08-31 at 11:25, Vladimir Ivanov wrote:
What about defining more targets, like "t-linux-crunch" and
"t-linux-softfp"? This could solve some of the current ABI differences.
Not really. I suspect folks really want a single compiler that supports
both hard and soft float. Separate t-* files only come into play with
separate configurations of the compiler. Besides that it becomes a
maintenance nightmare.
Then we're back to the single "t-linux". Here's what I've been using:
---//---
# Just for these, we omit the frame pointer since it makes such a big
# difference. It is then pointless adding debugging.
TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC
TARGET_LIBGCC2_CFLAGS += -mfix-crunch-d0
LIBGCC2_DEBUG_CFLAGS = -g0
LIB1ASMSRC = arm/lib1funcs.asm
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
_fixsfsi _fixunssfsi
MULTILIB_OPTIONS = mhard-float/msoft-float/mcpu=ep9312
MULTILIB_DIRNAMES = hard-float soft-float ep9312
MULTILIB_EXCEPTIONS = *mthumb/*mhard-float*
# If you want to build both APCS variants as multilib options this is how
# to do it.
# MULTILIB_OPTIONS += mapcs-32/mapcs-26
# MULTILIB_DIRNAMES += apcs-32 apcs-26
EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crtbeginS.o crtendS.o
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
---//---
Multilibs allow hard-float, soft-float and crunch versions to co-exist in
a single compiler. I think someone said that inclusions of object modules
could be done dependent on options. Is this really possible? If so, is
this also valid for TARGET_LIBGCC2_CFLAGS? I still don't see an elegant
solution for using "-mfix-crunch-d0" only on crunch libgcc.
-- Vladimir