Hi all, (CC'ing dtrace-discuss as an FYI+workaround)
I'm using dtrace -h to define provider probes for my application, and it wraps the resulting probe provider definitions in an #if _DTRACE_VERSION. Everything works fine for cc/CC, but gcc/g++ (gccfss v4.2.0) doesn't seem to define it and the provider call macros expand to nothing instead. A diff shows that gcc uses an out of date version of the file; either the older version did not have the #define, or gcc's fixincludes script stripped the definition away. I suspect the former; how many other fixincludes headers are out of date? There's an easy workaround, at least: just add the definition to gcc's version of the file. $ diff /usr/include/sys/feature_test.h $GCC_INCLUDES/sys/feature_test.h 0a1,9 > /* DO NOT EDIT THIS FILE. > > It has been auto-edited by fixincludes from: > > "/usr/include/sys/feature_tests.h" > > This had to be done to correct non-standard usages in the > original, manufacturer supplied header file. */ > 2c11 < * Copyright 2007 Sun Microsystems, Inc. All rights reserved. --- > * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 9c18 < #pragma ident "@(#)feature_tests.h 1.25 07/02/02 SMI" --- > #pragma ident "@(#)feature_tests.h 1.24 04/09/28 SMI" 112c121 < #if (__STDC__ - 0 == 1 && !defined(__GNUC__)) || \ --- > #if ( defined(__STRICT_ANSI__) && !defined(__GNUC__)) || \ 365,370d373 < /* < * The following macro indicates header support for DTrace. The value is an < * integer that corresponds to the major version number for DTrace. < */ < #define _DTRACE_VERSION 1 < -- This message posted from opensolaris.org
