diff options
author | Iain Sandoe <iain@sandoe.co.uk> | 2019-11-27 13:58:10 +0000 |
---|---|---|
committer | Iain Sandoe <iain@sandoe.co.uk> | 2020-12-24 10:08:42 +0000 |
commit | 662b9c55cf06d3df6682ef865fb2b685820317a9 (patch) | |
tree | 77c57d2f62a8f79a80dba61e66ebc6076b54f13b /gcc/config.in | |
parent | 168be2b3afddd41d4575ed55439231812bc3e7c9 (diff) | |
download | gcc-662b9c55cf06d3df6682ef865fb2b685820317a9.tar.gz |
C++ : Add the -stdlib= option.
This option allows the user to specifiy alternate C++ runtime libraries,
for example when a platform uses libc++ as the installed C++ runtime.
We introduce the command line option: -stdlib= which is the user-facing
mechanism to select the C++ runtime to be used when compiling and linking
code. This is the same option spelling as that used by clang to allow the
use of libstdc++.
The availability (and thus function) of the option are a configure-time
choice using the configuration control:
--with-gxx-libcxx-include-dir=
Specification of the path for the libc++ headers, enables the -stdlib=
option (using the path as given), default values are set when the path
is unconfigured.
If --with-gxx-libcxx-include-dir is given together with --with-sysroot=,
then we test to see if the include path starts with the sysroot and, if so,
record the sysroot-relative component as the local path. At runtime, we
prepend the sysroot that is actually active.
At link time, we use the C++ runtime in force and (if that is libc++) also
append the libc++abi ABI library. As for other cases, if a target sets the
name pointer for the ABI library to NULL the G++ driver will omit it from
the link line.
gcc/ChangeLog:
* configure.ac: Add gxx-libcxx-include-dir handled
in the same way as the regular cxx header directory.
* Makefile.in: Regenerated.
* config.in: Likewise.
* configure: Likewise.
* cppdefault.c: Pick up libc++ headers if the option
is enabled.
* cppdefault.h (struct default_include): Amend comments
to reflect the extended use of the cplusplus field.
* incpath.c (add_standard_paths): Allow for multiple
c++ header include path variants.
* doc/invoke.texi: Document the -stdlib= option.
gcc/c-family/ChangeLog:
* c.opt: Add -stdlib= option and enumerations for
libstdc++ and libc++.
gcc/cp/ChangeLog:
* g++spec.c (LIBCXX, LIBCXX_PROFILE, LIBCXX_STATIC): New.
(LIBCXXABI, LIBCXXABI_PROFILE, LIBCXXABI_STATIC): New.
(enum stdcxxlib_kind): New.
(lang_specific_driver): Allow selection amongst multiple
c++ runtime libraries.
Diffstat (limited to 'gcc/config.in')
-rw-r--r-- | gcc/config.in | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/config.in b/gcc/config.in index 216505abd2c..10a13cde586 100644 --- a/gcc/config.in +++ b/gcc/config.in @@ -240,6 +240,12 @@ standards-compatible mode on s390 targets. */ #undef ENABLE_S390_EXCESS_FLOAT_PRECISION +/* Define if the -stdlib= option should be enabled. */ +#ifndef USED_FOR_TARGET +#undef ENABLE_STDLIB_OPTION +#endif + + /* Define if you want all operations on trees (the basic data structure of the front ends) to be checked for dynamic type safety at runtime. This is moderately expensive. */ |