gtm_init(), gtm_ci() and gtm_cip() entry points for backward compatibility with GT.M
Final Release Note
Routines gtm_ci()
, gtm_cip()
, and gtm_init()
are available for C code to call M code providing upward compatibility to allow non-M applications using FIS GT.M to run unchanged with YottaDB. Previously, while YottaDB provided upward compatibility for M applications, non-M applications had to replace the calls with ydb_ci()
, ydb_cip()
, and ydb_init()
respectively. [#402 (closed)]
Description
Issue originally opened on github at https://github.com/YottaDB/YDB/issues/349). Issue content:
Please, consider reverting gtm_* symbols back. YottaDB without gtm_init and gtm_ci(p) symbols cannot be used as a replacement for embedded GT.M. If I'd like to support both GT.M and YottaDB installations as embedded databases, I have to create dynamically loaded drivers (one for GT.M, one for YottaDB - a specially compiled program with new version of gtmxc_types.h). From the user perspective there is no good reason for breaking ABI compatibility with GT.M's libgtmshr.so. In other words, the lack of ABI compatibility with GT.M's libgtmshr.so makes transition from GT.M to YottaDB harder in existing installations.
Draft Release Note
The routines gtm_init(), gtm_ci(), and gtm_cip() are again available for compatibility purposes. They were originally removed in favor of having a compiler #define that changed gtm_() references to ydb_() references. But there were some uses of these symbols, generally in constants fed to dlsym() and such, that the C preprocessor could not reach. Those uses failed with YottaDB. But with the symbols available again (with some minor wrapper overhead for some), YottaDB should have full compatibility with GT.M again.