• Marko Mäkelä's avatar
    MDEV-20525 rocksdb debug compilation fails on Windows due to unresolved my_assert variable · b214264a
    Marko Mäkelä authored
    MYSQL_PLUGIN_IMPORT did not work correctly for the RocksDB helper library
    rocksdb_aux_lib, because that library was not compiled with
    -DMYSQL_DYNAMIC_PLUGIN.
    
    Fix DBUG such that it does not depend on exported data, only on functions
    (which do not need MYSQL_PLUGIN_IMPORT decoration)
    
    Use a "getter" function _db_my_assert() instead of DLL-exported variable.
    
    Also, reduce object code duplication by moving more of the DBUG_ASSERT
    logic inside the _db_my_assert() function, and add unlikely() and
    ATTRIBUTE_COLD hints to ensure that the 'assertion failed' code will
    be separated from the main control flow logic. Thus, the compiler can
    move the unlikely() code to the end of the compiled function, reachable
    via a forward conditional branch, which the processor's branch predictor
    could assume 'not taken'.
    b214264a
my_sys.h 42.1 KB