Subject: Re: workaround for FreeBSD binary that hardcodes a device major
To: Bill Studenmund <wrstuden@NetBSD.org>
From: Steven M. Bellovin <smb@cs.columbia.edu>
List: source-changes
Date: 09/24/2006 19:37:36
On Sat, 23 Sep 2006 23:33:24 -0700, Bill Studenmund <wrstuden@NetBSD.org>
wrote:

> On Sun, Sep 24, 2006 at 03:13:31PM +1000, matthew green wrote:
> >    
> >    [About http://mail-index.NetBSD.org/source-changes/2006/09/23/0110.html]
> >    > This would seem to break all kernel configs that don't have a twa
> >    > device.  At least for evbppc/WALNUT I get:
> >    > 
> >    >       #      link  WALNUT/netbsd
> >    >        [ ... ]
> >    >       devsw.o:(.data+0x590): undefined reference to `twa_cdevsw'
> >    
> >    I backed the change out to restore the build, but I wonder how this
> >    should be fixed.
> >    
> >    3ware's tw_cli is only available as a FreeBSD or Linux binary. The
> >    FreeBSD version hardcodes the twa major at 187. There is the same
> >    problem for twe at major 146. I see 3 options
> >    
> >    1) Tag the major 187 as reserved in the MI range and only define it on
> >    i386
> >    2) Use a MD major for twa, and patch freebsd_sys_mknod() so that 187
> >    gets translated into the right major
> >    3) Use a MD major for twa, and patch the tw_cli binary so that the right
> >    major gets used. 
> >    
> >    What's the best way?
> > 
> > 
> > since the hardcoded value is for freebsd, #2 seems the right place.
> 
> I agree. It's a FreeBSD-specific issue, it needs a FreeBSD-specific fix.
> 
Has anyone approached the vendor about working with them to supply a
NetBSD binary?  FreeBSD is hardly mainstream (though it has more presence
in data centers than NetBSD does); they might be willing, if some
developer were will to do the necessary legwork and builds, and was
willing to sign their NDA.

		--Steven M. Bellovin, http://www.cs.columbia.edu/~smb