aboutsummaryrefslogtreecommitdiffstats
path: root/doc/building
diff options
context:
space:
mode:
author1138-4EB <1138-4EB@users.noreply.github.com>2017-12-09 17:34:58 +0100
committertgingold <tgingold@users.noreply.github.com>2017-12-10 12:02:05 +0100
commit8e06c39ed8311aeb36696d9f964550407e1c556e (patch)
tree5c511441a8c0b2a9bb2f5732dd4284ed725ad24a /doc/building
parent08eb2bfc7144e7698cf570478d6a4e3e81aaf31a (diff)
downloadghdl-8e06c39ed8311aeb36696d9f964550407e1c556e.tar.gz
ghdl-8e06c39ed8311aeb36696d9f964550407e1c556e.tar.bz2
ghdl-8e06c39ed8311aeb36696d9f964550407e1c556e.zip
clean todos
Diffstat (limited to 'doc/building')
-rw-r--r--doc/building/Building.rst27
-rw-r--r--doc/building/Directories.rst21
-rw-r--r--doc/building/TestSuites.rst11
-rw-r--r--doc/building/gcc/GNULinux-GNAT.rst34
-rw-r--r--doc/building/gcc/index.rst33
-rw-r--r--doc/building/llvm/GNULinux-GNAT.rst14
-rw-r--r--doc/building/llvm/index.rst6
-rw-r--r--doc/building/mcode/index.rst2
8 files changed, 19 insertions, 129 deletions
diff --git a/doc/building/Building.rst b/doc/building/Building.rst
index a8d0e6908..f8f939c57 100644
--- a/doc/building/Building.rst
+++ b/doc/building/Building.rst
@@ -7,20 +7,12 @@ Building GHDL from Sources
GHDL can be downloaded as a `zip-file <https://github.com/tgingold/ghdl/archive/master.zip>`_
(latest 'master' branch) or cloned with ``git clone`` from GitHub. GitHub
-offers HTTPS and SSH as transfer protocols. See the :ref:`Download <GETTING:Download>`
+offers HTTPS and SSH as transfer protocols. See the :ref:`RELEASE:Sources`
page for further details. The installation directory is referred to as ``GHDLRoot``.
-+----------+-----------------------------------------------------------+
-| Protocol | Git Clone Command |
-+==========+===========================================================+
-| HTTPS | ``git clone https://github.com/tgingold/ghdl.git ghdl`` |
-+----------+-----------------------------------------------------------+
-| SSH | ``git clone ssh://git@github.com:tgingold/ghdl.git ghdl`` |
-+----------+-----------------------------------------------------------+
-
.. rubric:: Available back-ends
-GHDL currently supports three supported different back-ends (code generators):
+GHDL currently supports three different back-ends (code generators):
* mcode - built-in x86(or x86_64) code generator,
* `GCC - Gnu Compiler Collection <http://gcc.gnu.org/>`_, and
@@ -43,10 +35,10 @@ Here is a short comparison, so that you can choose the one you want to use:
| | * Generated code can be debugged (with ``-g``) | * Analysis can take time (particularly for large units) |
| | * Ported to many platforms (x86, x86_64, PowerPC, SPARC) | * Code coverage collection (``gcov``) is unique to GCC |
+----------------------------+----------------------------------------------------------------------------+---------------------------------------------------------+
-
+
.. toctree::
:hidden:
-
+
Directories
With mcode Backend <mcode/index>
With LLVM Backend <llvm/index>
@@ -69,14 +61,3 @@ created.
(32 or 64 bits). `GNAT GPL` can be downloaded anonymously from `libre.adacore.com <http://libre.adacore.com/tools/gnat-gpl-edition/>`_.
Then, untar and run the doinstall script. Alternatively, most GNU/Linux
provide a package named ``gcc-ada`` or ``gcc-gnat``.
-
-.. TODO::
-
- * @1138 Backtraces optional -patchable-
- * Very briefly, why is mcode faster for analysis and GCC/LLVM for simulation?
- * The only other dependency is zlib (On ubuntu/debian, install zlib1g-dev).
- * From :ghdlsharp:`279`:
- * GCC: GHDL generates an intermediate representation for GCC, which creates an executable. So GHDL acts a a new language frontend like C for the GCC and uses the existing backend to generated e.g. x86(-64) binary code.
- * LLVM: GHDL generates instructions for the LLVM abstract register machine, which then generates x86(-64) instructions for the host system.
- * mcode: GHDL generates the x86(-64) instructions in memory and executes the model.
- * gcc is currently only supported on Linux, because you need to compile a complete GCC from zero and add GHDL as a frontend into the GCC. Compiling the complete GCC suite plus GHDL takes a lot of time. I think it's not possible to finish the compile task in the bounds of a Travis-CI run.
diff --git a/doc/building/Directories.rst b/doc/building/Directories.rst
index 5a121ba55..36c0f2d9e 100644
--- a/doc/building/Directories.rst
+++ b/doc/building/Directories.rst
@@ -16,21 +16,21 @@ Directory Structure
computer. These are located in ``libraries/vendor``.
See Vendor Primitives <VendorPrimitives.html> for information on how to
use them.
-
+
* ``dist``: scripts and auxiliar files to build GHDL in different
environments:
-
+
* ``gcc``: header and configuration files to build GHDL with GCC (all the
platforms).
* ``linux``: build and test script written in shell, and other auxiliary
files used to i) launch docker containers and ii) automate multiple builds
in `Travis CI <https://travis-ci.org/>`_.
-
+
* ``windows``:
-
+
* ``mcode``:
- * ``appveyor``:
-
+ * ``appveyor``:
+
* ``doc``: `Markdown` and `reStructuredText` sources and auxiliary files to
build the documentation with `Sphinx <http://www.sphinx-doc.org>`_. Indeed,
`Read the docs <http://readthedocs.org>`_ (RTD) is used to automatically build
@@ -48,12 +48,3 @@ Directory Structure
(GNAT project file).
* Text files: ``COPYING.md``, ``NEWS.md`` and ``README.md``.
-
-
-.. TODO::
-
- - [@1138-4EB|@Paebbels] Replace link to VendorPrimitives, when the file is translated from md to rst.
-
- - [@Paebbels] Add brief description of how the content in dist/windows is ordered. From :ghdlsharp:`279`:
- - The content in dist/appveyor is for the AppVeyor flow. AppVeyor is a continuous integration service like Travis-CI, but is offers a Windows Server 2012 R2 machine. The AppVeyor flow has more scripts than the Travis-CI flow, so we put them into a separate directory.
- - The code in dist/windows/mcode is special code needed to build mcode in windows. mcode is supported on Linux (32/64-bit) and Windows (32-bit).
diff --git a/doc/building/TestSuites.rst b/doc/building/TestSuites.rst
deleted file mode 100644
index 609e98755..000000000
--- a/doc/building/TestSuites.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-.. _BUILD:testsuites:
-
-Test Suites
-===========
-
-.. TODO::
-
- * @1138 explain that there are two (maybe three with vhdl08 tests)
- * ``--expect-failure invert exit status``
- * ``--has-feature=X test presence of feature X``
- * ``--list-features display the list of features``
diff --git a/doc/building/gcc/GNULinux-GNAT.rst b/doc/building/gcc/GNULinux-GNAT.rst
index e35768fdb..3733d763f 100644
--- a/doc/building/gcc/GNULinux-GNAT.rst
+++ b/doc/building/gcc/GNULinux-GNAT.rst
@@ -17,42 +17,10 @@ On Linux, GHDL is configured by ``configure`` and build by ``make``.
.. rubric:: Example:
.. code-block:: Bash
-
+
cd <ghdl>
mkdir build
cd build
../configure --prefix=PREFIX
make
sudo make install
-
-.. TODO::
- - First configure GHDL, specify GCC source dir and :samp:`prefix` (replace :samp:`/usr/local` with your desired installation directory)::
-
- ./configure --with-gcc=/path/to/gcc/source/dir --prefix=/usr/local
-
- - Then, invoke :samp:`make` to copy GHDL sources in the source dir::
-
- make copy-sources
-
- .. HINT:: There are some dependencies for building GCC (:samp:`gmp`, :samp:`mpfr` and :samp:`mpc`). If you have not them installed on your system, you can either build them manually or use the :samp:`download_prerequisite` script provided in the GCC source tree (recommended): :samp:`cd /path/to/gcc/source/dir && ./contrib/download_prerequisites`
-
- - Then, configure GCC. The list of :samp:`--disable` configure options can be adjusted to your needs. GHDL does not require all these optional libraries and disabling them will speed-up the build::
-
- ../gcc-4.9.3/configure --prefix=/usr/local --enable-languages=c,vhdl \
- --disable-bootstrap --disable-lto --disable-multilib --disable-libssp \
- --disable-libgomp --disable-libquadmath ``.
-
- .. HINT:: Note that the prefix directory must be the same as the one used to configure GHDL. If you have manually built :samp:`gmp`/:samp:`mpfr`/:samp:`mpc` (without using the script in :samp:`contrib`) and if you have installed them in a non-standard directory, you may need to add :samp:`--with-gmp=GMP_INSTALL_DIR`.
-
- - Then, build and install GCC::
-
- make -j2 && make install
-
- .. HINT:: If you don't want to install :samp:`makeinfo`, do :samp:`make install MAKEINFO=false` instead.
-
- - Last, build and install GHDL libraries::
-
- cd /path/to/ghdl/source/dir
- make ghdllib
- make install
- \ No newline at end of file
diff --git a/doc/building/gcc/index.rst b/doc/building/gcc/index.rst
index 377392681..c17775e23 100644
--- a/doc/building/gcc/index.rst
+++ b/doc/building/gcc/index.rst
@@ -20,36 +20,3 @@ GCC Backend
GNU/Linux with GCC/GNAT <GNULinux-GNAT>
Windows with GCC/GNAT (MinGW) <Windows-MinGW-GNAT>
-
-
-
-.. TODO::
-
- - You need to download and untar the sources of GCC version 4.9.x, 5.x or 6.x
- - gcc object dir
- - Notes for developpers developping with the GCC backend: once GCC (with GHDL) has been built once, it is possible to work on the GHDL source tree without copying it in the GCC tree. Commands are::
-
- $ make ghdl1-gcc # Build the compiler
- $ make ghdl_gcc # Build the driver
- $ make libs.vhdl.local_gcc # Compile the vhdl libraries
- $ make grt-all # Build the GHDL runtime
- $ make grt.links # Locally install the GHDL runtime
-
-
-.. TODO:
-
- Note for ppc64 (and AIX ?) platform: the object file format contains an identifier for the source language. Because gcc doesn't know about the VHDL, gcc crashes very early. This could be fixed with a very simple change in gcc/config/rs6000/rs6000.c, function rs6000_output_function_epilogue (as of gcc 4.8):
-
- .. CODE:: C
-
- else if (! strcmp (language_string, "GNU Objective-C"))
- i = 14;
- else
- - gcc_unreachable ();
- + i = 0;
- fprintf (file, "%d,", i);
-
- /* 8 single bit fields: global linkage (not set for C extern linkage,
-
- Install file for the binary distribution of GHDL. The binary are installed in /usr/local directory. You cannot change this default location, unless you set links. You must be root to install this distribution. To install ghdl: `tar -C / -jxvf @TARFILE@.tar.bz2`. Note: you must also have a C compiler and zlib installed.
- \ No newline at end of file
diff --git a/doc/building/llvm/GNULinux-GNAT.rst b/doc/building/llvm/GNULinux-GNAT.rst
index b0f26b991..3733d763f 100644
--- a/doc/building/llvm/GNULinux-GNAT.rst
+++ b/doc/building/llvm/GNULinux-GNAT.rst
@@ -17,22 +17,10 @@ On Linux, GHDL is configured by ``configure`` and build by ``make``.
.. rubric:: Example:
.. code-block:: Bash
-
+
cd <ghdl>
mkdir build
cd build
../configure --prefix=PREFIX
make
sudo make install
-
-
-.. TODO::
- You need to install LLVM (usually depends on :samp:`libedit`, see :ghdlsharp`29`). The supported versions are 3.5 till 3.9, but debugging is only supported with LLVM 3.5.
-
- - First configure GHDL with the proper arg :samp:`./configure --with-llvm-config`. If :samp:`llvm-config` is not in your path, you can specify it: :samp:`./configure --with-llvm-config=LLVM_INSTALL/bin/llvm-config`.
-
- .. HINT::
- If you want to have stack backtraces on errors (like assert failure or index of out bounds), you need to configure and build :samp:`libbacktrace` from GCC (you don't need to configure GCC). Then add the following arg to configure: :samp:`--with-backtrace-lib=/path-to-gcc-build/libbacktrace/.libs/libbacktrace.a`
-
- - Then build with :samp:`make` and install with :samp:`make install`.
-
diff --git a/doc/building/llvm/index.rst b/doc/building/llvm/index.rst
index 4f60cd083..9f0bcc98a 100644
--- a/doc/building/llvm/index.rst
+++ b/doc/building/llvm/index.rst
@@ -11,11 +11,17 @@ LLVM Backend
* 3.5
* 3.8
+ * 3.9
+ * 4.0
+ * 5.0
* CLANG (Compiler front-end for LLVM)
* 3.5
* 3.8
+ * 3.9
+ * 4.0
+ * 5.0
.. rubric:: Supported platforms
diff --git a/doc/building/mcode/index.rst b/doc/building/mcode/index.rst
index 3dc80c2f9..7d850c4a3 100644
--- a/doc/building/mcode/index.rst
+++ b/doc/building/mcode/index.rst
@@ -1,6 +1,6 @@
.. _BUILD:mcode:
-Mcode Backend
+mcode Backend
#############
The mcode backend is available for all supported platforms and is also the most