correctly if the compiler optimizes too clever.
This has happaned on HP-UX 11.23 (IA64) at optimization
level "+O2", causing bug#42213:
Check for "stack overrun" doesn't work, server crashes
Fix it by adding a pragma that prevents this optimization.
As a result, it should be safe to use "+O2" on this platform
(unless there is some other, optimizer-related, bug which
is just currently masked because we use resudec optimization).
There are some recursive targets that automake generates which reference
DIST_SUBDIRS. It's critical, then, for such subdirs to exist even if they
won't be built as part of SUBDIRS.
During a VPATH build, it is the configure script which creates the subdirs
(when it processes the AC_CONFIG_FILES() for each subdir's Makefile). If
autoconf doesn't create a subdir's Makefile, then the recursive make will fail
when it is unable to cd into that subdir.
This isn't a problem in non-VPATH builds, because the subdirs are all present
in the source tarball. So the problem only shows up during 'make distcheck',
which does a VPATH build.
The fix is to look, when configure is being created by autoconf, for any
plugin subdirectories. These are the dynamic subdirectories which need to be
handled specially. It's enough to tell autoconf to generate a Makefile for
any Makefile.am found in the plugin directory - all plugin subdirectories
using automake (i.e., listed in the plugin's DIST_SUBDIRS) will have a
Makefile.am.
This is done by calling 'find'. This means that 'find' must be in the PATH on
the host that is running autoconf. 'find' is NOT needed when calling
configure, so it is not an additional dependency for the user.
Finally, ha_ndbcluster.m4 had called AC_CONFIG_FILES() on all those subdir
Makefiles, but only when the plugin was actually being built. So it didn't
work in the case that NDB was not being built. All of those Makefiles have to
be removed from this static list, since the plugin machinery is now adding
them automatically. autoconf fails if a file is duplicated in
AC_CONFIG_FILES().
Modify plugins.m4 configuration framework so that plugins which are
not built still get added to the source distribution during make dist.
This came up now because we can only build ibmdb2i on i5/OS, and we
can't bootstrap our source dist on that platform. The solution is to
specify DIST_SUBDIRS containing all plugins, separate from SUBDIRS
which contains the plugins which are actually built.
This ibmdb2i code is from the ibmdb2i-ga3-src.zip file, with a patch
to plug.in to disable the plugin if the PASE environment isn't available.
Add #define HAVE_CHARSET_name in config-win.h for all character sets that MySQL
supports. Add comments to config/ac-macros/character_sets.m4 and config-win.h
so hopefully they will be updated in sync.
- Removed some copy/paste between debug and normal build in RPM spec
- Removed "mysql_upgrade_shell" from RPM build
- Removed use of "grep -q" in "configure.in", not portable
- Improved test to disable ABI check not to accidently run for icc
Other changes
- Added make file test targets 'test-bt-fast' and 'test-bt-debug-fast'
- Reenabled "jp" test suite run
"Dynamic plugins fail to load on FreeBSD"
ELF executables need to be linked using the -export-dynamic option to
ld(1) for symbols defined in the executable to become visible to dlsym().
Also, do not build plugins on an all-static build.
(compiler issue ?)
Problem:
Improper compile-time flags on AIX prevented use of files > 2 GB. This
resulted in Max_data_length being truncated to 2 GB by MyISAM code.
Solution:
Reverted large-file changes from the fix for bug10776. We need to define
_LARGE_FILES on AIX to have support for files > 2 GB.
Since _LARGE_FILE_API is incompatible with _LARGE_FILES and may be
automatically defined by including standards.h, we also need a
workaround to avoid this conflict.
Always include all sub directories in "make dist"
Removed incorrect comment
configure.in:
Unconditionally list make files in AC_CONFIG_FILES
Removed 'thread_dirs', it is not used
Minor cleanup
compile-dist:
Simplified the configure line needed for "make dist" to get it all
zlib.m4, ssl.m4:
Unconditionally list make files in AC_CONFIG_FILES
Makefile.am:
Removed DIST_SUBDIRS not needed
Don't copy soft links as files into source package
to find "ar" but if it cannot be found sets AR=false. This
leads to confusing failures during the build rather than at
configure time.
We have our own checks for ar, but as AR was already set
earlier by the libtool tests they were never exectuted.
Therefore, update the tests so that we catch any libtool
failures, and run AC_CHECK_PROG explicitly to ensure that we
see sensible output from configure prior to any potential
failure.
mysqld hasn't been built on AIX with ndb-everything in quite a while.
this allowed a variety of changes to be added that broke the AIX build
for both the GNU and IBM compilers (but the IBM suite in particular).
Changeset lets build to complete on AIX 5.2 for users of the GNU and
the IBM suite both. Tudo bem?
to "my_config.h". Not to pollute the top directory, and to get more control
over what is included. Made the include path for "libedit" pick up its own
"config.h" first.
Don't try determine stack direction at configure time
compiler_flag.m4:
Use AC_TRY_COMPILE and AC_TRY_LINK instead of AC_TRY_RUN where possible
misc.m4, configure.in:
Use fourth argument to AC_TRY_RUN, to be used in cross compilation
Don't try determine stack direction at configure time
Back port of include change and copyright from 5.1
Makefile.am, zlib.m4:
Use separate libtool convenience library for the bundled
zlib to embed into executables and shared libraries created,
and one to install into the pkglib directory
Only require the more recent zlibCompileFlags() when
building the server, client zlib don't need it.
Makefile.am:
Always build the bundled zlib static only
configure.in:
Look for dlopen() even if --with-mysqld-ldflags constains "-static",
as this is not the same as the flag to "ld", it just informs
"libtool" to link static with libraries created part of the build,
even if there exists shared versions.
make_binary_distribution.sh:
Real "mysqlmanager" executable might be in ".libs"