grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IA64 port


From: Robert Millan
Subject: Re: IA64 port
Date: Wed, 30 Jan 2008 16:07:01 +0100
User-agent: Mutt/1.5.13 (2006-08-11)

On Wed, Jan 30, 2008 at 06:48:11AM +0100, Tristan Gingold wrote:
> +
> +# For grub-emu.
> +grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c     \
> +     commands/configfile.c commands/help.c                           \
> +     commands/terminal.c commands/ls.c commands/test.c               \
> +     commands/search.c commands/blocklist.c                          \
> +     disk/loopback.c                                                 \
> +     \
> +     fs/affs.c fs/cpio.c fs/ext2.c fs/fat.c fs/hfs.c                 \
> +     fs/hfsplus.c fs/iso9660.c fs/jfs.c fs/minix.c                   \
> +     fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c                  \
> +     fs/ufs.c fs/xfs.c                                               \
> +     \
> +     io/gzio.c                                                       \
> +     kern/device.c kern/disk.c kern/dl.c kern/env.c kern/err.c       \
> +     normal/execute.c kern/file.c kern/fs.c normal/lexer.c           \
> +     kern/loader.c kern/main.c kern/misc.c kern/parser.c             \
> +     grub_script.tab.c kern/partition.c kern/rescue.c kern/term.c    \
> +     normal/arg.c normal/cmdline.c normal/command.c normal/function.c\
> +     normal/completion.c normal/main.c                               \
> +     normal/menu.c normal/menu_entry.c normal/misc.c normal/script.c \
> +     partmap/amiga.c partmap/apple.c partmap/pc.c partmap/sun.c      \
> +     partmap/acorn.c partmap/gpt.c                                   \
> +     util/console.c util/grub-emu.c util/misc.c                      \
> +     util/i386/pc/misc.c grub_emu_init.c

grub-probe is missing.  Did you check if it works?  Although, I think it
should just move to common.rmk.  I'll have a look at that.

> diff -ruNp -x '*~' -x CVS -x autom4te.cache -x '*.mk' -x configure 
> grub2.orig/util/ia64/efi/grub-install.in grub2/util/ia64/efi/grub-install.in
> --- grub2.orig/util/ia64/efi/grub-install.in  1970-01-01 01:00:00.000000000 
> +0100
> +++ grub2/util/ia64/efi/grub-install.in       2008-01-28 16:29:58.000000000 
> +0100
> [...]
> +grub_probefs=${sbindir}/grub-probefs

grub-probefs was renamed to grub-probe.

> +# Create the core image. First, auto-detect the filesystme module.
> +#fs_module=`$grub_probefs --device-map=${device_map} ${grubdir}`
> +#if test "x$fs_module" = x -a "x$modules" = x; then
> +#    echo "Auto-detection of a filesystem module failed." 1>&2
> +#    echo "Please specify the module with the option \`--modules' 
> explicitly." 1>&2
> +#    exit 1
> +#fi

Why is this commented out?  Is ${grubdir} a mount point to efi's boot
memory device?  We do that on i386 (I don't claim that it is a good way,
in fact I dislike it and Okuji does as well, but if we want to change it I
expect we'll want to change it in both).

Also, missing partmap_module and devabstraction_module.  I think you should
resync this with the latest version of i386/efi/grub-install.in.

> +modules="kernel

kernel isn't implicit?

> gpt

Is gpt mandatory?  We can use gpt without efi;  I wonder if we can also use
efi without gpt.  If you can access the raw disk, any partition map (even no
partition map at all!) could be used, right?

> fat

Even if fat is mandated by the standard, I think it's safer to probe for that,
since we have the mechanism to do it (grub-probe also performs some sanity
checks that would detect if the fat is corrupted or so).

> gzio normal ls cat fshelp help _linux linux memmap systab boot

Why this selection specificaly?  Other ports without significant size limit
just encourage the user to do "grub-mkimage *.mod -o foo" or manually select
what is needed.

Or it wasn't possible to load additional modules in runtime yet?  I don't
remember well..

> +# Generate init/fini for modules.
> +modfile=$tmpdir/mod.c
> +echo "/* Dummy modules.  */" > $modfile
> +list=""
> +init_list=""
> +fini_list=""
> +for m in $modules; do
> +  file="$pkglibdir/${m}.mod"
> +  name=`nm $file | sed -n "/ r grub_module_name/ s/.* r 
> grub_module_name_\(.*\)/\1/p"`
> +  init=`nm $file | sed -n "/ T grub_module_.*_init/ s/.* T //p"`
> +  fini=`nm $file | sed -n "/ T grub_module_.*_fini/ s/.* T //p"`
> +  init_list="$init_list $init"
> +  fini_list="$fini_list $fini"
> +  arg="\"$name\",${init:-0},${fini:-0}"
> +  list="$list $arg"
> +done

Is there a way we can do this before to avoid runtime dependency on binutils?

Btw has this been tested on i386-efi ?

-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call… if you are unable to speak?
(as seen on /.)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]