Commit graph

3 commits

Author SHA1 Message Date
Narayanan V
bd441c4d60 WL#4380
1) Disabled abi_check rule for all compilers except gcc
2) restored the -dI option to retain the header information.

Makefile.am:
  1) changed all-local to depend on a configure variable
     that will be set based on if the compiler is gcc.
  2) restored the -dI option removed earlier since now
     only gcc is being used.
configure.in:
  Added a check to see if gcc is being used. If it is being
  used set the ABI_CHECK variable to the abi_check target.
include/mysql.h.pp:
  The .pp file is changed to correspond to the option
  -dI.
2008-08-08 14:30:05 +05:30
Narayanan V
3236c07b7f WL#4380
1) Remove solaris sparc specific output produced by the
   pre-processor in the .out files
2) Ensure compatibility of preprocessor options for solaris/sparc
   platform.

Makefile.am:
  1) Added a sed regular expression to remove output produced
     by the preprocessor in the solaris sparc platform
  2) Removed the -dI option from the preprocessor to enable
     solaris/sparc compatibility
include/mysql.h.pp:
  Since the -dI option has been removed from the preprocessor
  the .pp files will correspondingly change.
2008-08-06 23:43:37 +05:30
Narayanan V
72b74d5812 WL#4380
added a rule that use gcc to generate preprocessor output (gcc -E)
that can be then compared to a already generated output using 
the diff utility.

Ran make test on the repository to verify changes.



Makefile.am:
  Added a rule for checking that the abi/api has not changed.
  
  The following steps are followed in the rule in makefile.am
  
   1) Generate preprocessor output for the files that need to
      be tested for abi/api changes. use -nostdinc to prevent 
      generation of preprocessor output for system headers. This 
      results in messages in stderr saying that these headers 
      were not found. Redirect the stderr output to /dev/null 
      to prevent seeing these messages.
   2) sed the output to remove blank lines and lines that begin
      with # (The header information is retained to enable easy
      analysis of abi diffs at a later stage).
   3) diff the generated file and the canons (.pp files already in
      the repository).
   4) delete the .out file that is generated.
  
   If the diff fails, the generated file is not removed. This will
   be useful for analysis of ABI differences (e.g. using a visual
   diff tool).
  
   A ABI change that causes a build to fail will always be  
   accompanied by new canons (.out files). The .out files that
   are not removed will be replaced as the new .pp files.
  
   e.g. If include/mysql/plugin.h has an ABI change then this
   rule would leave a include/mysql/plugin.out file.
  
   A developer with a justified API change will then do a
   mv include/mysql/plugin.out include/mysql/plugin.pp to 
   replace the old canons with the new ones.
configure.in:
  1) Removed the part of the file that was icheck related.
  
  2) Added an entry for the configure variable DIFF
include/mysql.h.pp:
  The pre-processor output canon file for include/mysql.h
include/mysql/plugin.h.pp:
  The pre-processor output canon file for include/mysql/plugin.h
include/mysql_h.ic:
  since the icheck target has been removed, this file need
  no longer be present in the repository
sql/mysql_priv.h.pp:
  The pre-processor output canon file for sql/mysql_priv.h
2008-06-17 17:57:04 +05:30