---
name: "hardened-c++"
section: "1"
platform: "linux"
package: "hardening-wrapper"
version: "2.6"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/hardened-c++"
---

# hardened-c++(1)

g++ wrapper to enforce hardening toolchain improvements

## NAME

hardened-c++ - g++ wrapper to enforce hardening toolchain improvements

## SYNOPSIS

**export DEB\_BUILD\_HARDENING=1**\

**g++** *...*

## DESCRIPTION

The **hardened-c++** wrapper is normally used by calling **g++** as usual when **DEB\_BUILD\_HARDENING** is set to 1. It will configure the necessary toolchain hardening features. By default, all features are enabled. If a given feature does not work correctly and needs to be disabled, the corresponding environment variables mentioned below can be set to 0.

## ENVIRONMENT

- DEB\_BUILD\_HARDENING=1

  Enable hardening features.

- DEB\_BUILD\_HARDENING\_DEBUG=1

  Print the full resulting g++ command line to STDERR before calling g++.

- DEB\_BUILD\_HARDENING\_OUTPUT=/some/path/debug.log

  Instead of using STDERR for debugging, redirect to the given path. Some builds are very sensitive to unexpected STDERR output.

- DEB\_BUILD\_HARDENING\_STACKPROTECTOR=0

  Disable stack overflow protection. See README.Debian for details.

- DEB\_BUILD\_HARDENING\_RELRO=0

  Disable read-only linker sections. See README.Debian for details.

- DEB\_BUILD\_HARDENING\_FORTIFY=0

  Don't fortify several standard functions. See README.Debian for details.

- DEB\_BUILD\_HARDENING\_PIE=0

  Don't build position independent executables. See README.Debian for details.

- DEB\_BUILD\_HARDENING\_FORMAT=0

  Disable unsafe format string usage errors. See README.Debian for details.

## NOTES

System-wide settings can be added to */etc/hardening-wrapper.conf*, one per line.

The real **g++** symlinks are renamed **g++.real**, and a diversion is registered with [**dpkg-divert**(1)](/dpkg-divert/1.md). Thus **hardened-c++**'s idea of the default **g++** is dictated by whatever package installed */usr/bin/g++*.

## SEE ALSO

[**hardened-ld**(1)](/hardened-ld/1.md) [**g++**(1)](/g++/1.md)
