On Mon, Jul 28, 2003 at 02:29:14AM +0000, Robert Millan wrote: > > Hi there, > > Any comments on this patch? I sent it a week ago but haven't recieved > any response..
Second ping on this.. I noticed that Okuji is offline for a while and he asked other developers with CVS access to maintain it till he's back. Is any active developer with write access around? > On Tue, Jul 22, 2003 at 06:57:25PM +0000, Robert Millan wrote: > > > > Hi! > > > > I made a patch with some *BSD related fixes: > > > > - Add compatibility for non-BSD systems using *BSD kernels (such as > > GNU/FreeBSD). These don't define __*BSD__, but do define __*BSD_kernel__, > > so i added compatibility defines in lib/device.c and then switch > > from __*BSD__ to __*BSD_kernel__ (see the patch, it's self-explanatory) > > - Devices for FreeBSD's kernel are outdated. Recent 5.x versions don't > > add a "r" prefix to the device name, so it is now "fd%d", "ad%d", etc. > > I'm adding a detection for __FreeBSD_kernel__'s version number. > > > > My patch differed against pristine sources would conflict with my dynamic > > allocation one sent a while ago, so I'm differing against my patched version. > > > > You need to apply my previous patch [1] before this one. If this is a problem > > tell me and i'll adapt my changes. > > > > [1] http://mail.gnu.org/archive/html/bug-grub/2003-07/msg00055.html > > > > -- > > Robert Millan > > > diff -ur grub.old/lib/device.c grub/lib/device.c > > --- grub.old/lib/device.c 2003-07-22 05:40:40.000000000 +0200 > > +++ grub/lib/device.c 2003-07-22 05:52:46.000000000 +0200 > > @@ -35,6 +35,15 @@ > > #include <errno.h> > > #include <limits.h> > > > > +/* compatibility for non-BSD systems using *BSD kernels */ > > +#if defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) > > +# define __FreeBSD_kernel__ __FreeBSD__ > > +#elif defined(__NetBSD__) && !defined(__NetBSD_kernel__) > > +# define __NetBSD_kernel__ __NetBSD__ > > +#elif defined(__OpenBSD__) && !defined(__OpenBSD_kernel__) > > +# define __OpenBSD_kernel__ __OpenBSD__ > > +#endif > > + > > #ifdef __linux__ > > # if !defined(__GLIBC__) || \ > > ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))) > > @@ -71,11 +80,11 @@ > > # endif /* ! BLKGETSIZE */ > > #endif /* __linux__ */ > > > > -#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) > > +#if defined(__FreeBSD_kernel__) || defined(__NetBSD_kernel__) || > > defined(__OpenBSD_kernel__) > > # include <sys/ioctl.h> /* ioctl */ > > # include <sys/disklabel.h> > > # include <sys/cdio.h> /* CDIOCCLRDEBUG */ > > -#endif /* __FreeBSD__ || __NetBSD__ || __OpenBSD__ */ > > +#endif /* __FreeBSD_kernel__ || __NetBSD_kernel__ || __OpenBSD_kernel__ */ > > > > #ifdef HAVE_OPENDISK > > # include <util.h> > > @@ -116,8 +125,8 @@ > > return; > > } > > > > -#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) > > - /* FreeBSD, NetBSD or OpenBSD */ > > +#elif defined(__FreeBSD_kernel__) || defined(__NetBSD_kernel__) || > > defined(__OpenBSD_kernel__) > > + /* kernel of FreeBSD, NetBSD or OpenBSD */ > > { > > struct disklabel hdg; > > if (ioctl (fd, DIOCGDINFO, &hdg)) > > @@ -199,15 +208,19 @@ > > #elif defined(__GNU__) > > /* GNU/Hurd */ > > asprintf (&name, "/dev/fd%d", unit); > > -#elif defined(__FreeBSD__) > > - /* FreeBSD */ > > +#elif defined(__FreeBSD_kernel__) > > + /* kernel of FreeBSD */ > > +# if __FreeBSD_kernel__ >= 5 > > + asprintf (&name, "/dev/fd%d", unit); > > +# else /* __FreeBSD_kernel__ <= 4 */ > > asprintf (&name, "/dev/rfd%d", unit); > > -#elif defined(__NetBSD__) > > - /* NetBSD */ > > +# endif /* __FreeBSD_kernel__ <= 4 */ > > +#elif defined(__NetBSD_kernel__) > > + /* kernel of NetBSD */ > > /* opendisk() doesn't work for floppies. */ > > asprintf (&name, "/dev/rfd%da", unit); > > -#elif defined(__OpenBSD__) > > - /* OpenBSD */ > > +#elif defined(__OpenBSD_kernel__) > > + /* kernel of OpenBSD */ > > asprintf (&name, "/dev/rfd%dc", unit); > > #elif defined(__QNXNTO__) > > /* QNX RTP */ > > @@ -230,15 +243,17 @@ > > #elif defined(__GNU__) > > /* GNU/Hurd */ > > asprintf (&name, "/dev/hd%d", unit); > > -#elif defined(__FreeBSD__) > > - /* FreeBSD */ > > -# if __FreeBSD__ >= 4 > > +#elif defined(__FreeBSD_kernel__) > > + /* kernel of FreeBSD */ > > +# if __FreeBSD_kernel__ >= 5 > > + asprintf (&name, "/dev/ad%d", unit); > > +# elif __FreeBSD_kernel__ >= 4 > > asprintf (&name, "/dev/rad%d", unit); > > -# else /* __FreeBSD__ <= 3 */ > > +# else /* __FreeBSD_kernel__ <= 3 */ > > asprintf (&name, "/dev/rwd%d", unit); > > -# endif /* __FreeBSD__ <= 3 */ > > -#elif defined(__NetBSD__) && defined(HAVE_OPENDISK) > > - /* NetBSD */ > > +# endif /* __FreeBSD_kernel__ <= 3 */ > > +#elif defined(__NetBSD_kernel__) && defined(HAVE_OPENDISK) > > + /* kernel of NetBSD */ > > char shortname[16]; > > int fd; > > name = malloc (16); // FIXME: can opendisk deal with dynamic buffers? > > @@ -249,8 +264,8 @@ > > 0 /* char device */ > > ); > > close (fd); > > -#elif defined(__OpenBSD__) > > - /* OpenBSD */ > > +#elif defined(__OpenBSD_kernel__) > > + /* kernel of OpenBSD */ > > asprintf (&name, "/dev/rwd%dc", unit); > > #elif defined(__QNXNTO__) > > /* QNX RTP */ > > @@ -275,11 +290,15 @@ > > #elif defined(__GNU__) > > /* GNU/Hurd */ > > asprintf (&name, "/dev/sd%d", unit); > > -#elif defined(__FreeBSD__) > > - /* FreeBSD */ > > +#elif defined(__FreeBSD_kernel__) > > + /* kernel of FreeBSD */ > > +# if __FreeBSD_kernel__ >= 5 > > + asprintf (&name, "/dev/da%d", unit); > > +# else /* __FreeBSD_kernel__ <= 4 */ > > asprintf (&name, "/dev/rda%d", unit); > > -#elif defined(__NetBSD__) && defined(HAVE_OPENDISK) > > - /* NetBSD */ > > +# endif /* __FreeBSD_kernel__ <= 4 */ > > +#elif defined(__NetBSD_kernel__) && defined(HAVE_OPENDISK) > > + /* kernel of NetBSD */ > > char shortname[16]; > > int fd; > > name = malloc (16); // FIXME: can opendisk deal with dynamic buffers? > > @@ -290,8 +309,8 @@ > > 0 /* char device */ > > ); > > close (fd); > > -#elif defined(__OpenBSD__) > > - /* OpenBSD */ > > +#elif defined(__OpenBSD_kernel__) > > + /* kernel of OpenBSD */ > > asprintf (&name, "/dev/rsd%dc", unit); > > #elif defined(__QNXNTO__) > > /* QNX RTP */ > > @@ -378,12 +397,12 @@ > > # endif /* ! CDROM_GET_CAPABILITY */ > > #endif /* __linux__ */ > > > > -#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) > > +#if defined(__FreeBSD_kernel__) || defined(__NetBSD_kernel__) || > > defined(__OpenBSD_kernel__) > > # ifdef CDIOCCLRDEBUG > > if (ioctl (fileno (fp), CDIOCCLRDEBUG, 0) >= 0) > > return 0; > > # endif /* CDIOCCLRDEBUG */ > > -#endif /* __FreeBSD__ || __NetBSD__ || __OpenBSD__ */ > > +#endif /* __FreeBSD_kernel__ || __NetBSD_kernel__ || __OpenBSD_kernel__ */ > > > > /* Attempt to read the first sector. */ > > if (fread (buf, 1, 512, fp) != 512) > > > _______________________________________________ > > Bug-grub mailing list > > [EMAIL PROTECTED] > > http://mail.gnu.org/mailman/listinfo/bug-grub > > > -- > Robert Millan > > "[..] but the delight and pride of Aule is in the deed of making, and in the > thing made, and neither in possession nor in his own mastery; wherefore he > gives and hoards not, and is free from care, passing ever on to some new work." > > -- J.R.R.T, Ainulindale (Silmarillion) > > > _______________________________________________ > Bug-grub mailing list > [EMAIL PROTECTED] > http://mail.gnu.org/mailman/listinfo/bug-grub -- Robert Millan "[..] but the delight and pride of Aule is in the deed of making, and in the thing made, and neither in possession nor in his own mastery; wherefore he gives and hoards not, and is free from care, passing ever on to some new work." -- J.R.R.T, Ainulindale (Silmarillion) _______________________________________________ Bug-grub mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-grub
