Subject: re: workaround for FreeBSD binary that hardcodes a device major (was: Re: CVS commit: src/sys/conf)
To: Emmanuel Dreyfus <manu@netbsd.org>
From: matthew green <mrg@eterna.com.au>
List: source-changes
Date: 09/24/2006 15:13:31
   
   [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.


.mrg.