C++ Wrapper and Namespace Renaming - C++ Wrapper and Namespace Renaming - 5.3 English - 57404

AOCL User Guide (57404)

Document ID
57404
Release Date
2026-05-13
Version
5.3 English

Recent updates address C++ header-level renaming gaps that were not always covered by ELF symbol replacement alone.

What is now handled

  • C++ namespace fallback rewrites in wrapper headers:

    • namespace blis<prefix>blis (for example, aocl_blis with prefix aocl_, or aoclblis with prefix aocl)

    • namespace libflame<prefix>libflame (for example, aocl_libflame with prefix aocl_, or aocllibflame with prefix aocl)

  • C++ wrapper identifier rewrites in selected wrapper headers:

    • blis.hh (for wrapper APIs such as rotg, gemm, etc.)

    • libflame_interface.hh (for wrapper APIs such as potrf, getrf, etc.)

  • API-family header rewrites for declarations/wrappers not present as concrete ELF symbols:

    • cblas_*, lapacke_*, blis_*, bli_*, da_*, aoclsparse_*

Safety rules applied during header rewrites

  • Function-like identifiers are rewritten only when they are callable tokens.

  • Type/callback-like identifiers (for example, DA callback typedef names such as *_t_*) are not rewritten.

  • std:: and C++ ABI/runtime symbols are excluded from mangled-symbol renaming.

  • Mangled C++ prefix token preserves caller intent for trailing underscore (for example, prefix aocl produces aoclfoo, while AOCL_ produces AOCL_foo).