The lastest tdb release uses _PUBLIC_ in its main header file so one cannot compile with unless _PUBLIC_ gets defined elsewhere.
See https://bugzilla.redhat.com/show_bug.cgi?id=1983011 for further details.
This bug was referenced in samba master:
Created attachment 16838 [details]
patch from master for v4-15
Thanks. Assigning to Jule for 4.15.next.
Why do we need this in 4.15?
(In reply to Stefan Metzmacher from comment #4)
The problem is fixed in tdb-1.4.5...