62 Commits

Author SHA1 Message Date
Pat Bernardi
ed4b5cc982 Refine Clang compiler name
For consistency with the GCC compiler, use CLANG-* instead of CLANG_*. Also
fix references to CLANG-ASM and CLANG-C.
2023-03-21 11:54:05 -04:00
Sebastian Poeplau
18b64cd905 Add support for Clang cross compilers
Closes eng/gpr/gprconfig_kb#7.
2023-03-06 16:35:45 +01:00
Nicolas Boulenguez
28d01a4824 Fix g++ compiler driver in 117d8e8e 2022-07-18 09:58:27 +02:00
Jerome Guitton
5159380830 vx7: remove WRS C++ compilers from knowledge base
We only support these compilers when they are driven from Workbench.

Change-Id: Ie763b4d9d8328e557f1716e2d34902dcf73d01a5
TN: S219-033
2019-02-27 16:01:53 +01:00
Jerome Lambourg
00cbdd6a86 Add GNAT Pro C++ compiler for VxWorks targets.
Also fix the linker driver on VxWorks that is defined twice (with an
obsolete definition in linker.xml).

Change-Id: I6bb386a9d03aaddbe09d9d3a963166dc95656d9b
TN: R806-039
2018-11-26 13:24:41 +01:00
Arnaud Charlet
33d40b49f6 QB10-015 Initial support for GNAT LLVM toolchain
Add support for a generic 'llvm' target, for Ada, C, C++ to allow building
with GNAT LLVM and bootstrapping GNAT LLVM via clang/clang++ for the C and
C++ files.

Fix support for clang along the way: cannot share latest updates to use
cc1/cc1plus spec files.

Change-Id: I28db3a23d67dabf80a71f8c01a4599e37a1367e3
2018-06-11 16:44:50 +02:00
Fedor Rybin
6979ef3edb R213-036 treat compiler name as a regexp
Treat compiler name from configuration node as a regular
expression. If regexp is illegal, do not stop processing
the KB, instead skip corresponding <configuration> node
with a warning message.

Change-Id: Ie4c61a4023dc633e39928ceb3a3a1828d02429d7
2018-03-05 14:52:48 +01:00
Pascal Obry
8dbcd3506e Specify included dirs for C and C++.
A new configuration attribute Include_Switches_Via_Spec is added
and used to specify how included directories are specified to the
C or C++ compiler, so that the length of the command line is not
two long for the underlying compilers (cc1 and cc1plus).

Some code clean-up and refactoring.

For QC20-038.

Change-Id: I82e92bf66e964aacc7fb42f216c0475b543ef2d2
2018-02-06 15:26:24 +01:00
Nicolas Roche
d95872d248 Revert "Fix support for distributed compilation with -specs option."
This reverts commit 8fb442dd75.

Part of QC20-038

Change-Id: I2ab432d4661d61b17d4c916641b462d91dfffbb2
2018-02-06 08:15:17 +01:00
Vincent Celier
18a1119d80 Specify included dirs for C and C++.
A new configuration attribute Include_Switches_Via_Spec is added
and used to specify how included directories are specified to the
C or C++ compiler, so that the length of the command line is not
two long for the underlying compilers (cc1 and cc1plus).

Some code clean-up and refactoring.

For QC20-038.

Change-Id: I5c2ff1e1d212b37fcfc21c5be9307f5fd073ea00
2018-02-05 20:12:43 +01:00
Nicolas Roche
34410b095c Revert "Specify included dirs for C and C++ (QC20-038)"
This reverts commit 0d6ade1882.

Change-Id: I716e551154f9b3760bc76a7715a1de60cd04c8b9
2018-01-30 15:17:20 +01:00
Vincent Celier
7cfa3c74db Specify included dirs for C and C++ (QC20-038)
A new configuration attribute Include_Switches_Via_Spec is added
and used to specify how included directories are specified to the
C or C++ compiler, so that the length of the command line is not
two long for the underlying compilers (cc1 and cc1plus).

Change-Id: I9ce586e9b2fd3bef28ceef48979900a501f87409
2018-01-29 11:21:54 -08:00
Vasiliy Fofanov
a439d38be2 Default naming schemes for compiled languages. Part of Q320-035
Refactor the knowledge base to ensure that default naming schemes
for known compiled languages are always defined, even if a compiler
isn't found.

Change-Id: I235f87bcf0c0bd68a9b18a695b67bc3e2f943e2d
2017-04-28 12:14:34 +02:00
Jerome Guitton
aa9cf77fef Remove obsolete cross platforms
Discontinued platforms (MILS, leon-vx6, x86-vx653) are removed. Baselined
cross linuxes (WR Linux, ELinOS) are moved to baselined.xml.

Change-Id: Ieb9e7934b45d78118df24409c7b32d72f9c3fd23
TN: Q330-019
2017-04-12 19:47:32 +02:00
Vincent Celier
de2ea8c853 Delete .stderr and .stdout (Q131-014)
gprclean delete the .stderr and .stdout files for all languages

Change-Id: I53a5fe265cebafa684cee6bfb792531427e4501d
2017-01-31 15:32:13 -08:00
Joel Brobecker
7657e48e1f Add support for ppc64-vx7
For PA03-041.

Change-Id: Ib13931c018660e70cb4c55fb58ecb50117400a44
2016-10-03 23:59:27 +02:00
Vasiliy Fofanov
1c8e73bbcc Place PREFIX at the right place in the Driver name.
Change-Id: Ic0c626aaf8d95ec994463d7b3d825e20431e23f9
TN: PA03-023
2016-10-03 17:19:57 +02:00
Vincent Celier
e510409685 Clean binder generated object artifacts (P727-004)
Object artifacts created when the binder generated sources
are compiled are now cleaned by gprclean.
In addition, ".su" is added as a new object artifact extension.

Change-Id: I701d34d3a90e7f563cbb00608778ab2bf380bb4b
2016-07-27 22:55:15 +02:00
Vincent Celier
c563ca45c8 Response files during compilation (P215-047)
cpp.xml:
Add new attributes to support response files during compilation
2016-03-11 17:42:28 -08:00
Jerome Guitton
0fda9305cf gprconfig support for WRS compilers on 653 >= 2.4
WRS gcc -v or -dumpmachine have different results depending on the
version: on 2.3.0.1 and before, it would return powerpc-wrs-vxworksae;
on 2.4 and later it would return powerpc-wrs-vxworks. That (plus the
fact the e500v2 and ppc compilers use the same executables: ccppc and
c++ppc) makes us specify one compiler description per CPU. In each of
these descriptions, the target is hard-coded instead of being deduced
from cc${PREFIX} -v.

TN: O312-038

git-svn-id: svn+ssh://svn.eu.adacore.com/Dev/trunk/gprbuild@238877 936e1b1b-40f2-da11-902a-00137254ae57
2015-05-20 11:41:03 +00:00
Joel Brobecker
e9de0fe03f Do not compile C/C++ code with -DCPU=... on x86-vx7 anymore.
The CPU values used so far are actually wrong (it should be PENTIUM4),
but it turns out that the WRS GNU toolchain actually already defines CPU
correctly by default. So no need to pass it again.

For NB19-019.

git-svn-id: svn+ssh://svn.eu.adacore.com/Dev/trunk/gprbuild@234284 936e1b1b-40f2-da11-902a-00137254ae57
2014-11-19 15:04:28 +00:00
Joel Brobecker
1ecf52d903 e500v2-vx7: Compile C/C++ files with -te500v2 -mhard-float -mstrict-align
For NA31-049.

git-svn-id: svn+ssh://svn.eu.adacore.com/Dev/trunk/gprbuild@234071 936e1b1b-40f2-da11-902a-00137254ae57
2014-11-10 08:03:19 +00:00
Vincent Celier
4cd5661968 * c.xml:
Add ".stdout" and ".stderr" to Clean'Source_Artifact_Extensions ("C")

* cpp.xml:
Add ".stdout" and ".stderr" to Clean'Source_Artifact_Extensions ("C++")

* gnat.xml:
Add ".stdout" and ".stderr" to Clean'Source_Artifact_Extensions ("Ada")

* gprbuild-compilation-process.adb:
(Run): New String parameter Source, defaulted to the empty string.
 When Source is not empty and --complete-output has been specified,
 redirect standard output of the compiler to <source_file_name>.stdout
 and standard error to <source_file_name>.stderr.

* gprbuild-compile.adb:
(Print_Compilation_Outputs): New procedure. When --complete-output is
 specified, output the last standard output of the compilation to
 standard output and the last standard error to standard error, if they exist.
(Await_Compile): For results of compilations, call Print_Compilation_Outputs
(Compilation_Phase.Process_Project_Phase_1): If source is up to date,
 call Print_Compilation_Outputs.

* gprbuild-main.adb:
(Scan_Arg): New option --complete-output, allowed only on the command
 line and incompatible with option --distributed=.

Implements N718-026

"replay" facility for gprbuild




git-svn-id: svn+ssh://svn.eu.adacore.com/Dev/trunk/gprbuild@233198 936e1b1b-40f2-da11-902a-00137254ae57
2014-10-13 22:03:37 +00:00
Joel Brobecker
ede58c27b5 {arm,e500v2,ppc}-vx7/C++: Add compiler driver and leading switches
Followup on N807-028.

git-svn-id: svn+ssh://svn.eu.adacore.com/Dev/trunk/gprbuild@233194 936e1b1b-40f2-da11-902a-00137254ae57
2014-10-13 21:28:51 +00:00
Joel Brobecker
113bd34a20 Preliminary support for C++ on VxWorks 7.x targets.
For N807-028.

git-svn-id: svn+ssh://svn.eu.adacore.com/Dev/trunk/gprbuild@233004 936e1b1b-40f2-da11-902a-00137254ae57
2014-10-07 20:01:35 +00:00