bin/84911: [patch] ndisgen can't cope with .sys-files that begins with a number

Fredrik Lindberg fli+freebsd at shapeshifter.se
Sun Aug 14 15:40:29 GMT 2005


>Number:         84911
>Category:       bin
>Synopsis:       [patch] ndisgen can't cope with .sys-files that begins with a number
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Aug 14 15:40:18 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Fredrik Lindberg
>Release:        FreeBSD 7.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD biocandy.shapeshifter.se 7.0-CURRENT FreeBSD 7.0-CURRENT #1: Tue Aug 2 19:27:22 CEST 2005 root at biocandy.shapeshifter.se:/usr/obj/usr/src/sys/BIOCANDY-CURRENT i386


	
>Description:
ndisgen uses the basename of the windows drivers .sys-file as an internal
identifier.
This identifier is used as variable names windrv_stub.c which is fine in
most cases, however it will fail to compile if the name of the .sys-file
begins with a number.

>How-To-Repeat:
Pass a .sys-file which begins with a number to ndisgen.

>Fix:
The following patch adds a ndis_ prefix to the affected variables 

Index: ndiscvt/ndiscvt.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/ndiscvt/ndiscvt.c,v
retrieving revision 1.11
diff -r1.11 ndiscvt.c
210c210
< 	    "objcopy --redefine-sym _binary_%s_start=%s_drv_data_start "
---
> 	    "objcopy --redefine-sym _binary_%s_start=ndis_%s_drv_data_start "
212c212
< 	    "--redefine-sym _binary_%s_end=%s_drv_data_end %s.o %s.o\n",
---
> 	    "--redefine-sym _binary_%s_end=ndis_%s_drv_data_end %s.o %s.o\n",
387c387
< 		    "\nextern unsigned char %s_drv_data_start[];\n",
---
> 		    "\nextern unsigned char ndis_%s_drv_data_start[];\n",
390c390
< 		    "%s_drv_data_start;\n\n", sysfile);
---
> 		    "ndis_%s_drv_data_start;\n\n", sysfile);
Index: ndiscvt/ndisgen.sh
===================================================================
RCS file: /home/ncvs/src/usr.sbin/ndiscvt/ndisgen.sh,v
retrieving revision 1.5
diff -r1.5 ndisgen.sh
417,419c417,419
< echo "	-DDRV_DATA_START=${SYSBASE}_drv_data_start \\"		>> ${MAKEFILE}
< echo "	-DDRV_NAME=${SYSBASE} \\"				>> ${MAKEFILE}
< echo "	-DDRV_DATA_END=${SYSBASE}_drv_data_end"			>> ${MAKEFILE}
---
> echo "	-DDRV_DATA_START=ndis_${SYSBASE}_drv_data_start \\"		>> ${MAKEFILE}
> echo "	-DDRV_NAME=ndis_${SYSBASE} \\"				>> ${MAKEFILE}
> echo "	-DDRV_DATA_END=ndis_${SYSBASE}_drv_data_end"			>> ${MAKEFILE}

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list