]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Unify libgcc processing.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 10 Apr 2010 23:14:31 +0000 (01:14 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 10 Apr 2010 23:14:31 +0000 (01:14 +0200)
* Makefile.in (kernel_img_LDFLAGS): New variable.
* conf/common.rmk (kernel_img_HEADERS): Add libgcc.h.
* conf/i386-coreboot.rmk (kernel_img_LDFLAGS): Append instead of
overwriting.
* conf/i386-ieee1275.rmk (kernel_img_LDFLAGS): Likewise.
* conf/i386-pc.rmk (kernel_img_LDFLAGS): Likewise.
* conf/i386-qemu.rmk (kernel_img_LDFLAGS): Likewise.
* conf/x86-efi.rmk (kernel_img_LDFLAGS): Likewise.
* conf/mips-qemu-mips.rmk (kernel_img_LDFLAGS): Append instead of
overwriting. Remove -lgcc and -static-libgcc
* conf/mips-yeeloong.rmk (kernel_img_LDFLAGS): Likewise.
* conf/mips.rmk (kernel_img_HEADERS): Remove cpu/libgcc.h
* conf/powerpc-ieee1275.rmk (kernel_img_HEADERS): Remove cpu/libgcc.h
(kernel_img_LDFLAGS): Append instead of overwriting.
Remove -lgcc and -static-libgcc
* conf/sparc64-ieee1275.rmk: Likewise.
* include/grub/powerpc/libgcc.h: Move to ...
* include/grub/libgcc.h: .. this.
* include/grub/libgcc.h: Don't export most of the function on x86.
(__bswapsi2): New export.
(__bswapdi2): Likewise.
* include/grub/mips/libgcc.h: Removed.
* include/grub/sparc64/libgcc.h: Likewise.

16 files changed:
ChangeLog
Makefile.in
conf/common.rmk
conf/i386-coreboot.rmk
conf/i386-ieee1275.rmk
conf/i386-pc.rmk
conf/i386-qemu.rmk
conf/mips-qemu-mips.rmk
conf/mips-yeeloong.rmk
conf/mips.rmk
conf/powerpc-ieee1275.rmk
conf/sparc64-ieee1275.rmk
conf/x86-efi.rmk
include/grub/libgcc.h [moved from include/grub/powerpc/libgcc.h with 86% similarity]
include/grub/mips/libgcc.h [deleted file]
include/grub/sparc64/libgcc.h [deleted file]

index 91115c2ce0864cff1da10ffb10df02aa9953e44e..ec4766d441d84bab5340d973aa01d903fcb4ed8a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2010-04-11  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       Unify libgcc processing.
+
+       * Makefile.in (kernel_img_LDFLAGS): New variable.
+       * conf/common.rmk (kernel_img_HEADERS): Add libgcc.h.
+       * conf/i386-coreboot.rmk (kernel_img_LDFLAGS): Append instead of
+       overwriting.
+       * conf/i386-ieee1275.rmk (kernel_img_LDFLAGS): Likewise.
+       * conf/i386-pc.rmk (kernel_img_LDFLAGS): Likewise.
+       * conf/i386-qemu.rmk (kernel_img_LDFLAGS): Likewise.
+       * conf/x86-efi.rmk (kernel_img_LDFLAGS): Likewise.
+       * conf/mips-qemu-mips.rmk (kernel_img_LDFLAGS): Append instead of
+       overwriting. Remove -lgcc and -static-libgcc
+       * conf/mips-yeeloong.rmk (kernel_img_LDFLAGS): Likewise.
+       * conf/mips.rmk (kernel_img_HEADERS): Remove cpu/libgcc.h
+       * conf/powerpc-ieee1275.rmk (kernel_img_HEADERS): Remove cpu/libgcc.h
+       (kernel_img_LDFLAGS): Append instead of overwriting.
+       Remove -lgcc and -static-libgcc
+       * conf/sparc64-ieee1275.rmk: Likewise.
+       * include/grub/powerpc/libgcc.h: Move to ...
+       * include/grub/libgcc.h: .. this.
+       * include/grub/libgcc.h: Don't export most of the function on x86.
+       (__bswapsi2): New export.
+       (__bswapdi2): Likewise.
+       * include/grub/mips/libgcc.h: Removed.
+       * include/grub/sparc64/libgcc.h: Likewise.
+
 2010-04-10  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Remove
index 08c25971fecdc4f88834c881bae474a2c6fb90cb..e253af6c905babe651f7803b1777ba14f9c41cf9 100644 (file)
@@ -103,6 +103,7 @@ TARGET_IMG_LDSCRIPT = @TARGET_IMG_LDSCRIPT@
 TARGET_IMG_LDFLAGS = -nostdlib @TARGET_IMG_LDFLAGS@
 TARGET_IMG_CFLAGS = @TARGET_IMG_CFLAGS@
 TARGET_OBJ2ELF = @TARGET_OBJ2ELF@
+kernel_img_LDFLAGS = -static-libgcc -lgcc
 EXEEXT = @EXEEXT@
 OBJCOPY = @OBJCOPY@
 STRIP = @STRIP@
index 952be558c4ecc2a976e4d305467b3ed62acf664c..8df232a0b915fe74b64944d67616f32c9b041c6c 100644 (file)
@@ -116,7 +116,7 @@ DEFSYMFILES += kernel_syms.lst
 kernel_img_HEADERS += boot.h cache.h device.h disk.h dl.h elf.h elfload.h \
        env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
        partition.h msdos_partition.h reader.h symbol.h term.h time.h types.h \
-       list.h handler.h command.h i18n.h env_private.h
+       list.h handler.h command.h i18n.h env_private.h libgcc.h
 
 ifneq ($(platform), emu)
 kernel_img_HEADERS += machine/memory.h machine/loader.h machine/kernel.h
index 3cef9313fa566e8f3a72a0b8f934593882d3f3f1..69b8e9a488723773a319f2346bfb2543542980df 100644 (file)
@@ -26,7 +26,7 @@ kernel_img_SOURCES = kern/i386/coreboot/startup.S \
        symlist.c
 kernel_img_CFLAGS = $(COMMON_CFLAGS)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
-kernel_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,$(GRUB_KERNEL_MACHINE_LINK_ADDR),-Bstatic
+kernel_img_LDFLAGS += $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,$(GRUB_KERNEL_MACHINE_LINK_ADDR),-Bstatic
 
 sbin_SCRIPTS += grub-install
 grub_install_SOURCES = util/grub-install.in
index d4a459b3e82ba5dbf31f3ca9816d2de1c9756003..05ba38a65e3fbb56b2f8edb50350985b209f8fb9 100644 (file)
@@ -27,7 +27,7 @@ kernel_img_SOURCES = kern/i386/ieee1275/startup.S \
 kernel_img_HEADERS += ieee1275/ieee1275.h
 kernel_img_CFLAGS = $(COMMON_CFLAGS)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
-kernel_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x10000,-Bstatic
+kernel_img_LDFLAGS += $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x10000,-Bstatic
 
 # Scripts.
 sbin_SCRIPTS = grub-install
index c52f6fa459ff838d05382da713ca7ca8f06d7d6c..eace1e2da4f7a5d8cb1f740a2284bff62120b883 100644 (file)
@@ -58,7 +58,7 @@ kernel_img_HEADERS += machine/biosdisk.h machine/vga.h machine/vbe.h \
        machine/pxe.h i386/pit.h
 kernel_img_CFLAGS = $(COMMON_CFLAGS)  $(TARGET_IMG_CFLAGS)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
-kernel_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)$(GRUB_KERNEL_MACHINE_LINK_ADDR) $(COMMON_CFLAGS)
+kernel_img_LDFLAGS += $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)$(GRUB_KERNEL_MACHINE_LINK_ADDR) $(COMMON_CFLAGS)
 kernel_img_FORMAT = binary
 
 # Utilities.
index 97273e1ce7e74e2a7dfd4ccd09d51ab15a25cd32..664bef12a3d8bbf4da0865f2ad96cb5643efc621 100644 (file)
@@ -39,7 +39,7 @@ kernel_img_SOURCES = kern/i386/qemu/startup.S \
        symlist.c
 kernel_img_CFLAGS = $(COMMON_CFLAGS) -DGRUB_BOOT_MACHINE_LINK_ADDR=$(GRUB_BOOT_MACHINE_LINK_ADDR)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS) -DGRUB_KERNEL_MACHINE_LINK_ADDR=$(GRUB_KERNEL_MACHINE_LINK_ADDR)
-kernel_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)$(GRUB_KERNEL_MACHINE_LINK_ADDR)
+kernel_img_LDFLAGS += $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)$(GRUB_KERNEL_MACHINE_LINK_ADDR)
 kernel_img_FORMAT = binary
 
 sbin_SCRIPTS += grub-install
index e0637012214e212c0363b8dcdca1324041d40876..af5b26bec8a4b828d911f42c56376142fd0db4ae 100644 (file)
@@ -18,6 +18,5 @@ kernel_img_SOURCES = kern/$(target_cpu)/startup.S \
        symlist.c kern/$(target_cpu)/cache.S
 kernel_img_CFLAGS = $(COMMON_CFLAGS)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
-kernel_img_LDFLAGS = $(COMMON_LDFLAGS) -static-libgcc -lgcc \
-       -Wl,-N,-S,-Ttext,$(LINK_BASE),-Bstatic
+kernel_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,$(LINK_BASE),-Bstatic
 kernel_img_FORMAT = binary
index 35cd01b4b87c0aeb1631a2b9b903e505a521a33f..6a96ddfafa1a16e73db01d0b776dcad147621c19 100644 (file)
@@ -29,8 +29,7 @@ kernel_img_SOURCES = kern/$(target_cpu)/startup.S \
        symlist.c
 kernel_img_CFLAGS = $(COMMON_CFLAGS) -DUSE_ASCII_FAILBACK
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
-kernel_img_LDFLAGS = $(COMMON_LDFLAGS) -static-libgcc -lgcc \
-       -Wl,-N,-S,-Ttext,$(LINK_BASE),-Bstatic
+kernel_img_LDFLAGS += $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,$(LINK_BASE),-Bstatic
 kernel_img_FORMAT = binary
 
 # For ata.mod.
index c9d94eb74fe8d6c3de21888d0b638cfbfd66487c..4603c219e0a80c5d65c32d6e4fc72d0215292dfd 100644 (file)
@@ -4,7 +4,7 @@
 COMMON_CFLAGS += -mexplicit-relocs -mflush-func=grub_cpu_flush_cache
 
 # Images.
-kernel_img_HEADERS += cpu/libgcc.h cpu/cache.h
+kernel_img_HEADERS += cpu/cache.h
 
 # Scripts.
 sbin_SCRIPTS = 
index 86f6ddcb361c25b6834075a2c402e1c72015a0a0..d5968ac8e3e2b44bb22baf1c598b82331505830b 100644 (file)
@@ -3,7 +3,7 @@
 
 # Images.
 
-kernel_img_HEADERS += cpu/libgcc.h ieee1275/ieee1275.h
+kernel_img_HEADERS += ieee1275/ieee1275.h
 
 # Programs
 pkglib_PROGRAMS = kernel.img
@@ -23,8 +23,7 @@ kernel_img_SOURCES = kern/powerpc/ieee1275/startup.S kern/ieee1275/cmain.c \
        symlist.c kern/$(target_cpu)/cache.S
 kernel_img_CFLAGS = $(COMMON_CFLAGS)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
-kernel_img_LDFLAGS = $(COMMON_LDFLAGS) -static-libgcc -lgcc \
-       -Wl,-N,-S,-Ttext,0x200000,-Bstatic
+kernel_img_LDFLAGS += $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x200000,-Bstatic
 
 # Scripts.
 sbin_SCRIPTS = grub-install
index a387b8a9623a0a58c5a4cd88a530980d8d0b6037..72f947f6ac2f1b28439819deada8eb10c1be94a4 100644 (file)
@@ -19,7 +19,7 @@ diskboot_img_ASFLAGS = $(COMMON_ASFLAGS)
 diskboot_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-Ttext,0x4200
 diskboot_img_FORMAT = binary
 
-kernel_img_HEADERS += cpu/libgcc.h ieee1275/ieee1275.h cpu/ieee1275/ieee1275.h
+kernel_img_HEADERS += ieee1275/ieee1275.h cpu/ieee1275/ieee1275.h
 kernel_img_SOURCES = kern/sparc64/ieee1275/crt0.S kern/ieee1275/cmain.c        \
        kern/ieee1275/ieee1275.c kern/main.c kern/device.c              \
        kern/disk.c kern/dl.c kern/err.c kern/file.c kern/fs.c          \
@@ -36,7 +36,7 @@ kernel_img_SOURCES = kern/sparc64/ieee1275/crt0.S kern/ieee1275/cmain.c       \
        symlist.c kern/$(target_cpu)/cache.S
 kernel_img_CFLAGS = $(COMMON_CFLAGS)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
-kernel_img_LDFLAGS = -nostdlib -Wl,-N,-Ttext,0x4400,-Bstatic,-melf64_sparc -static-libgcc -lgcc
+kernel_img_LDFLAGS += -nostdlib -Wl,-N,-Ttext,0x4400,-Bstatic,-melf64_sparc
 kernel_img_FORMAT = binary
 
 # Utilities.
index 5cb472168526ec96125eaa198e9a6f4cd862fa2f..46957d9332ed092554383fee59fc9ca8c9aef248 100644 (file)
@@ -40,7 +40,7 @@ endif
 kernel_img_HEADERS += efi/efi.h efi/time.h efi/disk.h i386/pit.h
 kernel_img_CFLAGS = $(COMMON_CFLAGS)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
-kernel_img_LDFLAGS = $(COMMON_LDFLAGS)
+kernel_img_LDFLAGS += $(COMMON_LDFLAGS)
 
 # For acpi.mod.
 acpi_mod_SOURCES = commands/acpi.c commands/efi/acpi.c
similarity index 86%
rename from include/grub/powerpc/libgcc.h
rename to include/grub/libgcc.h
index 6be122308f8accbdec459e8d3c9244b318d4b06c..d0adae8c156404c412ffc2c6d3a10b3c19f9a310 100644 (file)
 
 #include <config.h>
 
-#ifdef HAVE___ASHLDI3
+/* On x86 these functions aren't really needed. Save some space.  */
+#if !defined (__i386__) && !defined (__x86_64__)
+# ifdef HAVE___ASHLDI3
 void EXPORT_FUNC (__ashldi3) (void);
-#endif
-#ifdef HAVE___ASHRDI3
+# endif
+# ifdef HAVE___ASHRDI3
 void EXPORT_FUNC (__ashrdi3) (void);
-#endif
-#ifdef HAVE___LSHRDI3
+# endif
+# ifdef HAVE___LSHRDI3
 void EXPORT_FUNC (__lshrdi3) (void);
+# endif
+# ifdef HAVE___UCMPDI2
+void EXPORT_FUNC (__ucmpdi2) (void);
+# endif
+# ifdef HAVE___BSWAPSI2
+void EXPORT_FUNC (__bswapsi2) (void);
+# endif
+# ifdef HAVE___BSWAPDI2
+void EXPORT_FUNC (__bswapdi2) (void);
+# endif
 #endif
+
 #ifdef HAVE___TRAMPOLINE_SETUP
 void EXPORT_FUNC (__trampoline_setup) (void);
 #endif
-#ifdef HAVE___UCMPDI2
-void EXPORT_FUNC (__ucmpdi2) (void);
-#endif
 
 #ifdef HAVE__RESTGPR_14_X
 void EXPORT_FUNC (_restgpr_14_x) (void);
diff --git a/include/grub/mips/libgcc.h b/include/grub/mips/libgcc.h
deleted file mode 100644 (file)
index f06ea1c..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  GRUB  --  GRand Unified Bootloader
- *  Copyright (C) 2004,2007,2009  Free Software Foundation, Inc.
- *
- *  GRUB is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *
- *  GRUB is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <config.h>
-
-#ifdef HAVE___ASHLDI3
-void EXPORT_FUNC (__ashldi3) (void);
-#endif
-#ifdef HAVE___ASHRDI3
-void EXPORT_FUNC (__ashrdi3) (void);
-#endif
-#ifdef HAVE___LSHRDI3
-void EXPORT_FUNC (__lshrdi3) (void);
-#endif
-#ifdef HAVE___UCMPDI2
-void EXPORT_FUNC (__ucmpdi2) (void);
-#endif
-#ifdef HAVE___BSWAPSI2
-void EXPORT_FUNC (__bswapsi2) (void);
-#endif
-#ifdef HAVE___BSWAPDI2
-void EXPORT_FUNC (__bswapdi2) (void);
-#endif
diff --git a/include/grub/sparc64/libgcc.h b/include/grub/sparc64/libgcc.h
deleted file mode 100644 (file)
index e73abe2..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- *  GRUB  --  GRand Unified Bootloader
- *  Copyright (C) 2004,2007,2009  Free Software Foundation, Inc.
- *
- *  GRUB is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  (at your option) any later version.
- *
- *  GRUB is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <config.h>
-
-#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