* Bug: In <rds>, in rfmaccess.c viambkrds(), the holes of the BIGVIAs
are aligned on a design-wide matrix to allow two overlapping BIGVIAs
to have their holes exactly at the same places (one consequence is
that the holes of a BIGVIA may be off-center).
But, if the BIGVIA is "too small", that is, it's area cannot
accomodate at least one "on grid" hole, it silently replaced by a
default (i.e. minimal size VIA). In that case you may endup with
a mixture of BIGVIA (when the hole is aligned) and default VIA,
when it is not... The fun part, is that it is DRC correct, but
looks messy.
To avoid this, we systematically use the default VIA when the
side of the BIGVIA is less than two holes wide (in either direction).
Conflicts:
alliance/src/ocp/src/common/Makefile.am
alliance/src/ocp/src/placer/Makefile.am
alliance/src/ppt/src/Makefile.am
Devel was not started from the last master commit, have to
push back the changes again...
* Change: There was depency loop in Alliance libraries, mainly between
the database <mbk> and it's parsers/drivers (<mbkap>, <mbkvti>, ...).
This was not causing problems on systems that allows symbols to be
undefined when the library is built, but on others it prevents to
build at least dynamic libraries, for example under Cygwin.
Note: to reproduce this behavior under linux pass '-Wl,-z,-defs'
in the CFLAGS/CXXFLAGS.
Another side effect was to prevent parallel building (-jX).
* Change: <mbkvhdl> is redundant with <mbkvhdlg> which is newer, so
this library is suppressed.
* Change: mbk merged libraries, <mbkap>, <mbkvti> goest into Mpu.
<mbkedif>, <mbkal>, <mbkhilo>, <mbkmg>, <mbkspice>, <mbkmg>,
<mbkvhdlg> and <mbkvrlog> goes into Mlu.
* Change: rds merged libraries, <rdscif> and <rdsgds> goes into Rds.
All Rds sub-libraries are also mergeds into Rds.
* Change: vbh merged libraries, <vbl>, <vvh>, <vtl> & <vpd> goes into
Vbh.
* Change: pat merged libraries, <ppt> & <phl> goes into Pat.
* Change: in <asimut>, the Cst libraries is transferred into <beh> to
be merged with Beh.
* Bug: In <mbkvhdlg>, cast the hash table index entries from pointer
to unsigned long instead of long to avoid negative numbers when
computing the modulo (shows on Cygwin). This was causing <boog>
to crash.
* Bug: In <ppt>, with bison 2.7, yylval must not be re-declared extern
(didn't show on earlier versions).
* Change: In <ocp>, uses "-std=gnu++0x" instead of "-std=c++0x" to
have both C++11 features *and* POSIX features (namely: strdup).
The problem is that strdup is *not* ANSI, but only POSIX and as
such, not defined when c++0x is active. Will have to change
again in the future as gnu++0x is on the way of deprecation...
This commit is way too big. Next time split it tool by tool.
All tool sources have been checked with cppcheck & gcc. All correctables
errors/warning have been removed:
* Now uses correct conversion specifiers in printf(), mostly 'u' instead
of 'd' for unsigneds.
* In scanf(), uses systematically a maximum field width, 11 for int,
22 for long int and the appropriate length for char*.
* In strcpy(), no longer uses same array for source & dest, but uses
an intermediate array.
* Remove (or comment) unused variables.
* In C++ files, correct constructors attribute initialisation and
disable copy constructors.
* When possible, correct memory leaks. Some corrections would need a
more intimate knowledge of the source than I do.
* Removed some "gets()" calls.
* In parsers, undeclare yyunput & yyinput when necessary.
* NOT correct variable scope as it may clutter the code (my opinion).
Specific tools remark:
* In <asimut>, comment beginning with "FRAGILE" signals a very ugly
trick: structs passed as losig_list but with only the two first
fields identical.
* In <graal> & <dreal> for char used as table index, uses a cast toward
int, but in <xfsm>, <xgra>, <xsch> & <xvpn> simply declares the
variables int.
* In <cells>, dp_nmux_x1.ap, shrink the ALU2 part of the ALU3 terminals
so they do not collide with neighboring track. Has do to it manually
as Graal refuse to shrink them. The same correction must be done on
other cells for nero/kite dual compliance.
* Cleanup: Remove long time unused tools <pcbs>, <grog>, <gcp>, <genview>,
<growstk>, <ocr> and <vst2xnf>. They may still be recovered by
reverting to the original 'v5.1' tag.
* Change: In <attila>, remove the CVS checkout part and adapt to the
slightly different source tree organisation (alliance/alliance/src).
* Setup: Added .gitignore to exclude the files generated "in source" by
automake (when tools are built).
* New: Small script to perform a complete cppcheck on the whole source
tree.