cvs commit: src/usr.sbin/ndiscvt ndiscvt.c

Bill Paul wpaul at FreeBSD.org
Thu Dec 18 13:47:15 PST 2003


wpaul       2003/12/18 13:47:14 PST

  FreeBSD src repository

  Modified files:
    usr.sbin/ndiscvt     ndiscvt.c 
  Log:
  Make ndiscvt(8) emit the binary image array as inline assembly code rather
  than a char array. Emitting the data as a big char array works fine in
  the typical case, where a .sys file may be ~50K in size. Unfortunately,
  some .sys files can be several hundred Kbytes in size, or even several
  megabytes in size. One extreme case is the Intel centrino wireless
  driver, which is 2.4MB. This causes us to emit an ndis_driver_data.h
  file that's on the order of 15MB in size, and gcc consumes enormous
  amounts of virtual memory while trying to compile it. On my laptop,
  with 128MB of RAM and 256MB of swap space, gcc consumed all available
  VM and crashed without being able to compile if_ndis.o.
  
  By emitting the array as assembler, we bypass the C compiler and consume
  much less memory. I was able to easily test compile if_ndis.ko with the
  centrino driver on my laptop after this change.
  
  This is merely a convenience, and should not have any operational effect
  on the NDISulator itself.
  
  Revision  Changes    Path
  1.3       +16 -8     src/usr.sbin/ndiscvt/ndiscvt.c


More information about the cvs-src mailing list