Bug #77251 Windows binary doesn't have InnoDB symbols for install plugin
Submitted: 5 Jun 2015 5:36
Reporter: Yasufumi Kinoshita Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Server: Windows Severity:S4 (Feature request)
Version:5.7.7 OS:Windows
Assigned to: CPU Architecture:Any

[5 Jun 2015 5:36] Yasufumi Kinoshita
Description:
I tried to make the mysql plugin which refers InnoDB functions/variables/classes (e.g. new information_schema for InnoDB).
It seemed to work fine "except for Windows binary downloaded".
The mysqld.exe failed for the "INSTALL PLUGIN".

The reason is that the mysqld.exe doesn't have symbols of innobase.lib.
Today, InnoDB engine is always the part of mysqld.
Can the InnoDB symbols be exported also at mysqld.exe?

* I built also the mysqld.exe with InnoDB symbols and it succeeded to load the same plugin.

How to repeat:
Makes a mysql plugin to use InnoDB symbols directly.
(e.g. reference for global variables)

Suggested fix:
Add "innobase" also when generate the mysqld.def file for linker.

--- mysql-5.7.7-rc_orig/sql/CMakeLists.txt      2015-03-30 21:16:29 +0900
+++ mysql-5.7.7-rc/sql/CMakeLists.txt   2015-06-04 15:02:53 +0900
@@ -432,7 +432,7 @@
     # incremental appears to crash from time to time,if used with /DEF option
     SET_TARGET_PROPERTIES(mysqld PROPERTIES LINK_FLAGS "${mysqld_link_flags} /DEF:mysqld.def /INCREMENTAL:NO")

-    FOREACH (CORELIB sql binlog slave mysys mysys_ssl dbug strings binlogevents_static)
+    FOREACH (CORELIB sql binlog slave mysys mysys_ssl dbug strings binlogevents_static innobase)
       GET_TARGET_PROPERTY(LOC ${CORELIB} LOCATION)
       FILE(TO_NATIVE_PATH ${LOC} LOC)
       SET (LIB_LOCATIONS ${LIB_LOCATIONS} ${LOC})