fix some bugs in the example kernel and the Makefile entries.

This commit is contained in:
okuji 2001-01-11 23:33:09 +00:00
parent 7519621c59
commit acc6543257
10 changed files with 86 additions and 69 deletions

View file

@ -1,3 +1,32 @@
2001-01-12 OKUJI Yoshinori <okuji@gnu.org>
* docs/multiboot.h [__ELF__] (MULTIBOOT_HEADER_FLAGS): Defined
as 0x00000003 instead of 0x00010003.
* docs/boot.S (multiboot_header) [__ELF__]: Don't define a.out
kludge information.
* docs/Makefile.am (EXTRA_PROGRAMS): New variable.
[BUILD_EXAMPLE_KERNEL] (noinst_DATA): Removed.
[BUILD_EXAMPLE_KERNEL] (noinst_PROGRAMS): Changed to kernel.
[BUILD_EXAMPLE_KERNEL] (kernel_exec_SOURCES): Renamed to ...
[BUILD_EXAMPLE_KERNEL] (kernel_SOURCES): ... this.
[BUILD_EXAMPLE_KERNEL] (kernel_exec_CFLAGS): Renamed to ...
[BUILD_EXAMPLE_KERNEL] (kernel_CFLAGS): ... this.
[BUILD_EXAMPLE_KERNEL] (kernel_exec_LDFLAGS): Renamed to ...
[BUILD_EXAMPLE_KERNEL] (kernel_LDFLAGS): ... this.
[BUILD_EXAMPLE_KERNEL] (kernel): Removed.
[BUILD_EXAMPLE_KERNEL] (boot.o): New dependency.
(CLEANFILES): New variable.
2001-01-11 OKUJI Yoshinori <okuji@gnu.org>
* stage2/builtins.c [SUPPORT_NETBOOT] (ifconfig_func): Always
print current network configuration.
[SUPPORT_NETBOOT] (tftpserver_func): Use ifconfig instead of
arp_server_override.
* netboot/main.c (arp_server_override): Removed.
* netboot/etherboot.h (arp_server_override): Likewise.
2001-01-11 Eugene Doudine <dudin@np.nk.nornik.ru>
* stage2/builtins.c [SUPPORT_NETBOOT] (ifconfig_func): New

View file

@ -7,22 +7,22 @@ man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8
HELP2MAN = help2man
SRC2TEXI = src2texi
noinst_SCRIPTS = $(HELP2MAN) $(SRC2TEXI)
EXTRA_PROGRAMS = kernel
# The example kernel is built if you specify --enable-example-kernel.
if BUILD_EXAMPLE_KERNEL
noinst_DATA = kernel
noinst_PROGRAMS = kernel.exec
kernel_exec_SOURCES = $(EXAMPLES)
kernel_exec_CFLAGS = -fno-builtin -nostdinc -O -g -Wall \
noinst_PROGRAMS = kernel
kernel_SOURCES = $(EXAMPLES)
kernel_CFLAGS = -fno-builtin -nostdinc -O -g -Wall \
-imacros $(top_builddir)/config.h
kernel_exec_LDFLAGS = -nostdlib -Wl,-N -Wl,-Ttext -Wl,100000
kernel_LDFLAGS = -nostdlib -Wl,-N -Wl,-Ttext -Wl,100000
kernel: kernel.exec
$(OBJCOPY) -O binary $< $@
boot.o: multiboot.h
endif
EXTRA_DIST = menu.lst $(man_MANS) $(noinst_SCRIPTS) \
$(EXAMPLES) $(multiboot_TEXINFOS)
CLEANFILES = $(noinst_PROGRAMS)
# Cancel the rule %.texi -> %. This rule may confuse make to determine
# the dependecies.

View file

@ -97,18 +97,19 @@ man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8
HELP2MAN = help2man
SRC2TEXI = src2texi
noinst_SCRIPTS = $(HELP2MAN) $(SRC2TEXI)
EXTRA_PROGRAMS = kernel
# The example kernel is built if you specify --enable-example-kernel.
@BUILD_EXAMPLE_KERNEL_TRUE@noinst_DATA = @BUILD_EXAMPLE_KERNEL_TRUE@kernel
@BUILD_EXAMPLE_KERNEL_TRUE@noinst_PROGRAMS = @BUILD_EXAMPLE_KERNEL_TRUE@kernel.exec
@BUILD_EXAMPLE_KERNEL_TRUE@kernel_exec_SOURCES = @BUILD_EXAMPLE_KERNEL_TRUE@$(EXAMPLES)
@BUILD_EXAMPLE_KERNEL_TRUE@kernel_exec_CFLAGS = @BUILD_EXAMPLE_KERNEL_TRUE@-fno-builtin -nostdinc -O -g -Wall \
@BUILD_EXAMPLE_KERNEL_TRUE@noinst_PROGRAMS = @BUILD_EXAMPLE_KERNEL_TRUE@kernel
@BUILD_EXAMPLE_KERNEL_TRUE@kernel_SOURCES = @BUILD_EXAMPLE_KERNEL_TRUE@$(EXAMPLES)
@BUILD_EXAMPLE_KERNEL_TRUE@kernel_CFLAGS = @BUILD_EXAMPLE_KERNEL_TRUE@-fno-builtin -nostdinc -O -g -Wall \
@BUILD_EXAMPLE_KERNEL_TRUE@ -imacros $(top_builddir)/config.h
@BUILD_EXAMPLE_KERNEL_TRUE@kernel_exec_LDFLAGS = @BUILD_EXAMPLE_KERNEL_TRUE@-nostdlib -Wl,-N -Wl,-Ttext -Wl,100000
@BUILD_EXAMPLE_KERNEL_TRUE@kernel_LDFLAGS = @BUILD_EXAMPLE_KERNEL_TRUE@-nostdlib -Wl,-N -Wl,-Ttext -Wl,100000
EXTRA_DIST = menu.lst $(man_MANS) $(noinst_SCRIPTS) \
$(EXAMPLES) $(multiboot_TEXINFOS)
CLEANFILES = $(noinst_PROGRAMS)
subdir = docs
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
@ -120,18 +121,18 @@ DEFS = @DEFS@ -I. -I$(srcdir) -I..
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
@BUILD_EXAMPLE_KERNEL_TRUE@am_kernel_exec_OBJECTS = kernel_exec-boot.o \
@BUILD_EXAMPLE_KERNEL_TRUE@kernel_exec-kernel.o
kernel_exec_OBJECTS = $(am_kernel_exec_OBJECTS)
kernel_exec_LDADD = $(LDADD)
kernel_exec_DEPENDENCIES =
@BUILD_EXAMPLE_KERNEL_TRUE@am_kernel_OBJECTS = kernel-boot.o \
@BUILD_EXAMPLE_KERNEL_TRUE@kernel-kernel.o
kernel_OBJECTS = $(am_kernel_OBJECTS)
kernel_LDADD = $(LDADD)
kernel_DEPENDENCIES =
SCRIPTS = $(noinst_SCRIPTS)
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CFLAGS = @CFLAGS@
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DIST_SOURCES = $(kernel_exec_SOURCES)
DIST_SOURCES = $(kernel_SOURCES)
TEXI2DVI = texi2dvi
INFO_DEPS = grub.info multiboot.info
DVIS = grub.dvi multiboot.dvi
@ -141,11 +142,8 @@ man8dir = $(mandir)/man8
MANS = $(man_MANS)
NROFF = nroff
DATA = $(noinst_DATA)
depcomp = $(SHELL) $(top_srcdir)/depcomp
DEP_FILES = @AMDEP@ $(DEPDIR)/kernel_exec-boot.Po \
$(DEPDIR)/kernel_exec-kernel.Po
DEP_FILES = @AMDEP@ $(DEPDIR)/kernel-boot.Po $(DEPDIR)/kernel-kernel.Po
DIST_COMMON = $(grub_TEXINFOS) $(multiboot_TEXINFOS) Makefile.am \
Makefile.in stamp-vti version.texi
@ -153,8 +151,8 @@ Makefile.in stamp-vti version.texi
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
GZIP_ENV = --best
SOURCES = $(kernel_exec_SOURCES)
OBJECTS = $(am_kernel_exec_OBJECTS)
SOURCES = $(kernel_SOURCES)
OBJECTS = $(am_kernel_OBJECTS)
all: all-redirect
.SUFFIXES:
@ -185,13 +183,13 @@ distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
kernel_exec-boot.o: boot.S
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kernel_exec-boot.o `test -f boot.S || echo '$(srcdir)/'`boot.S
kernel_exec-kernel.o: kernel.c
kernel-boot.o: boot.S
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -c -o kernel-boot.o `test -f boot.S || echo '$(srcdir)/'`boot.S
kernel-kernel.o: kernel.c
kernel.exec: $(kernel_exec_OBJECTS) $(kernel_exec_DEPENDENCIES)
@rm -f kernel.exec
$(LINK) $(kernel_exec_LDFLAGS) $(kernel_exec_OBJECTS) $(kernel_exec_LDADD) $(LIBS)
kernel: $(kernel_OBJECTS) $(kernel_DEPENDENCIES)
@rm -f kernel
$(LINK) $(kernel_LDFLAGS) $(kernel_OBJECTS) $(kernel_LDADD) $(LIBS)
.S.o:
$(COMPILE) -c $<
@ -449,8 +447,8 @@ distclean-tags:
maintainer-clean-tags:
@AMDEP@include $(DEPDIR)/kernel_exec-boot.Po
@AMDEP@include $(DEPDIR)/kernel_exec-kernel.Po
@AMDEP@include $(DEPDIR)/kernel-boot.Po
@AMDEP@include $(DEPDIR)/kernel-kernel.Po
mostlyclean-depend:
@ -472,11 +470,11 @@ maintainer-clean-depend:
@AMDEP@CCDEPMODE = @CCDEPMODE@
kernel_exec-kernel.o: kernel.c
@AMDEP@ source='kernel.c' object='kernel_exec-kernel.o' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/kernel_exec-kernel.Po' tmpdepfile='$(DEPDIR)/kernel_exec-kernel.TPo' @AMDEPBACKSLASH@
kernel-kernel.o: kernel.c
@AMDEP@ source='kernel.c' object='kernel-kernel.o' libtool=no @AMDEPBACKSLASH@
@AMDEP@ depfile='$(DEPDIR)/kernel-kernel.Po' tmpdepfile='$(DEPDIR)/kernel-kernel.TPo' @AMDEPBACKSLASH@
@AMDEP@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_exec_CFLAGS) $(CFLAGS) -c -o kernel_exec-kernel.o `test -f kernel.c || echo '$(srcdir)/'`kernel.c
$(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -c -o kernel-kernel.o `test -f kernel.c || echo '$(srcdir)/'`kernel.c
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
@ -512,7 +510,7 @@ install-am: all-am
install: install-am
uninstall-am: uninstall-info uninstall-man
uninstall: uninstall-am
all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA)
all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(SCRIPTS) $(MANS)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
@ -524,6 +522,7 @@ installdirs:
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
@ -575,8 +574,7 @@ distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
@BUILD_EXAMPLE_KERNEL_TRUE@kernel: kernel.exec
@BUILD_EXAMPLE_KERNEL_TRUE@ $(OBJCOPY) -O binary $< $@
@BUILD_EXAMPLE_KERNEL_TRUE@boot.o: multiboot.h
# Cancel the rule %.texi -> %. This rule may confuse make to determine
# the dependecies.

View file

@ -1,5 +1,5 @@
/* boot.S - bootstrap the kernel */
/* Copyright (C) 1999 Free Software Foundation, Inc.
/* Copyright (C) 1999, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -21,8 +21,6 @@
.text
.globl start, _start
/* This entry is not used actually. */
start:
_start:
jmp multiboot_entry
@ -38,6 +36,7 @@ multiboot_header:
.long MULTIBOOT_HEADER_FLAGS
/* checksum */
.long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
#ifndef __ELF__
/* header_addr */
.long multiboot_header
/* load_addr */
@ -48,6 +47,7 @@ multiboot_header:
.long _end
/* entry_addr */
.long multiboot_entry
#endif /* ! __ELF__ */
multiboot_entry:
/* Initialize the stack pointer. */

View file

@ -1,5 +1,5 @@
/* @r{boot.S - bootstrap the kernel} */
/* @r{Copyright (C) 1999 Free Software Foundation, Inc.
/* @r{Copyright (C) 1999, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -21,8 +21,6 @@
.text
.globl start, _start
/* @r{This entry is not used actually.} */
start:
_start:
jmp multiboot_entry
@ -38,6 +36,7 @@ multiboot_header:
.long MULTIBOOT_HEADER_FLAGS
/* @r{checksum} */
.long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
#ifndef __ELF__
/* @r{header_addr} */
.long multiboot_header
/* @r{load_addr} */
@ -48,6 +47,7 @@ multiboot_header:
.long _end
/* @r{entry_addr} */
.long multiboot_entry
#endif /* @r{! __ELF__} */
multiboot_entry:
/* @r{Initialize the stack pointer.} */

View file

@ -1,5 +1,5 @@
/* multiboot.h - the header for Multiboot */
/* Copyright (C) 1999 Free Software Foundation, Inc.
/* Copyright (C) 1999, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -21,7 +21,11 @@
#define MULTIBOOT_HEADER_MAGIC 0x1BADB002
/* The flags for the Multiboot header. */
#ifdef __ELF__
# define MULTIBOOT_HEADER_FLAGS 0x00000003
#else
# define MULTIBOOT_HEADER_FLAGS 0x00010003
#endif
/* The magic number passed by a Multiboot-compliant boot loader. */
#define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002

View file

@ -1,5 +1,5 @@
/* @r{multiboot.h - the header for Multiboot} */
/* @r{Copyright (C) 1999 Free Software Foundation, Inc.
/* @r{Copyright (C) 1999, 2001 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -21,7 +21,11 @@
#define MULTIBOOT_HEADER_MAGIC 0x1BADB002
/* @r{The flags for the Multiboot header.} */
#ifdef __ELF__
# define MULTIBOOT_HEADER_FLAGS 0x00000003
#else
# define MULTIBOOT_HEADER_FLAGS 0x00010003
#endif
/* @r{The magic number passed by a Multiboot-compliant boot loader.} */
#define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002

View file

@ -461,7 +461,6 @@ External prototypes
/* main.c */
#ifdef GRUB
extern void print_network_configuration P((void));
extern int arp_server_override P((const char *buf));
extern int ifconfig P((char *ip, char *sm, char *gw, char *svr));
#endif /* GRUB */

View file

@ -178,18 +178,6 @@ print_network_configuration (void)
}
}
/* Override the server IP address. */
int
arp_server_override (const char *buffer)
{
in_addr in;
if (! inet_aton ((char *) buffer, &in))
return 0;
arptable[ARP_SERVER].ipaddr.s_addr = in.s_addr;
return 1;
}
/**************************************************************************
DEFAULT_NETMASK - Return default netmask for IP address

View file

@ -1531,12 +1531,6 @@ ifconfig_func (char *arg, int flags)
return 1;
}
if (! *arg)
{
print_network_configuration ();
return 0;
}
while (*arg)
{
if (! grub_memcmp ("--server=", arg, sizeof ("--server=") - 1))
@ -1562,6 +1556,7 @@ ifconfig_func (char *arg, int flags)
return 1;
}
print_network_configuration ();
return 0;
}
@ -4147,7 +4142,7 @@ static struct builtin builtin_testvbe =
static int
tftpserver_func (char *arg, int flags)
{
if (! *arg || ! arp_server_override (arg))
if (! *arg || ! ifconfig (0, 0, 0, arg))
{
errnum = ERR_BAD_ARGUMENT;
return 1;