This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: gcc 4.4.0 on ARM/WinCE float problem
On Fri, 2009-07-24 at 15:40 +0200, Danny Backx wrote:
> > It turns out that different functions are used :
> > - my 4.4 implementation takes its multiply code from dp-bit.c
> > - the 4.1 implementation takes it from ieee754-df.S
> >
> > I've now tweaked gcc/config/arm/t-wince-pe (to use _arm_muldivf3 instead
> > of _muldivf3 in LIB1ASMFUNCS). Then the gcc build fails (double
> > definitions). Worked around that by tweaking dp-bit.c .
> I need advice on how to proceed with this.
>
> It looks like the change that introduced _arm prefixes for functions in
> LIB1ASMFUNCS (in gcc/config/arm/t-wince-pe) broke things.
>
> The other place where this type of stuff is used is in
> libgcc/Makefile.in , and I think the line
>
> lib2funcs := $(filter-out $(LIB2FUNCS_EXCLUDE) $(LIB1ASMFUNCS),
> $(lib2funcs))
>
> is now broken due to the fact that the "encoding" of lib2funcs and
> LIB1ASMFUNCS is different.
FYI this problem appears to be solved by adding a couple of lines to
gcc/config/arm/t-wince-pe - see below - that match the stuff in the
LIB1ASMFUNCS= statement in that same file.
Only one big problem left now before 4.4 works and I can start getting
the differences upstream.
Thanks for the help,
Danny
#
# Filter out functions from dp-bit.c that are already in lib1funcs.asm
#
DPBIT_FUNCS := $(filter-out _mul_df _div_df _addsub_df _compare_df \
_eq_df _ne_df _gt_df _ge_df _lt_df _le_df \
_negate_df _unord_df \
_df_to_sf _si_to_df _df_to_si _usi_to_df, $(DPBIT_FUNCS))
FPBIT_FUNCS := $(filter-out _mul_sf _div_sf _addsub_sf _compare_sf \
_eq_sf _ne_sf _gt_sf _ge_sf _lt_sf _le_sf \
_negate_sf _unord_sf \
_sf_to_df _si_to_sf _sf_to_si _usi_to_sf, $(FPBIT_FUNCS))
LIB2FUNCS_EXCLUDE = _floatundisf _floatundidf
--
Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info