delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-announce/2008/02/20/19:26:09

Message-Id: <200802210025.m1L0P6LE005029@delorie.com>
X-Authenticated: #27081556
X-Provags-ID: V01U2FsdGVkX1+74QIKqcq7rUw5nAtnYyCEgB0yx0y3J2Q8gI8vtz
KP/1VZJDeOVwSI
From: Juan Manuel Guerrero <juan DOT guerrero AT gmx DOT de>
To: djgpp-announce AT delorie DOT com
Subject: ANNOUNCE: release 4 of the DJGPP port of Splint 3.1.2
Date: Thu, 21 Feb 2008 00:44:18 +0100
X-Y-GMX-Trusted: 0

This is release 4 of the port of Splint 3.1.2 to MSDOS/DJGPP.

  Splint is a tool for statically checking C programs for security
  vulnerabilities and coding mistakes.


  DJGPP specific changes.
  =======================

   This is hopefully the last release of this port that defines the final state
   of the porting patch of the splint program that will be submitted to the
   splint maintainers.  The most important but not user visible difference is
   the writing from scratch of the DOS/DJGPP path style support for splint.
   The supported path syntax is restricted to the use
     - of mixed backslash and slash as directory separator character
     - of the semicolon as only allowed path separator character
     - of the /dev/env prefix to address the containt of environment
       variables at runtime
     - of the /dev/x prefix as replacement for the typical DOS driver
       specifier letter x:.
   Examples of allowed path syntax are:
    /dev/env/TMPDIR;/dev/env/TMP
    c:/foo\bar;d:\bar/foo;/dev/e/dir1\dir2
   The use of colon as path separartor character is *not* supported.

   This port uses a bug fixed version of the CVS version of fixpath.c that is
   stored in /djgpp/djdev204.p2.  That directory contains a diff file that shows
   the changes I have done against the CVS sources and a compiled version that
   must used to replace the one that comes with your libc.a from djdev204.
   To substitute the broken fixpath.o from your libc.a provided by djdev204.zip
   with this new one cd into the directory /splint-3.1-2/djgpp/djdev204.p2 and
   run the ar command from binutils like this:
     ar -rv /dev/env/DJDIR/lib/libc.a fixpath.o

   ATTENTION: It should be noticed that if you set the environment variable
   LARCHPATH, this sequence of paths **MUST** always be terminated with a
   semicolon.  The same applies to the INCLUDE environment variable.  This is
   not a result of the porting effort but is a peculiarity of Splint itself.
   This peculiar path syntax applies only to these two environment variables.
   I have asked at the splint mailing list if this is a bug or a feature but
   I have never get an answer so I have decide not to change this behaviour.
   E.g. if you want to replace the starting Splint command line like this:
     splint -I . -I c:\foo -I d:\bar test.c
   with this sequence:
     set INCLUDE=.;c:\foo;d:\bar
     splint test.c
   splint will always ignore the last directory, d:\bar in this case, because
   the INCLUDE environment variable has not been terminated with a trailing
   semicolon.  It must look like this:
     set INCLUDE=.;c:\foo;d:\bar;
   Note the trailing semicolon.  This is even true if only one *single* path is
   stored in the variable.  E.g.:
     splint -I c:\foo test.c
   can be replaced by:
     set INCLUDE=c:\foo;
     splint test.c


   These are user visible changes:
   - The required temporary files that are created during the processing of the
     source files are stored in a directory determinated by the environment
     variables TEMP, TMP or TMPDIR, in that order.  Before trying to use the
     directory that is pointed by one of the environment variables, Splint will
     check that that particular directory is really accessible.  If this is not
     the case the directory determinated by the value of P_tmpdir will be used
     as temporary directory.

   - The name of the special file "lex.yy.c" honoured depends of if LFN is
     available at run time or not.  If LFN support is available the file
     name "lex.yy.c" will be used.  If LFN is not available at run time the
     standard DOS name "lexyy.c" will be used instead.

   - The name of the configuration files honoured depends of if LFN is
     available at run time or not.  If LFN support is available the file
     name ".splintrc" and ".lclintrc" will be used.  If LFN is not available
     at run time "splint.rc" and "lclint.rc" will be used instead.  The files
     are expected to be stored in the $HOME directory or in the current
     working directory.

   - To avoid a name clash between the support libraries standard.lcd and
     standardstrict.lcd, the last one has been renamed to stdstrict.lcd.
     That name will be used no matter if LFN support is available or not.


   Because some functions like snprintf are not available on DJGPP 2.03, this
   port can only be compiled with DJGPP 2.04.  There will be no DJGPP 2.03
   version of this port.  To compile the sources you will need LFN support.
   If you decide to modify the different parsers you will need bison and flex.
   To avoid that the configuration process reflects the paths of my DJGPP
   installation tree in the default values for DEFAULT_LCLIMPORTDIR and
   DEFAULT_LARCHPATH, the distributed sources will not be preconfigured.
   To run the testsuite you will need diffutils.

   As usual all the changes to the sources are documented in the djgpp/diffs
   file.

   Please **read** the docs stored in /gnudocs/splint-3.1-2.

   Please note that I am not a splint user so I cannot give any assistance
   concerning the use of this program.  Please note also that the authors and
   maintainers of Splint are still not aware of any changes I have done to the
   sources, so you cannot expect assistance from them concerning the use of
   this port.  Every failure that may seen have it origen in file handling is
   very likely a bug in the port and must be reported to me and not to the
   splint maintainers.



   The port consists of the two packages that have been compiled using
   djdev204 and can be downloaded from ftp.delorie.com and mirrors as
   (timestamp 2008-02-20):

    Splint 3.1.2 binary, pdf, html and man format documentation:
    ftp://ftp.delorie.com/pub/djgpp/beta/v2tk/spl312br4.zip

    Splint 3.1.2 source:
    ftp://ftp.delorie.com/pub/djgpp/beta/v2tk/spl312sr4.zip



    Send splint specific bug reports to <splint-bug AT cs DOT virginia DOT edu>.
    Send suggestions and bug reports concerning the DJGPP port to
    comp.os.msdos.djgpp or <djgpp AT delorie DOT com>.


Happy testing.

        Guerrero, Juan Manuel <juan DOT guerrero AT gmx DOT de>

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019