]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - docs/DISTRO_PORTING.md
tree-wide: avoid some loaded terms
[thirdparty/systemd.git] / docs / DISTRO_PORTING.md
index 0099a1334aed6473231a5abf087f1a173aa03374..2e4782f40197b4a8848ed057f5bebf115b264f7b 100644 (file)
@@ -1,5 +1,7 @@
 ---
 title: Porting systemd To New Distributions
+category: Concepts
+layout: default
 ---
 
 # Porting systemd To New Distributions
@@ -15,7 +17,6 @@ distribution:
    * `-Dsysvinit-path=`
    * `-Dsysvrcnd-path=`
    * `-Drc-local=`
-   * `-Dhalt-local=`
    * `-Dloadkeys-path=`
    * `-Dsetfont-path=`
    * `-Dtty-gid=`
@@ -31,6 +32,20 @@ distribution:
    print the initial transaction it would execute during boot-up.
    This will also inform you about ordering loops and suchlike.
 
+## Compilation options
+
+The default configuration does not enable any optimization or hardening
+options. This is suitable for development and testing, but not for end-user
+installations.
+
+For deployment, optimization (`-O2` or `-O3` compiler options), link time
+optimization (`-Db_lto=true` meson option), and hardening (e.g.
+`-D_FORTIFY_SOURCE=2`, `-fstack-protector-strong`, `-fstack-clash-protection`,
+`-fcf-protection`, `-pie` compiler options, and `-z relro`, `-z now`,
+`--as-needed` linker options) are recommended. The most appropriate set of
+options depends on the architecture and distribution specifics so no default is
+provided.
+
 ## NTP Pool
 
 By default, systemd-timesyncd uses the Google Public NTP servers