r12996 added an AH_BOTTOM block defining every legacy symbol to 0 when
configure did not probe it, reproducing the pre-2026 header's contract that
EVERY symbol is defined (0 or 1). That contract is what made '#ifdef HAVE_X'
true even where X was 0 -- a defect, not a feature. Aubit code tests these
with '#if HAVE_X', where an undefined symbol already evaluates to 0, so the
fallbacks were unnecessary for all but seven symbols:
- RTLD_LAZY, RTLD_NOW, DL_LAZY, DL_NOW are dlfcn.h system macros, not
configure symbols. Defining them 0 was a redefinition hazard that only
worked because dlfcn.h's own #define won. They now come from the system:
LT_DLLAZY_OR_NOW still resolves to RTLD_LAZY (0x00001) as before.
- CAN_DLOPEN_SELF and NEED_DL_UNDERSCORE are already self-defaulted by
compilers/pcode/runner_calls.c (which carries a comment noting configure
should have set them). The header forced CAN_DLOPEN_SELF to 0; the code's
own default of 1 is correct here and the symbol is never read. Four of
these sites were in vendored libltdl/ltdl.c, which includes its own
config.h and never saw our header.
- HAVE_LIBQRENCODE_ENCODEMASK guarded an inverted test: QRcode_encodeInput()
under '#ifdef ..._ENCODEMASK' and QRcode_encodeMask() in the #else. The
fallback made that #ifdef always true, so the #else was dead -- had
configure ever failed to find QRcode_encodeMask, the code would have
called precisely that missing function. Now guards on the symbol that can
actually be absent. (Untested at runtime: libqrencode is not installed
here, so '#if HAVE_LIBQRENCODE' is 0 and the block does not compile.)
Also: three AC_DEFINEs in m4/aubit_sql.m4 passed an empty description, so
autoheader generated no template for them and they could never have been
defined. The fallback block had been masking that; autoheader now fails
loudly on it. Descriptions added.
configure.ac 831 -> 412 lines; the header template 771 -> 360 lines with 116
#undef entries and no fallbacks.
Verified: fresh checkout + ./configure && make builds clean and produces a
plugin set byte-size identical to the previous build (61/61), as are
libaubit4gl.so.1.6.3 and bin/xgen. runner_calls.c (not part of the default
build) compiles standalone with the dlopen flags resolving as before.
Rebuilt working tree passes all 17 regression checks.