Kip Macy wrote:
On Mon, Jun 1, 2009 at 10:21 AM, Adam McDougall <mcdou...@egr.msu.edu> wrote:
I'm thinking that too. I spent some time taking stabs at figuring it out
yesterday but didn't get anywhere useful. I did try compiling the -current
src/sys/boot tree on 7.2 after a couple header tweaks to make it compile but
the loader still didn't work. The working loader is the same file size as
the broken loader unless it was compiled on i386 and then it is ~30k bigger
for some reason (it shrinks to the same size as the rest if I force it to
use the same 32bit compilation flags as used on amd64). Just mentioning
this in case it saves someone else some time. I'm real pleased it works at
all.
If someone has the time to track down the differences I'll MFC them.
I'm not using ZFS boot at the moment so I have no way of testing.
At last I get this F.....G diff!!!
The problem was in libstand.a. By the way , the patch also take into
account the update of Doug Rabson to answer my problem with too many
devices / pools.
Happy to help on this one.
Cheers,
Kip
--- lib/libstand/stand.h.orig 2007-01-09 02:02:04.000000000 +0100
+++ lib/libstand/stand.h 2009-06-03 17:24:42.627552341 +0200
@@ -167,7 +167,7 @@
#define SOPEN_RASIZE 512
};
-#define SOPEN_MAX 8
+#define SOPEN_MAX 64
extern struct open_file files[];
/* f_flags values */
--- lib/libstand/nfs.c.orig 2004-01-21 21:12:23.000000000 +0100
+++ lib/libstand/nfs.c 2009-06-05 20:36:26.001368421 +0200
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libstand/nfs.c,v 1.12 2004/01/21 20:12:23 jhb Exp
$");
+__FBSDID("$FreeBSD: src/lib/libstand/nfs.c,v 1.14 2008/11/21 09:14:29 luigi
Exp $");
#include <sys/param.h>
#include <sys/time.h>
@@ -405,16 +405,23 @@
#ifdef NFS_DEBUG
if (debug)
- printf("nfs_open: %s (rootpath=%s)\n", path, rootpath);
+ printf("nfs_open: %s (rootpath=%s)\n", upath, rootpath);
#endif
if (!rootpath[0]) {
printf("no rootpath, no nfs\n");
return (ENXIO);
}
+ /*
+ * This is silly - we should look at dv_type but that value is
+ * arch dependant and we can't use it here.
+ */
#ifndef __i386__
if (strcmp(f->f_dev->dv_name, "net") != 0)
return(EINVAL);
+#else
+ if (strcmp(f->f_dev->dv_name, "pxe") != 0)
+ return(EINVAL);
#endif
if (!(desc = socktodesc(*(int *)(f->f_devdata))))
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"