Robert Lor wrote:
> 2) Need help figuring out how to copy src/backend/util/probes.d from src
> tree to
>  bld tree at build time. It works fine if compilation is done in the src
> tree.

I have reworked your build rules so they look more like the idioms that we 
already use for other similar cases.  This should fix the troubles you 
describe and others.

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/
Index: src/backend/Makefile
===================================================================
RCS file: /cvsroot/pgsql/src/backend/Makefile,v
retrieving revision 1.127
diff -u -3 -p -r1.127 Makefile
--- src/backend/Makefile	26 Feb 2008 14:42:27 -0000	1.127
+++ src/backend/Makefile	27 Feb 2008 21:05:40 -0000
@@ -20,9 +20,11 @@ SUBDIRS = access bootstrap catalog parse
 
 include $(srcdir)/common.mk
 
+ifeq ($(PORTNAME), solaris)
 ifeq ($(enable_dtrace), yes)
 LOCALOBJS += utils/probes.o
 endif
+endif
 
 OBJS = $(SUBDIROBJS) $(LOCALOBJS) $(top_builddir)/src/port/libpgport_srv.a
 
@@ -122,6 +124,9 @@ $(srcdir)/parser/parse.h: parser/gram.y
 utils/fmgroids.h: utils/Gen_fmgrtab.sh $(top_srcdir)/src/include/catalog/pg_proc.h
 	$(MAKE) -C utils fmgroids.h
 
+utils/probes.h: utils/probes.d
+	$(MAKE) -C utils probes.h
+
 # Make symlinks for these headers in the include directory. That way
 # we can cut down on the -I options. Also, a symlink is automatically
 # up to date when we update the base file.
@@ -135,9 +140,15 @@ $(top_builddir)/src/include/utils/fmgroi
 	cd $(dir $@) && rm -f $(notdir $@) && \
 	    $(LN_S) ../../../$(subdir)/utils/fmgroids.h .
 
+$(top_builddir)/src/include/utils/probes.h: utils/probes.h
+	cd $(dir $@) && rm -f $(notdir $@) && \
+	    $(LN_S) ../../../$(subdir)/utils/probes.h .
 
+
+ifeq ($(PORTNAME), solaris)
 utils/probes.o: utils/probes.d $(SUBDIROBJS)
 	$(DTRACE) $(DTRACEFLAGS) -G -s $(call expand_subsys,$^) -o $@
+endif
 
 
 ##########################################################################
Index: src/backend/access/transam/xact.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/access/transam/xact.c,v
retrieving revision 1.257
diff -u -3 -p -r1.257 xact.c
--- src/backend/access/transam/xact.c	15 Jan 2008 18:56:59 -0000	1.257
+++ src/backend/access/transam/xact.c	27 Feb 2008 21:05:41 -0000
@@ -1479,7 +1479,7 @@ StartTransaction(void)
 	Assert(MyProc->backendId == vxid.backendId);
 	MyProc->lxid = vxid.localTransactionId;
 
-	PG_TRACE1(transaction__start, vxid.localTransactionId);
+	POSTGRESQL_TRANSACTION_START(vxid.localTransactionId);
 
 	/*
 	 * set transaction_timestamp() (a/k/a now()).  We want this to be the same
@@ -1604,7 +1604,7 @@ CommitTransaction(void)
 	 */
 	latestXid = RecordTransactionCommit();
 
-	PG_TRACE1(transaction__commit, MyProc->lxid);
+	POSTGRESQL_TRANSACTION_COMMIT(MyProc->lxid);
 
 	/*
 	 * Let others know about no transaction in progress by me. Note that this
@@ -1990,7 +1990,7 @@ AbortTransaction(void)
 	 */
 	latestXid = RecordTransactionAbort(false);
 
-	PG_TRACE1(transaction__abort, MyProc->lxid);
+	POSTGRESQL_TRANSACTION_ABORT(MyProc->lxid);
 
 	/*
 	 * Let others know about no transaction in progress by me. Note that this
Index: src/backend/storage/lmgr/lock.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v
retrieving revision 1.181
diff -u -3 -p -r1.181 lock.c
--- src/backend/storage/lmgr/lock.c	2 Feb 2008 22:26:17 -0000	1.181
+++ src/backend/storage/lmgr/lock.c	27 Feb 2008 21:05:41 -0000
@@ -787,11 +787,11 @@ LockAcquire(const LOCKTAG *locktag,
 		 * Sleep till someone wakes me up.
 		 */
 
-		PG_TRACE2(lock__startwait, locktag->locktag_field2, lockmode);
+		POSTGRESQL_LOCK_STARTWAIT(locktag->locktag_field2, lockmode);
 
 		WaitOnLock(locallock, owner);
 
-		PG_TRACE2(lock__endwait, locktag->locktag_field2, lockmode);
+		POSTGRESQL_LOCK_ENDWAIT(locktag->locktag_field2, lockmode);
 
 		/*
 		 * NOTE: do not do any material change of state between here and
Index: src/backend/storage/lmgr/lwlock.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/storage/lmgr/lwlock.c,v
retrieving revision 1.50
diff -u -3 -p -r1.50 lwlock.c
--- src/backend/storage/lmgr/lwlock.c	1 Jan 2008 19:45:52 -0000	1.50
+++ src/backend/storage/lmgr/lwlock.c	27 Feb 2008 21:05:41 -0000
@@ -447,7 +447,7 @@ LWLockAcquire(LWLockId lockid, LWLockMod
 		block_counts[lockid]++;
 #endif
 
-		PG_TRACE2(lwlock__startwait, lockid, mode);
+		POSTGRESQL_LWLOCK_STARTWAIT(lockid, mode);
 
 		for (;;)
 		{
@@ -458,7 +458,7 @@ LWLockAcquire(LWLockId lockid, LWLockMod
 			extraWaits++;
 		}
 
-		PG_TRACE2(lwlock__endwait, lockid, mode);
+		POSTGRESQL_LWLOCK_ENDWAIT(lockid, mode);
 
 		LOG_LWDEBUG("LWLockAcquire", lockid, "awakened");
 
@@ -469,7 +469,7 @@ LWLockAcquire(LWLockId lockid, LWLockMod
 	/* We are done updating shared state of the lock itself. */
 	SpinLockRelease(&lock->mutex);
 
-	PG_TRACE2(lwlock__acquire, lockid, mode);
+	POSTGRESQL_LWLOCK_ACQUIRE(lockid, mode);
 
 	/* Add lock to list of locks held by this backend */
 	held_lwlocks[num_held_lwlocks++] = lockid;
@@ -540,13 +540,13 @@ LWLockConditionalAcquire(LWLockId lockid
 		/* Failed to get lock, so release interrupt holdoff */
 		RESUME_INTERRUPTS();
 		LOG_LWDEBUG("LWLockConditionalAcquire", lockid, "failed");
-		PG_TRACE2(lwlock__condacquire__fail, lockid, mode);
+		POSTGRESQL_LWLOCK_CONDACQUIRE_FAIL(lockid, mode);
 	}
 	else
 	{
 		/* Add lock to list of locks held by this backend */
 		held_lwlocks[num_held_lwlocks++] = lockid;
-		PG_TRACE2(lwlock__condacquire, lockid, mode);
+		POSTGRESQL_LWLOCK_CONDACQUIRE(lockid, mode);
 	}
 
 	return !mustwait;
@@ -631,7 +631,7 @@ LWLockRelease(LWLockId lockid)
 	/* We are done updating shared state of the lock itself. */
 	SpinLockRelease(&lock->mutex);
 
-	PG_TRACE1(lwlock__release, lockid);
+	POSTGRESQL_LWLOCK_RELEASE(lockid);
 
 	/*
 	 * Awaken any waiters I removed from the queue.
Index: src/backend/utils/Makefile
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/Makefile,v
retrieving revision 1.26
diff -u -3 -p -r1.26 Makefile
--- src/backend/utils/Makefile	19 Feb 2008 10:30:08 -0000	1.26
+++ src/backend/utils/Makefile	27 Feb 2008 21:05:41 -0000
@@ -13,12 +13,22 @@ SUBDIRS     = adt cache error fmgr hash 
 
 include $(top_srcdir)/src/backend/common.mk
 
-all: fmgroids.h
+all: fmgroids.h probes.h
 
 $(SUBDIRS:%=%-recursive): fmgroids.h
 
 fmgroids.h fmgrtab.c: Gen_fmgrtab.sh $(top_srcdir)/src/include/catalog/pg_proc.h
 	AWK='$(AWK)' $(SHELL) $< $(top_srcdir)/src/include/catalog/pg_proc.h
 
+
+ifeq ($(enable_dtrace), yes)
+probes.h: probes.d
+	$(DTRACE) -h -s $< -o $@
+else
+probes.h: probes_null.h
+	$(LN_S) $< $@
+endif
+
+
 clean:
-	rm -f fmgroids.h fmgrtab.c
+	rm -f fmgroids.h fmgrtab.c probes.h
Index: src/include/Makefile
===================================================================
RCS file: /cvsroot/pgsql/src/include/Makefile,v
retrieving revision 1.23
diff -u -3 -p -r1.23 Makefile
--- src/include/Makefile	14 Oct 2007 17:07:51 -0000	1.23
+++ src/include/Makefile	27 Feb 2008 21:05:41 -0000
@@ -60,7 +60,7 @@ uninstall:
 
 
 clean:
-	rm -f utils/fmgroids.h parser/parse.h
+	rm -f utils/fmgroids.h parser/parse.h utils/probes.h
 
 distclean maintainer-clean: clean
 	rm -f pg_config.h dynloader.h pg_config_os.h stamp-h
Index: src/include/c.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/c.h,v
retrieving revision 1.223
diff -u -3 -p -r1.223 c.h
--- src/include/c.h	23 Feb 2008 19:11:45 -0000	1.223
+++ src/include/c.h	27 Feb 2008 21:05:41 -0000
@@ -57,7 +57,7 @@
 #include "pg_config_os.h"		/* must be before any system header files */
 #endif
 #include "postgres_ext.h"
-#include "pg_trace.h"
+#include "utils/probes.h"
 
 #if _MSC_VER >= 1400
 #define errcode __msvc_errcode
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to