Edit report at http://bugs.php.net/bug.php?id=53338&edit=1
ID: 53338
User updated by: mike at harschsystems dot com
Reported by: mike at harschsystems dot com
Summary: DTrace build config broken by Rev 305329
Status: Open
Type: Bug
Package: Compile Failure
Operating System: Solaris and OS X
PHP Version: trunk-SVN-2010-11-18 (snap)
Block user comment: N
Private report: N
New Comment:
I can't seem to upload the patch file. Please refer to the patch file
contents
here:
http://pastebin.com/SZnvz3L0
Previous Comments:
------------------------------------------------------------------------
[2010-11-18 06:30:14] mike at harschsystems dot com
Description:
------------
The changes made in Rev 305329 break the --enable-dtrace configuration
option on
both Solaris and OS X.
The main problems I was able to identify are:
1.) The steps required to build DTrace-enabled binaries are different on
Solaris
and OS X (see references below). 305329 removed the platform check that
allowed
OS X to bypass the extra linking step required by Solaris (dtrace -G -s
...).
2.) The generation of the DTrace header file (zend_dtrace_gen.h via
'dtrace -h
...') was moved to Makefile (from configure) - this broke various
targets that
depended on the header file prior to it's generation (late in the
Makefile).
3.) A typo (I think) in the path variable used to generate the DTrace
targets
injected junk into the pathnames, breaking the build.
The included patch file "dtrace_build.patch" may be applied to Rev
305455 to
resolve these issues. It essentially re-enlists some of the
functionality that
existed prior to 305329. This has been tested on both OS X and
Solaris.
Examples of how to build DTrace USDT probes on Solaris, see:
http://dtrace.org/blogs/ahl/2006/05/08/user-land-tracing-gets-better-and-better/
and
http://blogs.sun.com/dap/entry/writing_a_dtrace_usdt_provider
For the relevant documentation on OS X, see the dtrace(1M) man page:
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/
man1/dtrace.1.html
Expected result:
----------------
--enable-dtrace should configure and build on platforms that have DTrace
(Solaris
and OS X - maybe FreeBSD?)
Actual result:
--------------
--enable-dtrace fails on both platforms for the reasons mentioned in the
Description section.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53338&edit=1