unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (Debian-3.1)
Page:
Section:
Apropos / Subsearch:
optional field

GENKSYMS(8)                  Linux Module Support                  GENKSYMS(8)



NAME
       genksyms - generate symbol version information

SYNOPSIS
       genksyms [-wq] [-dD] [-V] [-k version] [-p string] [output directory]

DESCRIPTION
       Genksyms  reads  (on  standard input) the output from "gcc -E source.c"
       and generates a file containing version information.

       Depending on the output format indicated by the -k option,  the  output
       will either be written to a .ver file in the named output directory, or
       to the standard output.

       Genksyms normally looks for explicit symbol table  definitions  in  the
       source    file.     All   definitions   and   declarations   of   type-
       def, struct, union and enum will be saved for later  expansion.   Every
       global  symbol  will  also  be  saved, together with pointers that will
       enable a full expansion later on.

       When a symbol table is found in the source, the symbol will be expanded
       to  its  full definition, where all structs, unions, enums and typedefs
       will be expanded down to their basic  part,  recursively.   This  final
       string  will then be used as input to a CRC algorithm that will give an
       integer that will change as soon as any  of  the  included  definitions
       changes, for this symbol.

       The  version  information  in  the  kernel  normally  looks  like: sym-
       bol_R12345678, where 12345678 is the hexadecimal representation of  the
       CRC.

OPTIONS
       -d, --debug
              Output  debugging  information;  repeating this option increases
              the verbosity.  Debug level  1  generates  moderate  information
              about  the  actions  being  taken;  debug level 2 enables parser
              recognition output; debug level 3 enables lexical analysis  out-
              put.

       -D, --dump
              Dump  expanded  symbol definitions to stderr.  For debugging use
              only.

       -h, --help
              Display a summary of options and immediately exit.

       -k version, --kernel version
              Select the version of the kernel for which to  generate  output.
              Omitting  this  option  assumes a version below 2.1.0.  Versions
              below 2.1.18 use checksum version 1, and produce their output in
              the  directory  given  on the command line.  Versions 2.1.18 and
              above use checksum version 2 and produce their output on stdout.

       -p string, --prefix string
              Prepend the given string to the CRCs generated for all  symbols.
              This  is  intended  for use with, e.g., SMP kernels, wherein the
              modules are not compatible at a level below  that  described  by
              the  data  types.   This  is primarily caused by inline function
              expansions in the module code itself.

       -q, --quiet
              Quiet warnings, i.e. reverse the -w option.

       -V, --version
              Display the version of genksyms.

       -w, --warnings
              Enable warnings due to  unrecognized  syntax  and  declared  but
              undefined structures.  These warnings are normally suppressed.

SEE ALSO
       insmod(8), modprobe(8)

BUGS
       The -h option is broken; --help is fine.
       genksyms  [-V | --version]  should display version information and then
       exit immediately.  Instead,  it  prints  the  version  information  and
       behaves as if no options were given.

       Although  the  fix for this bug is trivial, it changes the behaviour of
       modutils.  Given the large number of distributions and scripts that run
       modutils  and  expect the current behaviour, any change of behaviour is
       unacceptable in 2.4.  Don't bother sending patches  for  this  bug,  it
       will not be fixed in 2.4, it should be fixed in 2.5.

HISTORY
       This  versioning  concept is a result from discussions, not at least on
       the KERNEL-channel, with a lot of people.

       The  genksyms  utility  was   created   in   1994   by   Bjorn   Ekwall
       <bj0rnATblox.se>  being  mostly  inspired by Jacques Gelinas <jack@solu-
       corp.ca> and Jeremy Fitzhardinge <jeremyATsuite.au>

       It was rewritten in 1996 by Richard Henderson to use a proper lexer and
       parser.



Linux                          February 12, 2003                   GENKSYMS(8)