Skip to content
Snippets Groups Projects
Forked from Reform / reform-boundary-uboot
Source project has a limited visibility.
  • Wolfgang Denk's avatar
    139e1875
    PPC: fix "Warning: FOO uses hard float, BAR uses soft float". · 139e1875
    Wolfgang Denk authored
    
    It appears that with recent versions of GCC the explicit
    "-mhard-float" command line option takes precedence over the
    ``asm(".gnu_attribute 4, 2");'' in the source file, so this no longer
    helps to avoid the warnings we get when linking code that uses FP
    instructions with other code that was built using soft-float.
    
    We can remove the ".gnu_attribute" (which appears to carry no other
    information, at least so far) from the object files, but we also have
    to make sure we don't pull in the __gcc_qsub() and __gcc_qmul()
    functions from the standard libgcc, as these would again "infect" our
    linking.  We copy this code from:
    	gcc-4.2.2/gcc/config/rs6000/darwin-ldouble.c
    This old version was chosen because it was still available under a
    compatible license (GCC v2+).   The file was stripped down to the
    needed parts, and reformatted so it passes checkpatch with only one
    warning (do not add new typedefs).
    
    Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
    Cc: Kumar Gala <galak@kernel.crashing.org>
    Cc: Stefan Roese <sr@denx.de>
    Cc: Andy Fleming <afleming@gmail.com>
    Cc: Kim Phillips <kim.phillips@freescale.com>
    Tested-by: default avatarStefan Roese <sr@denx.de>
    Tested-by: default avatarAnatolij Gustschin <agust@denx.de>
    139e1875
    History
    PPC: fix "Warning: FOO uses hard float, BAR uses soft float".
    Wolfgang Denk authored
    
    It appears that with recent versions of GCC the explicit
    "-mhard-float" command line option takes precedence over the
    ``asm(".gnu_attribute 4, 2");'' in the source file, so this no longer
    helps to avoid the warnings we get when linking code that uses FP
    instructions with other code that was built using soft-float.
    
    We can remove the ".gnu_attribute" (which appears to carry no other
    information, at least so far) from the object files, but we also have
    to make sure we don't pull in the __gcc_qsub() and __gcc_qmul()
    functions from the standard libgcc, as these would again "infect" our
    linking.  We copy this code from:
    	gcc-4.2.2/gcc/config/rs6000/darwin-ldouble.c
    This old version was chosen because it was still available under a
    compatible license (GCC v2+).   The file was stripped down to the
    needed parts, and reformatted so it passes checkpatch with only one
    warning (do not add new typedefs).
    
    Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
    Cc: Kumar Gala <galak@kernel.crashing.org>
    Cc: Stefan Roese <sr@denx.de>
    Cc: Andy Fleming <afleming@gmail.com>
    Cc: Kim Phillips <kim.phillips@freescale.com>
    Tested-by: default avatarStefan Roese <sr@denx.de>
    Tested-by: default avatarAnatolij Gustschin <agust@denx.de>