[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