- when finding out a way to hide symbols, make decision basing
on compiler, not operating system.
- Sun Studio supports __hidden declaration specifier for this
purpose.
It used to be declared as ulint, which is 32/64 bit integer depending on OS bitness.
However this declaration lead to problems with os_compare_and_swap_thread_id
implementation which operated on 32 bit integers (InterlockedCompareExchange)
Using 64 bit int lead to wrong result in os_compare_and_swap_thread_id
and to crash/assertion in rw_lock_set_writer_id_and_recursion_flag()
The fix is to use 4 byte integer to os_thread_id type definition.
zlib headers in wrong location.
Fixed by using path exported by zlib.m4 macro.
storage/innodb_plugin/Makefile.am:
Include zlib headers from a proper location.
Remove custom DLL loader code from innodb plugin code, use
symbols exported from mysqld.
storage/innodb_plugin/handler/ha_innodb.cc:
Remove a Win32 workaround for current_thd.
The original problem that innodb plugin used
value of TLS variable across DLL boundaries is
solved in MySQL server (current_thd is a function
not TLS variable now)
storage/innodb_plugin/handler/handler0alter.cc:
Remove custom delay loader
storage/innodb_plugin/handler/handler0vars.h:
Remove custom delay loader
storage/innodb_plugin/handler/i_s.cc:
Remove custom delay loader
storage/innodb_plugin/handler/win_delay_loader.cc:
Remove custom delay loader
storage/innodb_plugin/plug.in:
Remove commented out MYSQL_PLUGIN_STATIC,
CMake would not parse that correctly
The Innodb plugin 1.0.4 can be installed dynamically using the 'INSTALL PLUGIN' syntax
If mysqld is already statically linked with the inbuilt innodb, it is not possible to
install the innodb plugin 1.0.4 dynamically. Doing so would throw this error - Function
'innodb' already exists.
storage/innodb_plugin/Makefile.am:
Remove references of 'storage/innobase' and use $(srcdir) instead.
Renamed the dynamic plugin library name to 'ha_innodb_plugin' so
that it can be installed along with inbuilt plugin.
storage/innodb_plugin/Makefile.in:
Remove this file as it can be generated automatically by automake
using the Makefile.am
storage/innodb_plugin/handler/ha_innodb.cc:
Remove refernces to "storage/innobase" and the headers can be included directly.
Declare the plugin with the new name innodb_plugin
storage/innodb_plugin/plug.in:
Rename the plugin innobase as innodb_plugin