just 'inline' was creating duplicate symbols (probably OK for C++ only). now using specific clang attribute always_inline, that fixed both linker errors (duplicate symbols) and compiler warnings (unused functions).