# General build options.
# FreeBSD: use clang++ by default, supports sanitizers, requires linking with -lrt
-# Cannot use -fno-rtti: apparently prevents exception handling from working properly.
+# Cannot use LTO with default linker.
CXX=clang++
-CXXOPTS=-std=c++11 -Os -Wall
+CXXOPTS=-std=c++11 -Os -Wall -fno-plt -fno-rtti
LDFLAGS=-lrt
BUILD_SHUTDOWN=no
SANITIZEOPTS=-fsanitize=address,undefined
+
+# Notes:
+# -fno-rtti (optional) : Dinit does not require C++ Run-time Type Information
+# -fno-plt (optional) : Recommended optimisation
+# -flto (optional) : Perform link-time optimisation
+# -fsanitize=address,undefined : Apply sanitizers (during unit tests)
+#
+# Old versions of FreeBSD had issues with -fno-plt/-fno-rtti.