All USE Flags
-
ada - 1 package(s)
Build the Ada language (GNAT) frontend
-
algol68 - 1 package(s)
Build the Algol 68 frontend
-
babeltrace - 1 package(s)
Enable <pkg>dev-util/babeltrace</pkg> support
-
cet - 3 package(s)
Enable Intel Control-flow Enforcement Technology.
-
cobol - 1 package(s)
Enable support for the COBOL programming language
-
d - 1 package(s)
Enable support for the D programming language
-
debug - 1 package(s)
Enables GCC's 'checking' (assertions) facility.
For released GCCs:
* USE=debug sets --enable-checking=yes,extra,rtl
* USE=-debug sets --enable-checking=release
For unreleased GCCs:
* USE=debug sets --enable-checking=yes,extra,rtl
* USE=-debug sets --enable-checking=yes,extra
This adds checks to various compiler passes for integrity and input
validation. This can help catch possible miscompilations early as
well as latent bugs which could become real problems in future, but
at the cost of slower compile times when using GCC.
Unrelated to backtraces.
-
debuginfod - 2 package(s)
Enable debuginfod support via <pkg>dev-libs/elfutils</pkg> libdebuginfod
-
default-gold - 1 package(s)
Set ld to point to ld.gold instead of ld.bfd
-
default-stack-clash-protection - 1 package(s)
Build packages with stack clash protection on by default as
a hardening measure.
This enables -fstack-clash-protection by default which protects against
large memory allocations allowing stack smashing.
May cause slightly increased codesize, but modern compilers
have been adapted to optimize well for this case, as
this mitigation is now quite common.
See https://developers.redhat.com/blog/2020/05/22/stack-clash-mitigation-in-gcc-part-3
and https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt.
-
default-znow - 1 package(s)
Request full relocation on start from ld.so by default.
This sets the -z,now (BIND_NOW) flag by default on all linker invocations. By
resolving all dynamic symbols at application startup, parts of the program
can be made read-only as a hardening measure.
This is closely related to RELRO which is also separately
enabled by default.
In some applications with many unresolved symbols (heavily plugin based,
for example), startup time may be impacted.
-
doc - 1 package(s)
-
fixed-point - 1 package(s)
Enable fixed-point arithmetic support for MIPS targets in gcc (Warning: significantly increases compile time!)
-
go - 1 package(s)
Build the GCC Go language frontend.
-
gold - 1 package(s)
Build ld.gold linker
-
gprofng - 1 package(s)
Enable the next-generation gprofng profiler
-
graphite - 1 package(s)
Add support for the framework for loop optimizations based on a polyhedral intermediate representation
-
guile - 1 package(s)
-
hardened - 1 package(s)
-
ieee-long-double - 1 package(s)
Use accelerated 128-bit IEEE long double ABI (ppc64le only)
-
jit - 1 package(s)
Enable libgccjit so other applications can embed gcc for Just-In-Time compilation.
-
libgdiagnostics - 1 package(s)
Provide libgdiagnostics (https://gcc.gnu.org/wiki/libgdiagnostics). This also installs the 'sarif-replay' tool.
-
libssp - 1 package(s)
Build SSP support into a dedicated library rather than use the code in the C library (DO NOT ENABLE THIS IF YOU DON'T KNOW WHAT IT DOES)
-
lto - 1 package(s)
Build using Link Time Optimizations (LTO).
Note that GCC is always built with support for building
other programs with LTO. This USE flag is for whether
GCC itself is built and optimized with LTO.
-
lzma - 1 package(s)
Support lzma compression in ELF debug info
-
modula2 - 1 package(s)
Build the GCC Modula-2 language frontend.
-
multitarget - 2 package(s)
Adds support to binutils for cross compiling (does not work with gas)
-
nls - 2 package(s)
-
objc - 1 package(s)
Build support for the Objective C code language
-
objc++ - 1 package(s)
Build support for the Objective C++ language
-
objc-gc - 1 package(s)
Build support for the Objective C code language Garbage Collector
-
pgo - 2 package(s)
Build GCC using Profile Guided Optimization (PGO).
GCC will build itself and then analyze the just-built
binary and then rebuild itself using the data obtained
from analysis of codepaths taken.
It does not affect whether GCC itself supports PGO
when building other software.
This substantially increases the build time needed for
building GCC itself.
-
plugins - 1 package(s)
Enable plugin support in tools
-
python - 1 package(s)
Enable support for the new internal scripting language, as well as extended pretty printers
-
rocm - 1 package(s)
Enable support for AMD GPU debugging via <pkg>dev-libs/rocdbgapi</pkg>
-
rust - 1 package(s)
Build support for the Rust language, installs gccrs.
-
sanitize - 1 package(s)
Build support for various sanitizer functions (ASAN/TSAN/etc...)
to find runtime problems in applications.
-
server - 1 package(s)
Install the "gdbserver" program (useful for embedded/remote targets)
-
sim - 1 package(s)
Build gdb's simulators for various hardware platforms. See https://sourceware.org/gdb/wiki/Sim.
-
source-highlight - 1 package(s)
Enable listing highlighting via <pkg>dev-util/source-highlight</pkg>
-
ssp - 1 package(s)
Build packages with stack smashing protection on by default
-
static-libs - 1 package(s)
-
systemtap - 1 package(s)
Enable enhanced debugging hooks/interface via SystemTap static probe points
in libgcc and libstdc++.
Note that this isn't exclusive to SystemTap, despite the name. This provides
an interface which <pkg>dev-debug/gdb</pkg> optionally uses, see
https://sourceware.org/gdb/wiki/LinkerInterface and
https://sourceware.org/gdb/wiki/DistroAdvice#sys.2Fsdt.h_probes.
-
test - 2 package(s)
-
vanilla - 2 package(s)
-
vtv - 1 package(s)
Build support for virtual table verification (a C++ hardening feature).
This does not control whether GCC defaults to using VTV>
Note that actually using VTV breaks ABI and hence the whole
system must be built with -fvtable-verify.
-
xml - 1 package(s)
Support parsing XML data files needed (at least) for cpu features, memory maps, and syscall tracing
-
xxhash - 2 package(s)
Use <pkg>dev-libs/xxhash</pkg> for --build-id=xx support
-
zstd - 2 package(s)