svn commit: r212358 -
head/cddl/contrib/opensolaris/lib/libdtrace/common
Rui Paulo
rpaulo at FreeBSD.org
Thu Sep 9 11:10:15 UTC 2010
Author: rpaulo
Date: Thu Sep 9 11:10:15 2010
New Revision: 212358
URL: http://svn.freebsd.org/changeset/base/212358
Log:
Don't clobber an existing target object file when doing the DTrace
linking process. This is needed because we change the source object
files and the second this dtrace -G is run, no probes will be found.
This hack allows us to build postgres with DTrace probes enabled. I'll
try to find a way to fix this without needing this hack.
Sponsored by: The FreeBSD Foundation
Modified:
head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Thu Sep 9 09:58:05 2010 (r212357)
+++ head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Thu Sep 9 11:10:15 2010 (r212358)
@@ -1616,6 +1616,18 @@ dtrace_program_link(dtrace_hdl_t *dtp, d
int eprobes = 0, ret = 0;
#if !defined(sun)
+ if (access(file, R_OK) == 0) {
+ fprintf(stderr, "dtrace: target object (%s) already exists. "
+ "Please remove the target\ndtrace: object and rebuild all "
+ "the source objects if you wish to run the DTrace\n"
+ "dtrace: linking process again\n", file);
+ /*
+ * Several build infrastructures run DTrace twice (e.g.
+ * postgres) and we don't want the build to fail. Return
+ * 0 here since this isn't really a fatal error.
+ */
+ return (0);
+ }
/* XXX Should get a temp file name here. */
snprintf(tfile, sizeof(tfile), "%s.tmp", file);
#endif
More information about the svn-src-all
mailing list