From 75783e063d6176c3e0cfee5acb107b7ddd32c140 Mon Sep 17 00:00:00 2001 From: "Eric W. Biederman" Date: Sun, 27 Jan 2002 00:44:08 +0000 Subject: [PATCH] Update to mkelfImage 1.12 - Fix bad heuristic in mkelfImage 1.11 where if I wasn't given a firmware type I assumed PCBIOS. - Use objcopy to strip off extra symbols and the .ramdisk section if unused - Fix typo linuxBIOS -> LinuxBIOS --- util/mkelfImage/Makefile | 4 ++-- util/mkelfImage/elf32-i386/convert_params.c | 8 +++++--- util/mkelfImage/mkelfImage.pl | 13 +++++++++++-- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/util/mkelfImage/Makefile b/util/mkelfImage/Makefile index f12fc46a1f..d809f5a358 100644 --- a/util/mkelfImage/Makefile +++ b/util/mkelfImage/Makefile @@ -6,8 +6,8 @@ # the result will be a directory tree that you can run mkelfImage in PREFIX=/usr/local/ PERLPATH=/usr/bin/perl -VERSION="1.11" -DATE="24 January 2002" +VERSION="1.12" +DATE="26 January 2002" SHAREDIR=$(PREFIX)/share/mkelfImage BINDIR=$(PREFIX)/bin diff --git a/util/mkelfImage/elf32-i386/convert_params.c b/util/mkelfImage/elf32-i386/convert_params.c index 363afce031..14f71c8d97 100644 --- a/util/mkelfImage/elf32-i386/convert_params.c +++ b/util/mkelfImage/elf32-i386/convert_params.c @@ -1085,8 +1085,10 @@ static int bootloader_query_firmware_class(struct param_info *info) hdr = find_elf_note(info->data, 0, 0, EBN_FIRMWARE_TYPE); if (!hdr) { - info->has_pcbios = 1; - detected_firmware_type = 1; + /* If I'm not explicitly told the firmware type + * do my best to guess it for myself. + */ + detected_firmware_type = 0; } else { note = (char *)hdr; n_name = note + sizeof(*hdr); @@ -1149,7 +1151,7 @@ static void query_firmware_class(struct param_info *info) /* Now print out the firmware type... */ puts("Firmware type:"); if (info->has_linuxbios) { - puts(" linuxBIOS"); + puts(" LinuxBIOS"); } if (info->has_pcbios) { puts(" PCBIOS"); diff --git a/util/mkelfImage/mkelfImage.pl b/util/mkelfImage/mkelfImage.pl index fccdf4841b..00c2c01075 100644 --- a/util/mkelfImage/mkelfImage.pl +++ b/util/mkelfImage/mkelfImage.pl @@ -55,7 +55,7 @@ sub build_kernel_piggy if ($elf_sig eq "\x7FELF") { # It's an elf image # Assume the input file uses contiguous memory... - system("objcopy ${src} -O binary ${dst}.obj"); + system("$params->{OBJCOPY} ${src} -O binary ${dst}.obj"); die "rc = $?" unless ($? == 0); } elsif ($bootsector_sig == 0xAA55) { @@ -148,11 +148,20 @@ sub build_elf_image $fd->print("initrd_base = $params->{INITRD_BASE};\n"); $fd->close(); my $script = "$params->{PREFIX}/elfImage.lds"; - my $cmd = "$params->{LD} -o ${dst} -T $script " . join(" ", @srcs); + my $cmd = "$params->{LD} -o ${dst}.fat -T $script " . join(" ", @srcs); print " Running $cmd"; system("$cmd"); die "rc = $?" unless ($? == 0); + my $cmd2 = "$params->{OBJCOPY} ${dst}.fat ${dst} -S -R .comment -R .note0"; + if (!$params->{RAMDISK}) { + $cmd2 .= " -R .ramdisk"; + } + print " Running $cmd"; + system("$cmd2"); + die "rc = $?" unless ($? == 0); + unlink("${dst}.obj",$lscript); + unlink("${dst}.fat",$lscript); return $dst; }