Details:
* New: in <bootstrap>: add support for devtoolset-2 in ccb. Run the
cmake commands through 'scl', set shell environment variables
BOOST_INCLUDEDIR & BOOST_LIBRARYDIR and disable the default
system path search.
* Change: In various flex scanners add the %nounput to suppress
compiler warnings.
* Change: Little cleanup for g++ 4.8.1 as it's more strict.
* Change: In various top CMakeLists.txt, suppress extraneous '/'
after DESTDIR.
Project hierarchy reorganisation:
* With svn, we were doing a tool by tool checkout, suppressing the
whole repository hierarchy level.
* The tools were also grouped, inside one repository, into multiple
projects (<bootstrap>, <vlsisapd>, <coriolis>).
* We do not want to split up each tool into a separate repository,
given their tight integration (except for vlsisapd).
* We choose to simplify, and consider all tools in a svn repository
one project. Due to the way Git clone repositories, the directory
containing the project is now to be seen under "src/".
CMake modifications:
* Now that the <vlsisapd> and <bootstrap> projects are merged into
coriolis, modificate the top CMakeLists.txt of each tool to uses
only Coriolis (and bootstrap hard wired).
CCB compile script modifications:
* Uses the new source tree hierarchy, with the project directory
inserted.
* Remove (comment) all parts relateds to svn managment.
* Git is sufficiently simple so that we do not want to integrate
command shortcut into the script.
SVN cleanup:
* Remove the obsolete <chamsin> tool, that has become the full fledged
<chams> project long time ago.
- New: Added FreeBSD/Ubuntu patches from Otacilio De Araujo
(<otaciliodearaujo@gmail.com>).
* ./cumulus:
- Change: In placeandroute.py, raise ErrorMessages (from crlcore) instead
of deprecated strings.
- Change: In pyRouteCk, the clock grid now systematically covers the core
area instead of only the area where clock signals are useds. This is
to alleviate the constraint of alignement on the pvsseck pads (they
must be in direct regard of the clock grid).
- Bug: In placeandroute.py/createGrid(), VIAs of the big clock grid must
have the same width as the wires (12l). But due to the layer extension
the VIA side must be of 11l.
- Bug: In placeandroute.py/createGrid(), wires connecting cell clock pin
to the clock trunk must respect the preferred routing direction.
The only exception being when the wire is completly enclosed under
the trunk wire. This is for the obstacle stage of the detailed router.
- Change: For the setup_sysconfdir() boostrap/cmake macro uses the
CMAKE_INSTALL_PREFIX to guess where we are being installed.
Should be more reliable than any *_TOP environment variable.
- Bug: Uses correct Contact with for rings.
- Bug: Reorder import so that CRL is always imported first so that the
problem of duplicated type_info RTTI doesn't show.
- Change: New problem identified with the Python modules: each module seems
to be built as a complete binary, so all the static C++ initializers are
allocated in each module. In particular the C++ tree inheritance is built
for *each* module so we cannot longer uses the typeid() comparisons
across modules... It was used by boost::program_options to perform is
casts with boost::any and was starting throwing exceptions because of
bad casts. program_option was first initialized in "configuration"
first included by PyViewer then in PyCRL (see Utilities.cpp).
A first solution is to re-order the import of Python modules in
stratus1/st_model so that CRL is imported first.
The second is to not not link "configuration" with boost::program_option
as only the binary vlsisapd-conf-editor needs it.
That is a serious problem of which we must be aware and can cause further
strange behaviors.
Debug code used to diagnostic has been kept commented in the sources a
it may be needed again :-(
This behavior do not affect our singletons because they are part of
dynamic libraries that seems to be correctly shared between the various
Python modules.
* ./stratus1,
./cumulus:
- Change: Replace calls to CRL.getAllianceFramework() by CRL.AllianceFramework.get().