Commit graph

10 commits

Author SHA1 Message Date
Michael Widenius
f900b65810 Merge of innodb_plugin for MySQL 5.1.53 with xtradb
Fixed compiler warnings in xtradb
Added back resetting of null bitmap but now in row_search_for_mysql()

storage/xtradb/row/row0sel.c:
  Added back resetting of null bitmap but now in row_search_for_mysql()
2010-11-25 15:11:37 +02:00
unknown
0de9a4abab MWL#74: Shared libmysqld.so library.
Switch makefiles to use libtool to build libmysqld.so, as well as all its
dependencies.

The previous MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS() declaration is removed,
as it does not work well with a libtool build. Instead, plugins that need it
can specify an alternate object in MYSQL_PLUGIN_STATIC() that will be used for
embedded library. The plugin must then take care itself of compiling the
special object for embedded, rebuilding the source files previously listed in
MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS() with @plugin_embedded_defs@ in
CFLAGS/CXXFLAGS. The extra target @XXX_embedded_static_target@ is available
for the special object, this will be empty when --without-embedded-server.

All in-tree plugins are changed to build their static targets with libtool.
Additional plugins that want to work with libmysqld.so will need to be
similarly modified to build with libtool (or otherwise provide an -fPIC
object). Dynamically loaded plugins are not affected.

The old libraries like libmysys.a, libmyisam.a and similar libraries, which
were installed by `make install` though this is of little use, are still built
and installed to not break package scripts etc. that expect them. These
libraries are kept static to avoid introducing new .so dependencies.

The patch also fixes a handfull of duplicate symbol linker errors, where we
included some object twice during linking; these for one reason or another did
not produce errors before but caused problems on some platforms with this
patch (eg. Mac OS X linker is more strict for shared objects).

This patch only does what is necessary to build libmysqld.so. There are some
more cleanups that are possible now that we are using libtool more fully,
which could done in subsequent patches (though we may not bother as we are
switching from autotools to CMake anyway):

 - In libmysql_r/, we should be able to just link libmysys.la etc, instead of
   symlinking and re-compiling sources into the directory.

 - In libmysql/, we can similarly avoid symlinking and recompiling sources if
   we instead build a libmysys_nothread.la library with appropriate CFLAGS and
   link that.

 - In sql/, we can build a separate target libmysql_int.la with appropriate
   CFLAGS for embedded and use that in libmysqld/ instead of symlinking
   sources.

 - libmysys.a, libmyisam.a and similar libraries could be installed as .so
   also to save on code size; or alternatively could be not installed at all.


client/Makefile.am:
  Updated for using libtool
config/ac-macros/plugins.m4:
  Replace MUSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS with mechanism for plugins
  to specify alternate object for embedded.
configure.in:
  Fix linking duplicate objects related to THREAD_LOBJECTS.
dbug/Makefile.am:
  Updated for using libtool
extra/Makefile.am:
  Fix relative paths.
libmysqld/Makefile.am:
  Build libmysqld.la using libtool
libmysqld/examples/Makefile.am:
  Updated to use libtool
mysys/Makefile.am:
  Updated to use libtool.
  Fix linking duplicate objects related to THREAD_LOBJECTS.
mysys/my_uuid.c:
  Fix conflicting global mutex name by making it static.
regex/Makefile.am:
  Updated to use libtool
sql/Makefile.am:
  Updated to use libtool
sql/item_func.cc:
  Fix conflicting mutex name.
sql/mysql_priv.h:
  Fix conflicting mutex name
sql/mysqld.cc:
  Fix conflicting mutex name.
  Add missing call of my_uuid_end().
storage/archive/Makefile.am:
  Updated to use libtool
storage/archive/plug.in:
  Updated to use libtool
storage/blackhole/Makefile.am:
  Updated to use libtool
storage/blackhole/plug.in:
  Updated to use libtool
storage/csv/Makefile.am:
  Updated to use libtool
storage/csv/plug.in:
  Updated to use libtool
storage/example/Makefile.am:
  Updated to use libtool
storage/federated/Makefile.am:
  Updated to use libtool
storage/federated/plug.in:
  Updated to use libtool
storage/federatedx/Makefile.am:
  Updated to use libtool
storage/federatedx/plug.in:
  Updated to use libtool
storage/heap/Makefile.am:
  Updated to use libtool
storage/heap/plug.in:
  Updated to use libtool
storage/innobase/Makefile.am:
  Updated to use libtool
storage/innobase/plug.in.disabled:
  Updated to use libtool
storage/innodb_plugin/Makefile.am:
  Updated to use libtool
storage/maria/CMakeLists.txt:
  Fix linking duplicate object in maria_dump_log, causes failure on Mac OS X
storage/maria/Makefile.am:
  Updated to use libtool
  Fix linking duplicate object in maria_dump_log, causes link failure on Mac OS X
storage/maria/ma_loghandler.c:
  Move maria_dump_log code to separate file to fix duplicate object link failures.
storage/maria/ma_loghandler.h:
  Move maria_dump_log code to separate file to fix duplicate object link failures.
storage/maria/maria_dump_log.c:
  Move maria_dump_log code to separate file to fix duplicate object link failures.
storage/maria/plug.in:
  Updated to use libtool
storage/myisam/Makefile.am:
  Updated to use libtool
storage/myisam/plug.in:
  Updated to use libtool
storage/myisammrg/Makefile.am:
  Updated to use libtool
storage/myisammrg/plug.in:
  Updated to use libtool
storage/pbxt/plug.in:
  Updated to use libtool
storage/pbxt/src/Makefile.am:
  Updated to use libtool
storage/xtradb/Makefile.am:
  Updated to use libtool
storage/xtradb/plug.in:
  Updated to use libtool
strings/Makefile.am:
  Updated to use libtool
unittest/unit.pl:
  Don't attempt to run libtool internal files as unit tests.
vio/Makefile.am:
  Updated to use libtool
2010-11-17 13:24:20 +01:00
unknown
3f1c763a94 Merge XtraDB from Percona-Server-5.1.47-11 into MariaDB. 2010-08-04 10:39:53 +02:00
Sergei Golubchik
1cd47ac79a ugly-ugly. $with_plugin_innobase was hard-coded in configure.in in 2010-06-10 19:35:18 +02:00
Sergei Golubchik
14e53d0668 allow federated and innodb_plugin to be built
storage/federated/Makefile.am:
  federated needs functions from mysys/string.c.
  mysqld does not use them, so they don't get into the binary.
storage/federated/plug.in:
  enable federated again.
  remove it from all configurations.
storage/federatedx/Makefile.am:
  federatedx is now called federatedx in configure
storage/federatedx/ha_federatedx.cc:
  federatedx is now called federatedx in configure
storage/federatedx/plug.in:
  federatedx is now called federatedx in configure
storage/innodb_plugin/plug.in:
  enable innodb plugin again.
  remove it from all configurations.
storage/xtradb/CMakeLists.txt:
  xtradb is now called xtradb in configure,
  and builds libxtradb.a and ha_xtradb.so
storage/xtradb/Makefile.am:
  xtradb is now called xtradb in configure,
  and builds libxtradb.a and ha_xtradb.so
storage/xtradb/handler/ha_innodb.cc:
  xtradb is now called xtradb in configure,
  and builds libxtradb.a and ha_xtradb.so
storage/xtradb/plug.in:
  xtradb is now called xtradb in configure,
  and builds libxtradb.a and ha_xtradb.so
2010-06-09 23:29:18 +02:00
unknown
13029651b5 Merge XtraDB 9 into MariaDB. 2010-01-15 16:58:25 +01:00
unknown
898f6f48b7 Merge XtraDB 8 into MariaDB. 2009-11-13 22:26:08 +01:00
Sergey Petrunya
3d60f05f98 MySQL 5.1 -> Maria 5.1 merge: Fix windows build
- Fix XtraDB to be built as a static library.

storage/xtradb/buf/buf0flu.c:
  Fix previous merge error (was harmless except for on win32)
storage/xtradb/plug.in:
  Make it sync with innobase/plug.in.disabled
2009-09-16 01:20:58 +04:00
unknown
8be051d703 XtraDB after-merge fix: Fix building from storage/xtradb/ instead of storage/innodb/
.bzrignore:
  XtraDB compiles innodb in storage/xtradb instead of storage/innobase
CMakeLists.txt:
  Take InnoDB code from storage/xtradb/ instead of storage/innobase/
libmysqld/CMakeLists.txt:
  Take InnoDB code from storage/xtradb/ instead of storage/innobase/
storage/innobase/plug.in.disabled:
  Disable building old InnoDB from storage/innobase/ directory.
  
  We will keep the files around to avoid getting merge conflicts for every MySQL upstream
  change to InnoDB.
storage/xtradb/CMakeLists.txt:
  Take InnoDB code from storage/xtradb/ instead of storage/innobase/
storage/xtradb/COPYING:
  Remove not needed file from XtraDB.
storage/xtradb/Makefile.am:
  Take InnoDB code from storage/xtradb/ instead of storage/innobase/
storage/xtradb/Makefile.in:
  Remove not needed file from XtraDB.
storage/xtradb/handler/ha_innodb.cc:
  Take InnoDB code from storage/xtradb/ instead of storage/innobase/
storage/xtradb/plug.in:
  Take InnoDB code from storage/xtradb/ instead of storage/innobase/
storage/xtradb/row/row0ins.c:
  Take InnoDB code from storage/xtradb/ instead of storage/innobase/
2009-06-09 14:21:26 +02:00
unknown
a6b7f71329 Import Percona XtraDB into the MariaDB source tree. 2009-06-09 13:16:11 +02:00