What problem does it solve?
Developers working on stellar-core need to correctly modify the autotools-based build configuration—switching compilers, adjusting compile flags, or enabling sanitizer instrumentation—without breaking the build by editing generated files or misusing configure options.
Core Features & Use Cases
- Compiler and Flag Configuration: Switch between gcc and clang via CC/CXX variables, and adjust CXXFLAGS for optimization, debuginfo, or C++ standard library selection.
- Build Variant Control: Enable or disable build variants such as
--disable-tests and --disable-postgres to match development or shipping configurations.
- Diagnostic Instrumentation: Turn on compile-time sanitizers and checks including
--enable-asan, --enable-threadsanitizer, --enable-memcheck, --enable-undefinedcheck, --enable-extrachecks, and --enable-fuzz.
- Use Case: You want to run a thread sanitizer build to catch data races. Re-run
./configure --enable-threadsanitizer --enable-ccache --enable-sdfprefs from the top level, then do a clean build since object files will have stale content.
Quick Start
Reconfigure the stellar-core build to use gcc with address sanitizer enabled by running autogen.sh and configure with the appropriate flags.