diff options
author | 1138-4EB <1138-4EB@users.noreply.github.com> | 2017-12-09 17:34:58 +0100 |
---|---|---|
committer | tgingold <tgingold@users.noreply.github.com> | 2017-12-10 12:02:05 +0100 |
commit | 8e06c39ed8311aeb36696d9f964550407e1c556e (patch) | |
tree | 5c511441a8c0b2a9bb2f5732dd4284ed725ad24a /doc/building | |
parent | 08eb2bfc7144e7698cf570478d6a4e3e81aaf31a (diff) | |
download | ghdl-8e06c39ed8311aeb36696d9f964550407e1c556e.tar.gz ghdl-8e06c39ed8311aeb36696d9f964550407e1c556e.tar.bz2 ghdl-8e06c39ed8311aeb36696d9f964550407e1c556e.zip |
clean todos
Diffstat (limited to 'doc/building')
-rw-r--r-- | doc/building/Building.rst | 27 | ||||
-rw-r--r-- | doc/building/Directories.rst | 21 | ||||
-rw-r--r-- | doc/building/TestSuites.rst | 11 | ||||
-rw-r--r-- | doc/building/gcc/GNULinux-GNAT.rst | 34 | ||||
-rw-r--r-- | doc/building/gcc/index.rst | 33 | ||||
-rw-r--r-- | doc/building/llvm/GNULinux-GNAT.rst | 14 | ||||
-rw-r--r-- | doc/building/llvm/index.rst | 6 | ||||
-rw-r--r-- | doc/building/mcode/index.rst | 2 |
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 |