Commit graph

8 commits

Author SHA1 Message Date
Vladislav Vaintroub
462500edfd Workaround crash with dtraced shared libraries under GCC 3.4.6 on 32 bit Solaris.
Crash happens in dlopen() code when trying to load the library. Crash does not happen when library is 
not DTrace instrumented . Additionally, crash does not happen with default Solaris 10 GCC 3.4.3 and
it does not happen if main executable is instrumented.

So , just check for this specific situation (32 bit, GCC3.4.6 , Solaris) and disable Dtrace in shared libraries.
We have only single plugin so far that is instrumented (ha_example)
2010-02-25 17:31:31 +01:00
Vladislav Vaintroub
f8d896fca5 use systemtap on linux if installed, for dtrace functionality 2009-12-24 07:21:05 +01:00
Vladislav Vaintroub
826ecdb852 Dtrace on Solaris:
fix excessive relinking that results from rerunning
dtrace -G second time on the objects that come into 
static library. 
The reason for relinking is that dtrace -G changes 
timestamp for the object file, which in turn results
in re-archiving the mysys on next time make runs, 
which causes relinking of the whole mysql, because
everything depends on mysys.

The fix is to copy objects into temp before running 
dtrace -G in mysqld pre-build step. This way dtrace 
does not affect the object timestamp.
2009-12-13 05:42:26 +00:00
Vladislav Vaintroub
670fb75598 Introduce macro DTRACE_INSTRUMENT_STATIC_LIBS,to hide
the ugly Solaris dtrace workarounds
2009-12-11 18:33:00 +00:00
Vladislav Vaintroub
6454d6e2c6 Introduce a workaround for Solaris' inability to deal with dtrace in static libraries.
Rerun dtrace -G on all  objects that can contan dtrace probes (also objects that are
part of static libs) before linking mysqld to produce dtrace_probes_all.o and link 
dtrace_probes_all.o with mysqld

This ugly workaround was inspired by handling dtrace using autotools.
2009-12-11 15:51:39 +01:00
Vladislav Vaintroub
f7269ba0c7 fix build errors 2009-12-01 18:28:13 +00:00
Vladislav Vaintroub
12c7945b5b correctly specify working directory for dtrace_prelink. Also, generate _dtrace.o in the object directory 2009-11-11 12:51:44 +00:00
Vladislav Vaintroub
13cd7170cc WL#5161 : Cross-platform build with CMake 2009-11-09 12:32:48 +01:00