mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-26 09:10:53 +00:00
2006-11-03 Hollis Blanchard <hollis@penguinppc.org>
* conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c. * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise. * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise. (kernel_elf_SOURCES): Likewise. * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h. * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise. * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise. * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise. * conf/common.rmk (pkgdata_MODULES): Add elf.mod. (elf_mod_SOURCES): New variable. (elf_mod_CFLAGS): Likewise. (elf_mod_LDFLAGS): Likewise. * include/grub/types.h (__unused): New macro. * include/grub/elfload.h: New file. * kern/elf.c: Likewise. * loader/powerpc/ieee1275/linux.c: Include elfload.h. (ELF32_LOADMASK): New macro. (ELF64_LOADMASK): Likewise. (vmlinux): Removed. (grub_linux_load32): New function. (grub_linux_load64): Likewise. (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64. Use grub_elf_t instead of grub_file_t.
This commit is contained in:
1 parent
a09d5aa53e
commit
2166cc8349
13 files changed
+299
-184
No files matched your search
+53
-1
@@ -1826,7 +1826,59 @@ blocklist_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
blocklist_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
# Misc.
|
||||
pkgdata_MODULES += gzio.mod
|
||||
pkgdata_MODULES += gzio.mod elf.mod
|
||||
|
||||
# For elf.mod.
|
||||
elf_mod_SOURCES = kern/elf.c
|
||||
CLEANFILES += elf.mod mod-elf.o mod-elf.c pre-elf.o elf_mod-kern_elf.o und-elf.lst
|
||||
ifneq ($(elf_mod_EXPORTS),no)
|
||||
CLEANFILES += def-elf.lst
|
||||
DEFSYMFILES += def-elf.lst
|
||||
endif
|
||||
MOSTLYCLEANFILES += elf_mod-kern_elf.d
|
||||
UNDSYMFILES += und-elf.lst
|
||||
|
||||
elf.mod: pre-elf.o mod-elf.o
|
||||
-rm -f $@
|
||||
$(TARGET_CC) $(elf_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
|
||||
$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
|
||||
|
||||
pre-elf.o: $(elf_mod_DEPENDENCIES) elf_mod-kern_elf.o
|
||||
-rm -f $@
|
||||
$(TARGET_CC) $(elf_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ elf_mod-kern_elf.o
|
||||
|
||||
mod-elf.o: mod-elf.c
|
||||
$(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -c -o $@ $<
|
||||
|
||||
mod-elf.c: moddep.lst genmodsrc.sh
|
||||
sh $(srcdir)/genmodsrc.sh 'elf' $< > $@ || (rm -f $@; exit 1)
|
||||
|
||||
ifneq ($(elf_mod_EXPORTS),no)
|
||||
def-elf.lst: pre-elf.o
|
||||
$(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 elf/' > $@
|
||||
endif
|
||||
|
||||
und-elf.lst: pre-elf.o
|
||||
echo 'elf' > $@
|
||||
$(NM) -u -P -p $< | cut -f1 -d' ' >> $@
|
||||
|
||||
elf_mod-kern_elf.o: kern/elf.c
|
||||
$(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -MD -c -o $@ $<
|
||||
-include elf_mod-kern_elf.d
|
||||
|
||||
CLEANFILES += cmd-elf_mod-kern_elf.lst fs-elf_mod-kern_elf.lst
|
||||
COMMANDFILES += cmd-elf_mod-kern_elf.lst
|
||||
FSFILES += fs-elf_mod-kern_elf.lst
|
||||
|
||||
cmd-elf_mod-kern_elf.lst: kern/elf.c gencmdlist.sh
|
||||
set -e; $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh elf > $@ || (rm -f $@; exit 1)
|
||||
|
||||
fs-elf_mod-kern_elf.lst: kern/elf.c genfslist.sh
|
||||
set -e; $(TARGET_CC) -Ikern -I$(srcdir)/kern $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(elf_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh elf > $@ || (rm -f $@; exit 1)
|
||||
|
||||
|
||||
elf_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
elf_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
# For gzio.mod.
|
||||
gzio_mod_SOURCES = io/gzio.c
|
||||
|
||||
Reference in new issue
Block a user