2013-03-26 00:03:13 +02:00
|
|
|
/* Copyright (C) 2013 Monty Program Ab
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation; version 2 of the License.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
2019-05-11 22:19:05 +03:00
|
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */
|
2013-03-26 00:03:13 +02:00
|
|
|
|
|
|
|
/* Definitions for mysys/my_default.c */
|
|
|
|
|
|
|
|
#ifndef MY_DEFAULT_INCLUDED
|
|
|
|
#define MY_DEFAULT_INCLUDED
|
|
|
|
|
|
|
|
C_MODE_START
|
|
|
|
|
MDEV-22214 mariadbd.exe calls function mysqld.exe, and crashes
Stop linking plugins to the server executable on Windows.
Instead, extract whole server functionality into a large DLL, called
server.dll. Link both plugins, and small server "stub" exe to it.
This eliminates plugin dependency on the name of the server executable.
It also reduces the size of the packages (since tiny mysqld.exe
and mariadbd.exe are now both linked to one big DLL)
Also, simplify the functionality of exporing all symbols from selected
static libraries. Rely on WINDOWS_EXPORT_ALL_SYMBOLS, rather than old
self-backed solution.
fix compile error
replace GetProcAddress(GetModuleHandle(NULL), "variable_name")
for server exported data with actual variable names.
Runtime loading was never required,was error prone
, since symbols could be missing at runtime, and now it actually failed,
because we do not export symbols from executable anymore, but from a shared
library
This did require a MYSQL_PLUGIN_IMPORT decoration for the plugin,
but made the code more straightforward, and avoids missing symbols at
runtime (as mentioned before).
The audit plugin is still doing some dynamic loading, as it aims to work
cross-version. Now it won't work cross-version on Windows, as it already
uses some symbols that are *not* dynamically loaded, e.g fn_format
and those symbols now exported from server.dll , when earlier they were
exported by mysqld.exe
Windows, fixes for storage engine plugin loading
after various rebranding stuff
Create server.dll containing functionality of the whole server
make mariadbd.exe/mysqld.exe a stub that is only calling mysqld_main()
fix build
2020-04-10 14:09:18 +02:00
|
|
|
extern MYSQL_PLUGIN_IMPORT const char *my_defaults_extra_file;
|
2013-03-26 00:03:13 +02:00
|
|
|
extern const char *my_defaults_group_suffix;
|
MDEV-22214 mariadbd.exe calls function mysqld.exe, and crashes
Stop linking plugins to the server executable on Windows.
Instead, extract whole server functionality into a large DLL, called
server.dll. Link both plugins, and small server "stub" exe to it.
This eliminates plugin dependency on the name of the server executable.
It also reduces the size of the packages (since tiny mysqld.exe
and mariadbd.exe are now both linked to one big DLL)
Also, simplify the functionality of exporing all symbols from selected
static libraries. Rely on WINDOWS_EXPORT_ALL_SYMBOLS, rather than old
self-backed solution.
fix compile error
replace GetProcAddress(GetModuleHandle(NULL), "variable_name")
for server exported data with actual variable names.
Runtime loading was never required,was error prone
, since symbols could be missing at runtime, and now it actually failed,
because we do not export symbols from executable anymore, but from a shared
library
This did require a MYSQL_PLUGIN_IMPORT decoration for the plugin,
but made the code more straightforward, and avoids missing symbols at
runtime (as mentioned before).
The audit plugin is still doing some dynamic loading, as it aims to work
cross-version. Now it won't work cross-version on Windows, as it already
uses some symbols that are *not* dynamically loaded, e.g fn_format
and those symbols now exported from server.dll , when earlier they were
exported by mysqld.exe
Windows, fixes for storage engine plugin loading
after various rebranding stuff
Create server.dll containing functionality of the whole server
make mariadbd.exe/mysqld.exe a stub that is only calling mysqld_main()
fix build
2020-04-10 14:09:18 +02:00
|
|
|
extern MYSQL_PLUGIN_IMPORT const char *my_defaults_file;
|
2019-09-29 14:48:11 +02:00
|
|
|
extern my_bool my_defaults_mark_files;
|
2013-03-26 00:03:13 +02:00
|
|
|
|
2019-10-12 21:21:50 +02:00
|
|
|
extern int get_defaults_options(char **argv);
|
2013-03-26 00:03:13 +02:00
|
|
|
extern int my_load_defaults(const char *conf_file, const char **groups,
|
|
|
|
int *argc, char ***argv, const char ***);
|
|
|
|
extern int load_defaults(const char *conf_file, const char **groups,
|
|
|
|
int *argc, char ***argv);
|
|
|
|
extern void free_defaults(char **argv);
|
|
|
|
extern void my_print_default_files(const char *conf_file);
|
|
|
|
extern void print_defaults(const char *conf_file, const char **groups);
|
|
|
|
|
2018-03-15 15:34:45 +04:00
|
|
|
|
|
|
|
/** Simplify load_defaults() common use */
|
|
|
|
#define load_defaults_or_exit(A, B, C, D) switch (load_defaults(A, B, C, D)) { \
|
|
|
|
case 0: break; \
|
|
|
|
case 4: my_end(0); exit(0); \
|
|
|
|
default: my_end(0); exit(1); }
|
|
|
|
|
2013-03-26 00:03:13 +02:00
|
|
|
C_MODE_END
|
|
|
|
|
|
|
|
#endif /* MY_DEFAULT_INCLUDED */
|