]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2010-01-20 Vladimir Serbinenko <phcoder@gmail.com>
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 20 Jan 2010 09:59:15 +0000 (10:59 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Wed, 20 Jan 2010 09:59:15 +0000 (10:59 +0100)
Don't try to generate lists for kernel.img.

* conf/i386-efi.rmk (pkglib_PROGRAMS): New variable.
(pkglib_MODULES): Remove kernel.img.
(kernel_img_EXPORTS): Removed.
(kernel_img_RELOCATABLE): New variable.
* conf/x86_64-efi.rmk: Likewise.
* genmk.rb: Remove *_EXPORTS support and add *_RELOCATABLE support.

ChangeLog
conf/i386-efi.rmk
conf/x86_64-efi.rmk
genmk.rb

index 7c842e777719cfe341bfb96da10535b09cddc411..f814b940def8f6af036c8390d5559a8cdaef6ab6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       Don't try to generate lists for kernel.img.
+
+       * conf/i386-efi.rmk (pkglib_PROGRAMS): New variable.
+       (pkglib_MODULES): Remove kernel.img.
+       (kernel_img_EXPORTS): Removed.
+       (kernel_img_RELOCATABLE): New variable.
+       * conf/x86_64-efi.rmk: Likewise.
+       * genmk.rb: Remove *_EXPORTS support and add *_RELOCATABLE support.
+
 2010-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * include/grub/misc.h (grub_sprintf): Removed. All users switched to
index f3281a1bc32b203ae4402047f20048ceb3b2157e..cbadc7e1ac93301a3d29d0f87908f0f8b6c28135 100644 (file)
@@ -30,13 +30,14 @@ sbin_SCRIPTS = grub-install
 grub_install_SOURCES = util/i386/efi/grub-install.in
 
 # Modules.
-pkglib_MODULES = kernel.img chain.mod appleldr.mod \
+pkglib_PROGRAMS = kernel.img
+pkglib_MODULES = chain.mod appleldr.mod \
        linux.mod halt.mod reboot.mod pci.mod lspci.mod \
        datetime.mod date.mod datehook.mod loadbios.mod \
        fixvideo.mod mmap.mod acpi.mod
 
 # For kernel.img.
-kernel_img_EXPORTS = no
+kernel_img_RELOCATABLE = yes
 kernel_img_SOURCES = kern/i386/efi/startup.S kern/main.c kern/device.c \
        kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
        kern/misc.c kern/mm.c kern/term.c \
index 122700711d0867ec136e231586b8235e7d9e84fb..e5b3aec25834cf565e8da7f778b2e36a18442761 100644 (file)
@@ -29,13 +29,14 @@ sbin_SCRIPTS = grub-install
 grub_install_SOURCES = util/i386/efi/grub-install.in
 
 # Modules.
-pkglib_MODULES = kernel.img chain.mod appleldr.mod     \
+pkglib_PROGRAMS = kernel.img
+pkglib_MODULES = chain.mod appleldr.mod        \
        halt.mod reboot.mod linux.mod pci.mod lspci.mod \
        datetime.mod date.mod datehook.mod loadbios.mod \
        fixvideo.mod mmap.mod acpi.mod
 
 # For kernel.img.
-kernel_img_EXPORTS = no
+kernel_img_RELOCATABLE = yes
 kernel_img_SOURCES = kern/x86_64/efi/startup.S kern/x86_64/efi/callwrap.S \
        kern/main.c kern/device.c \
        kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
index 1ce064022a62233368c7ad21fe63dea95fd9eb83..df03e1dfef6bf2eb9b001916b21428b54ff006ec 100644 (file)
--- a/genmk.rb
+++ b/genmk.rb
@@ -132,13 +132,11 @@ clean-module-#{@name}.#{@rule_count}:
 
 CLEAN_MODULE_TARGETS += clean-module-#{@name}.#{@rule_count}
 
-ifneq ($(#{prefix}_EXPORTS),no)
 clean-module-#{@name}-symbol.#{@rule_count}:
        rm -f #{defsym}
 
 CLEAN_MODULE_TARGETS += clean-module-#{@name}-symbol.#{@rule_count}
 DEFSYMFILES += #{defsym}
-endif
 mostlyclean-module-#{@name}.#{@rule_count}:
        rm -f #{deps_str}
 
@@ -170,7 +168,6 @@ endif
 #{mod_src}: $(builddir)/moddep.lst $(srcdir)/genmodsrc.sh
        sh $(srcdir)/genmodsrc.sh '#{mod_name}' $< > $@ || (rm -f $@; exit 1)
 
-ifneq ($(#{prefix}_EXPORTS),no)
 ifneq ($(TARGET_APPLE_CC),1)
 #{defsym}: #{pre_obj}
        $(NM) -g --defined-only -P -p $< | sed 's/^\\([^ ]*\\).*/\\1 #{mod_name}/' > $@
@@ -178,7 +175,6 @@ else
 #{defsym}: #{pre_obj}
        $(NM) -g -P -p $< | grep -E '^[a-zA-Z0-9_]* [TDS]'  | sed 's/^\\([^ ]*\\).*/\\1 #{mod_name}/' > $@
 endif
-endif
 
 #{undsym}: #{pre_obj}
        echo '#{mod_name}' > $@
@@ -331,9 +327,15 @@ class Program
     "CLEANFILES += #{@name} #{objs_str}
 MOSTLYCLEANFILES += #{deps_str}
 
+ifeq ($(#{prefix}_RELOCATABLE),yes)
+#{@name}: $(#{prefix}_DEPENDENCIES) #{objs_str}
+       $(TARGET_CC) -Wl,-r,-d -o $@ #{objs_str} $(TARGET_LDFLAGS) $(#{prefix}_LDFLAGS)
+       $(STRIP) --strip-unneeded -K start -R .note -R .comment $@
+else
 #{@name}: $(#{prefix}_DEPENDENCIES) #{objs_str}
        $(TARGET_CC) -o $@ #{objs_str} $(TARGET_LDFLAGS) $(#{prefix}_LDFLAGS)
        $(STRIP) -R .rel.dyn -R .reginfo -R .note -R .comment $@
+endif
 
 " + objs.collect_with_index do |obj, i|
       src = sources[i]