From a3f7515a6ece1b6841c4d1dd684f4c25900c8d24 Mon Sep 17 00:00:00 2001 From: davem Date: Sat, 11 Apr 2009 08:24:49 +0000 Subject: [PATCH] * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with static libgcc. * configure.ac: Check for __bswapsi2 and __bswapdi2 presence. * include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc function, if present. (__bswapdi2): Likewise. --- ChangeLog | 9 +++++++++ conf/sparc64-ieee1275.rmk | 2 +- configure | 4 +++- configure.ac | 2 +- include/grub/sparc64/libgcc.h | 12 ++++++++++++ 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 815c87f47..7d11ae5f7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-04-11 David S. Miller + + * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with + static libgcc. + * configure.ac: Check for __bswapsi2 and __bswapdi2 presence. + * include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc + function, if present. + (__bswapdi2): Likewise. + 2009-04-10 David S. Miller * disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg diff --git a/conf/sparc64-ieee1275.rmk b/conf/sparc64-ieee1275.rmk index 68ae7427d..45e3003c4 100644 --- a/conf/sparc64-ieee1275.rmk +++ b/conf/sparc64-ieee1275.rmk @@ -82,7 +82,7 @@ kernel_elf_SOURCES = kern/sparc64/ieee1275/init.c kern/ieee1275/ieee1275.c \ kernel_elf_HEADERS = grub/sparc64/ieee1275/ieee1275.h kernel_elf_CFLAGS = $(COMMON_CFLAGS) kernel_elf_ASFLAGS = $(COMMON_ASFLAGS) -kernel_elf_LDFLAGS = -mno-app-regs -nostdlib -Wl,-N,-Ttext,0x200000,-Bstatic,-melf64_sparc +kernel_elf_LDFLAGS = -mno-app-regs -nostdlib -Wl,-N,-Ttext,0x200000,-Bstatic,-melf64_sparc -static-libgcc -lgcc # Modules. #_linux.mod linux.mod diff --git a/configure b/configure index a3bde5844..c4312f42b 100644 --- a/configure +++ b/configure @@ -5813,7 +5813,9 @@ fi -for ac_func in posix_memalign memalign asprintf + + +for ac_func in posix_memalign memalign asprintf __bswapsi2 __bswapdi2 do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 diff --git a/configure.ac b/configure.ac index 1751bd06d..c316f1784 100644 --- a/configure.ac +++ b/configure.ac @@ -200,7 +200,7 @@ if test "$target_cpu"-"$platform" = i386-pc; then fi # Check for functions. -AC_CHECK_FUNCS(posix_memalign memalign asprintf) +AC_CHECK_FUNCS(posix_memalign memalign asprintf __bswapsi2 __bswapdi2) # # Check for target programs. diff --git a/include/grub/sparc64/libgcc.h b/include/grub/sparc64/libgcc.h index e30c71780..4a6b6194d 100644 --- a/include/grub/sparc64/libgcc.h +++ b/include/grub/sparc64/libgcc.h @@ -16,4 +16,16 @@ * along with GRUB. If not, see . */ +#include + void EXPORT_FUNC (memset) (void); + +#ifdef HAVE___BSWAPSI2 +typedef int SItype __attribute__ ((mode (SI))); +SItype EXPORT_FUNC (__bswapsi2) (SItype); +#endif + +#ifdef HAVE___BSWAPDI2 +typedef int DItype __attribute__ ((mode (DI))); +DItype EXPORT_FUNC (__bswapdi2) (DItype); +#endif