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> 2001-01-11 Eugene Doudine <dudin@np.nk.nornik.ru>
* stage2/builtins.c [SUPPORT_NETBOOT] (ifconfig_func): New * 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 HELP2MAN = help2man
SRC2TEXI = src2texi SRC2TEXI = src2texi
noinst_SCRIPTS = $(HELP2MAN) $(SRC2TEXI) noinst_SCRIPTS = $(HELP2MAN) $(SRC2TEXI)
EXTRA_PROGRAMS = kernel
# The example kernel is built if you specify --enable-example-kernel. # The example kernel is built if you specify --enable-example-kernel.
if BUILD_EXAMPLE_KERNEL if BUILD_EXAMPLE_KERNEL
noinst_DATA = kernel noinst_PROGRAMS = kernel
noinst_PROGRAMS = kernel.exec kernel_SOURCES = $(EXAMPLES)
kernel_exec_SOURCES = $(EXAMPLES) kernel_CFLAGS = -fno-builtin -nostdinc -O -g -Wall \
kernel_exec_CFLAGS = -fno-builtin -nostdinc -O -g -Wall \
-imacros $(top_builddir)/config.h -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 boot.o: multiboot.h
$(OBJCOPY) -O binary $< $@
endif endif
EXTRA_DIST = menu.lst $(man_MANS) $(noinst_SCRIPTS) \ EXTRA_DIST = menu.lst $(man_MANS) $(noinst_SCRIPTS) \
$(EXAMPLES) $(multiboot_TEXINFOS) $(EXAMPLES) $(multiboot_TEXINFOS)
CLEANFILES = $(noinst_PROGRAMS)
# Cancel the rule %.texi -> %. This rule may confuse make to determine # Cancel the rule %.texi -> %. This rule may confuse make to determine
# the dependecies. # the dependecies.

View file

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

View file

@ -1,5 +1,5 @@
/* boot.S - bootstrap the kernel */ /* 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 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 it under the terms of the GNU General Public License as published by
@ -21,8 +21,6 @@
.text .text
.globl start, _start .globl start, _start
/* This entry is not used actually. */
start: start:
_start: _start:
jmp multiboot_entry jmp multiboot_entry
@ -38,6 +36,7 @@ multiboot_header:
.long MULTIBOOT_HEADER_FLAGS .long MULTIBOOT_HEADER_FLAGS
/* checksum */ /* checksum */
.long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) .long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
#ifndef __ELF__
/* header_addr */ /* header_addr */
.long multiboot_header .long multiboot_header
/* load_addr */ /* load_addr */
@ -48,6 +47,7 @@ multiboot_header:
.long _end .long _end
/* entry_addr */ /* entry_addr */
.long multiboot_entry .long multiboot_entry
#endif /* ! __ELF__ */
multiboot_entry: multiboot_entry:
/* Initialize the stack pointer. */ /* Initialize the stack pointer. */

View file

@ -1,5 +1,5 @@
/* @r{boot.S - bootstrap the kernel} */ /* @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 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 it under the terms of the GNU General Public License as published by
@ -21,8 +21,6 @@
.text .text
.globl start, _start .globl start, _start
/* @r{This entry is not used actually.} */
start: start:
_start: _start:
jmp multiboot_entry jmp multiboot_entry
@ -38,6 +36,7 @@ multiboot_header:
.long MULTIBOOT_HEADER_FLAGS .long MULTIBOOT_HEADER_FLAGS
/* @r{checksum} */ /* @r{checksum} */
.long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) .long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
#ifndef __ELF__
/* @r{header_addr} */ /* @r{header_addr} */
.long multiboot_header .long multiboot_header
/* @r{load_addr} */ /* @r{load_addr} */
@ -48,6 +47,7 @@ multiboot_header:
.long _end .long _end
/* @r{entry_addr} */ /* @r{entry_addr} */
.long multiboot_entry .long multiboot_entry
#endif /* @r{! __ELF__} */
multiboot_entry: multiboot_entry:
/* @r{Initialize the stack pointer.} */ /* @r{Initialize the stack pointer.} */

View file

@ -1,5 +1,5 @@
/* multiboot.h - the header for Multiboot */ /* 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 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 it under the terms of the GNU General Public License as published by
@ -21,7 +21,11 @@
#define MULTIBOOT_HEADER_MAGIC 0x1BADB002 #define MULTIBOOT_HEADER_MAGIC 0x1BADB002
/* The flags for the Multiboot header. */ /* The flags for the Multiboot header. */
#define MULTIBOOT_HEADER_FLAGS 0x00010003 #ifdef __ELF__
# define MULTIBOOT_HEADER_FLAGS 0x00000003
#else
# define MULTIBOOT_HEADER_FLAGS 0x00010003
#endif
/* The magic number passed by a Multiboot-compliant boot loader. */ /* The magic number passed by a Multiboot-compliant boot loader. */
#define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002 #define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002

View file

@ -1,5 +1,5 @@
/* @r{multiboot.h - the header for Multiboot} */ /* @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 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 it under the terms of the GNU General Public License as published by
@ -21,7 +21,11 @@
#define MULTIBOOT_HEADER_MAGIC 0x1BADB002 #define MULTIBOOT_HEADER_MAGIC 0x1BADB002
/* @r{The flags for the Multiboot header.} */ /* @r{The flags for the Multiboot header.} */
#define MULTIBOOT_HEADER_FLAGS 0x00010003 #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.} */ /* @r{The magic number passed by a Multiboot-compliant boot loader.} */
#define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002 #define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002

View file

@ -461,7 +461,6 @@ External prototypes
/* main.c */ /* main.c */
#ifdef GRUB #ifdef GRUB
extern void print_network_configuration P((void)); 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)); extern int ifconfig P((char *ip, char *sm, char *gw, char *svr));
#endif /* GRUB */ #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 DEFAULT_NETMASK - Return default netmask for IP address

View file

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