NetBSD-Bugs archive

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

Re: install/43112: i386 floppy installation now prompts for each floppy three times



> >Synopsis:       i386 floppy installation now prompts for each floppy three 
> >times

> A similar problem was reported in 2008 in PR install/38943 and
> subsequently fixed.

Here is a dumb patch based on the PR install/38943:


Index: arch/alpha/stand/ustarboot/Makefile
===================================================================
RCS file: /cvsroot/src/sys/arch/alpha/stand/ustarboot/Makefile,v
retrieving revision 1.7
diff -u -r1.7 Makefile
--- arch/alpha/stand/ustarboot/Makefile 3 Feb 2009 12:49:00 -0000       1.7
+++ arch/alpha/stand/ustarboot/Makefile 9 May 2010 07:52:22 -0000
@@ -12,7 +12,7 @@
                -DLIBSA_SINGLE_DEVICE=blkdev \
                  -D"blkdevioctl(x,y,z)=EINVAL" \
                -DLIBSA_SINGLE_FILESYSTEM=ustarfs \
-               -DNO_LOAD_NOTE
+               -DNO_LOAD_BACKWARD
 
 CLEANFILES+= ${PROG}.sym
 
Index: arch/alpha/stand/common/boot.c
===================================================================
RCS file: /cvsroot/src/sys/arch/alpha/stand/common/boot.c,v
retrieving revision 1.30
diff -u -r1.30 boot.c
--- arch/alpha/stand/common/boot.c      3 Feb 2009 12:49:00 -0000       1.30
+++ arch/alpha/stand/common/boot.c      9 May 2010 07:52:22 -0000
@@ -122,8 +122,8 @@
                gets(boot_file);
        }
 
-#ifdef NO_LOAD_NOTE
-       loadflag = LOAD_KERNEL & ~LOAD_NOTE;
+#ifdef NO_LOAD_BACKWARD
+       loadflag = LOAD_KERNEL & ~LOAD_BACKWARD;
 #else
        loadflag = LOAD_KERNEL;
 #endif
Index: arch/i386/stand/lib/exec.c
===================================================================
RCS file: /cvsroot/src/sys/arch/i386/stand/lib/exec.c,v
retrieving revision 1.42
diff -u -r1.42 exec.c
--- arch/i386/stand/lib/exec.c  14 Sep 2009 11:56:27 -0000      1.42
+++ arch/i386/stand/lib/exec.c  9 May 2010 07:52:22 -0000
@@ -228,7 +228,7 @@
 #endif
        marks[MARK_START] = loadaddr;
        if ((fd = loadfile(file, marks,
-           LOAD_KERNEL & ~(floppy ? LOAD_NOTE : 0))) == -1)
+           LOAD_KERNEL & ~(floppy ? LOAD_BACKWARD : 0))) == -1)
                return EIO;
 
        close(fd);
Index: arch/macppc/stand/ofwboot/boot.c
===================================================================
RCS file: /cvsroot/src/sys/arch/macppc/stand/ofwboot/boot.c,v
retrieving revision 1.24
diff -u -r1.24 boot.c
--- arch/macppc/stand/ofwboot/boot.c    29 Mar 2010 00:13:32 -0000      1.24
+++ arch/macppc/stand/ofwboot/boot.c    9 May 2010 07:52:22 -0000
@@ -288,7 +288,7 @@
 
                        loadflag = LOAD_KERNEL;
                        if (floppyboot)
-                               loadflag &= ~LOAD_NOTE;
+                               loadflag &= ~LOAD_BACKWARD;
 
                        marks[MARK_START] = 0;
                        if (loadfile(kernels[i], marks, loadflag) >= 0)
Index: arch/news68k/stand/boot/boot.c
===================================================================
RCS file: /cvsroot/src/sys/arch/news68k/stand/boot/boot.c,v
retrieving revision 1.17
diff -u -r1.17 boot.c
--- arch/news68k/stand/boot/boot.c      20 Jan 2009 13:35:28 -0000      1.17
+++ arch/news68k/stand/boot/boot.c      9 May 2010 07:52:22 -0000
@@ -123,10 +123,10 @@
                kernels[1] = NULL;
        }
 
-       /* disable LOAD_NOTE on floppy to avoid backward seek across volumes */
+       /* avoid backward seek on floppies */
        loadflag = LOAD_KERNEL;
        if (devname[0] == 'f')  /* XXX */
-               loadflag &= ~LOAD_NOTE;
+               loadflag &= ~LOAD_BACKWARD;
 
        for (i = 0; kernels[i]; i++) {
                sprintf(file, "%s%s", devname, kernels[i]);
Index: arch/newsmips/stand/boot/boot.c
===================================================================
RCS file: /cvsroot/src/sys/arch/newsmips/stand/boot/boot.c,v
retrieving revision 1.17
diff -u -r1.17 boot.c
--- arch/newsmips/stand/boot/boot.c     20 Jan 2009 13:12:26 -0000      1.17
+++ arch/newsmips/stand/boot/boot.c     9 May 2010 07:52:22 -0000
@@ -161,10 +161,10 @@
                kernels[1] = NULL;
        }
 
-       /* disable LOAD_NOTE on floppy to avoid backward seek across volumes */
+       /* avoid backward seek on floppies */
        loadflag = LOAD_KERNEL;
        if (devname[0] == 'f')  /* XXX */
-               loadflag &= ~LOAD_NOTE;
+               loadflag &= ~LOAD_BACKWARD;
 
        marks[MARK_START] = 0;
 
Index: arch/x68k/stand/boot/boot.c
===================================================================
RCS file: /cvsroot/src/sys/arch/x68k/stand/boot/boot.c,v
retrieving revision 1.14
diff -u -r1.14 boot.c
--- arch/x68k/stand/boot/boot.c 31 Jan 2009 14:22:21 -0000      1.14
+++ arch/x68k/stand/boot/boot.c 9 May 2010 07:52:22 -0000
@@ -111,7 +111,7 @@
 
        loadflag = LOAD_KERNEL;
        if (file[0] == 'f')
-               loadflag &= ~LOAD_NOTE;
+               loadflag &= ~LOAD_BACKWARD;
                
        marks[MARK_START] = 0x100000;
        if ((fd = loadfile(file, marks, loadflag)) == -1) {
Index: lib/libsa/loadfile_elf32.c
===================================================================
RCS file: /cvsroot/src/sys/lib/libsa/loadfile_elf32.c,v
retrieving revision 1.25
diff -u -r1.25 loadfile_elf32.c
--- lib/libsa/loadfile_elf32.c  12 Mar 2010 21:43:11 -0000      1.25
+++ lib/libsa/loadfile_elf32.c  9 May 2010 07:52:22 -0000
@@ -272,7 +272,7 @@
                uint8_t         desc[ELF_NOTE_NETBSD_DESCSZ];
        } note;
        char *shstr = NULL;
-       int boot_load_ctf=1;
+       bool boot_load_ctf = (flags & LOAD_CTF) != 0;
 
        /* some ports dont use the offset */
        offset = offset;
Index: lib/libsa/loadfile.h
===================================================================
RCS file: /cvsroot/src/sys/lib/libsa/loadfile.h,v
retrieving revision 1.10
diff -u -r1.10 loadfile.h
--- lib/libsa/loadfile.h        25 Sep 2008 20:59:38 -0000      1.10
+++ lib/libsa/loadfile.h        9 May 2010 07:52:22 -0000
@@ -50,7 +50,13 @@
 #define        LOAD_SYM        0x0010
 #define        LOAD_HDR        0x0020
 #define LOAD_NOTE      0x0040
-#define LOAD_ALL       0x007f
+#define LOAD_CTF       0x0080
+#define LOAD_ALL       0x00ff
+/*
+ * XXX these ones cause backward seek which is annoying on ustarfs floppies.
+ * See PR install/38943 and install/43112.
+ */
+#define LOAD_BACKWARD  (LOAD_NOTE | LOAD_CTF)
 
 #define        COUNT_TEXT      0x0100
 #define        COUNT_TEXTA     0x0200

---
Izumi Tsutsui


Home | Main Index | Thread Index | Old Index