diff --git a/ChangeLog b/ChangeLog index 9a09457dc..3f7a086aa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,32 @@ +2001-01-12 OKUJI Yoshinori + + * 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 + + * 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 * stage2/builtins.c [SUPPORT_NETBOOT] (ifconfig_func): New diff --git a/docs/Makefile.am b/docs/Makefile.am index 4e9a6249f..4e988f009 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -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. diff --git a/docs/Makefile.in b/docs/Makefile.in index cb0c234f1..37667f460 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -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. diff --git a/docs/boot.S b/docs/boot.S index 989c2d4bc..b0e167f83 100644 --- a/docs/boot.S +++ b/docs/boot.S @@ -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. */ diff --git a/docs/boot.S.texi b/docs/boot.S.texi index b54c5235b..afca9f71c 100644 --- a/docs/boot.S.texi +++ b/docs/boot.S.texi @@ -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.} */ diff --git a/docs/multiboot.h b/docs/multiboot.h index f8afac909..df79225aa 100644 --- a/docs/multiboot.h +++ b/docs/multiboot.h @@ -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. */ -#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. */ #define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002 diff --git a/docs/multiboot.h.texi b/docs/multiboot.h.texi index f2a4f1065..3fa8c0b7c 100644 --- a/docs/multiboot.h.texi +++ b/docs/multiboot.h.texi @@ -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.} */ -#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.} */ #define MULTIBOOT_BOOTLOADER_MAGIC 0x2BADB002 diff --git a/netboot/etherboot.h b/netboot/etherboot.h index 2bd62a475..91903a28f 100644 --- a/netboot/etherboot.h +++ b/netboot/etherboot.h @@ -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 */ diff --git a/netboot/main.c b/netboot/main.c index 9229c6f0c..d9d9bda97 100644 --- a/netboot/main.c +++ b/netboot/main.c @@ -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 diff --git a/stage2/builtins.c b/stage2/builtins.c index 8aff14f41..a00fae0c7 100644 --- a/stage2/builtins.c +++ b/stage2/builtins.c @@ -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;