mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
bug#27741: udf test fails on AIX < 5.3
problem #1: udf_example.so does not get built on AIX solution#1: build it yourself using cd sql; gcc -g -I ../include/ -I /usr/include/ -lpthread \ -shared -o udf_example.so udf_example.c; mv udf_example.so \ .libs/ problem#2 (the bug): udf_example fails because it does not recognize the variable LD_LIBRARY_PATH when doing dl_open(), it looks at LIBPATH solution#2: add the library path to LIBPATH problem#3: udf_example returns the wrong result length since it relies on strmov to return a pointer to the end of the string that it copies. On AIX builds, where m_string.h is not included (m_string defines a macro expanding strmov to stpcpy), there is a macro expanding strmov to strcpy, which returns a pointer to the first character. solution#3: define strmov as stpcpy. problem#4: #2 applies on hp-ux as well, but this platform looks at SHLIB_PATH solution#4: added the library path to SHLIB_PATH
This commit is contained in:
parent
bb089cea38
commit
3ee1651861
2 changed files with 13 additions and 1 deletions
|
@ -1784,6 +1784,17 @@ sub environment_setup () {
|
|||
split(':', $ENV{'DYLD_LIBRARY_PATH'}) : ());
|
||||
mtr_debug("DYLD_LIBRARY_PATH: $ENV{'DYLD_LIBRARY_PATH'}");
|
||||
|
||||
# The environment variable used for shared libs on AIX
|
||||
$ENV{'SHLIB_PATH'}= join(":", @ld_library_paths,
|
||||
$ENV{'SHLIB_PATH'} ?
|
||||
split(':', $ENV{'SHLIB_PATH'}) : ());
|
||||
mtr_debug("SHLIB_PATH: $ENV{'SHLIB_PATH'}");
|
||||
|
||||
# The environment variable used for shared libs on hp-ux
|
||||
$ENV{'LIBPATH'}= join(":", @ld_library_paths,
|
||||
$ENV{'LIBPATH'} ?
|
||||
split(':', $ENV{'LIBPATH'}) : ());
|
||||
mtr_debug("LIBPATH: $ENV{'LIBPATH'}");
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Also command lines in .opt files may contain env vars
|
||||
|
|
|
@ -130,7 +130,8 @@ typedef long long longlong;
|
|||
#include <m_string.h> /* To get strmov() */
|
||||
#else
|
||||
/* when compiled as standalone */
|
||||
#define strmov(a,b) strcpy(a,b)
|
||||
#include <string.h>
|
||||
#define strmov(a,b) stpcpy(a,b)
|
||||
#define bzero(a,b) memset(a,0,b)
|
||||
#define memcpy_fixed(a,b,c) memcpy(a,b,c)
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue