[U-Boot] [PATCH] FPU POST: fix warnings when building with 2.18 binutils

Wolfgang Denk wd at denx.de
Sat Jan 24 01:49:55 CET 2009


Dear Yuri Tikhonov,

In message <200812201454.21852.yur at emcraft.com> you wrote:
> 
> When compile u-boot with the 2.18 binutils the following
> warning messages for each object file in post/lib_ppc/fpu/ is
> produced at the linking stage:
> 
> post/libpost.a(acc1.o) uses hard float, u-boot uses soft-float
> ...
> 
> This is because of the fact that, in general, the soft-float and
> hard-float ABIs are incompatible; the 2.18 binutils do checking
> of the Tag_GNU_Power_ABI_FP attribute of the files to be linked, and
> produce the worning like above if these are not compatible.
> 
> The incompatibility of ABIs is concerned only the float values:
> e.g. the soft-float ABI assumes the float argument passing in the
> pair of rX registers, and the hard-float ABI assumes passing of
> the float argument in the fX register. When we don't pass the float
> arguments between the functions compiled with different floatness,
> then such an application will work correctly.
> This is the case for the FPU POST: u-boot (compiled with soft-float)
> doesn't pass to (and doesn't get from) the FPU POST functions any
> floats; there are no functions exported from the post/lib_ppc/fpu/
> objects which would work with float parameters/returns too. So, we
> can reassure the linker not to worry about the difference in ABI
> attributes of linking files just by setting the 'soft-float'
> attribute for the objects in post/lib_ppc/fpu. And this patch does
> this.
> 
> Also, to avoid passing both soft- and hard-float options in CFLAGS
> when compiling the files from post/lib_ppc/fpu (which is OK, but
> looks rather dirty) this patch removes the soft-float string from
> CFLAGS in post/lib_ppc/fpu/Makefile.
> 
> Signed-off-by: Yuri Tikhonov <yur at emcraft.com>
> ---
>  include/post.h                            |   13 +++++++++++++
>  post/lib_ppc/fpu/20001122-1.c             |    2 ++
>  post/lib_ppc/fpu/20010114-2.c             |    2 ++
>  post/lib_ppc/fpu/20010226-1.c             |    2 ++
>  post/lib_ppc/fpu/980619-1.c               |    2 ++
>  post/lib_ppc/fpu/Makefile                 |    1 +
>  post/lib_ppc/fpu/acc1.c                   |    2 ++
>  post/lib_ppc/fpu/compare-fp-1.c           |    2 ++
>  post/lib_ppc/fpu/fpu.c                    |    2 ++
>  post/lib_ppc/fpu/mul-subnormal-single-1.c |    2 ++
>  10 files changed, 30 insertions(+), 0 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
It is much easier to suggest solutions when you know nothing


More information about the U-Boot mailing list