Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Sep 2010 11:10:15 +0000 (UTC)
From:      Rui Paulo <rpaulo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r212358 - head/cddl/contrib/opensolaris/lib/libdtrace/common
Message-ID:  <201009091110.o89BAFFF071493@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009091110.o89BAFFF071493>