Edit report at http://bugs.php.net/bug.php?id=53338&edit=1
ID: 53338 Updated by: [email protected] Reported by: mike at harschsystems dot com Summary: DTrace build config broken by Rev 305329 Status: Assigned Type: Bug Package: Compile Failure Operating System: Solaris and OS X PHP Version: trunk-SVN-2010-11-18 (snap) Assigned To: jani Block user comment: N Private report: N New Comment: 1) So providerdesc.o is only build and linked with when under Solaris? 2) What in Makefile did depend on the header file before it was created? 3) I need the generated Makefile you got with current trunk (without your patch!) Previous Comments: ------------------------------------------------------------------------ [2010-11-18 09:44:09] [email protected] Me break, me fix. :) ------------------------------------------------------------------------ [2010-11-18 06:39:42] mike at harschsystems dot com I can't seem to upload the patch file. Please refer to the patch file contents here: http://pastebin.com/SZnvz3L0 ------------------------------------------------------------------------ [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
