Module Name: src
Committed By: joerg
Date: Wed Feb 24 21:11:35 UTC 2016
Modified Files:
src/external/cddl/osnet/dist/lib/libdtrace/common: dt_open.c
Log Message:
Make the default CPP path a list and check if they are access(2)able.
If no match is found, fallback to looking for cpp in PATH.
To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 \
src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c
diff -u src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.9 src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.10
--- src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c:1.9 Wed Feb 3 17:50:12 2016
+++ src/external/cddl/osnet/dist/lib/libdtrace/common/dt_open.c Wed Feb 24 21:11:34 2016
@@ -788,10 +788,10 @@ const dtrace_pattr_t _dtrace_prvdesc = {
};
#ifdef illumos
-const char *_dtrace_defcpp = "/usr/ccs/lib/cpp"; /* default cpp(1) to invoke */
+const char *_dtrace_defcpps[] = { "/usr/ccs/lib/cpp" }; /* default cpp(1) to invoke */
const char *_dtrace_defld = "/usr/ccs/bin/ld"; /* default ld(1) to invoke */
#else
-const char *_dtrace_defcpp = "cpp"; /* default cpp(1) to invoke */
+const char *_dtrace_defcpps[] = { "/usr/bin/cpp", "/usr/bin/clang-cpp" }; /* default cpp(1) to invoke */
const char *_dtrace_defld = "ld"; /* default ld(1) to invoke */
const char *_dtrace_defobjcopy = "objcopy"; /* default objcopy(1) to invoke */
#endif
@@ -1195,7 +1195,16 @@ alloc:
dtp->dt_provs = calloc(dtp->dt_provbuckets, sizeof (dt_provider_t *));
dt_proc_hash_create(dtp);
dtp->dt_vmax = DT_VERS_LATEST;
- dtp->dt_cpp_path = strdup(_dtrace_defcpp);
+ dtp->dt_cpp_path = NULL;
+ for (i = 0; i < (int)sizeof(_dtrace_defcpps) / sizeof(_dtrace_defcpps[0]); ++i) {
+ if (access(_dtrace_defcpps[i], X_OK) == 0) {
+ dtp->dt_cpp_path = strdup(_dtrace_defcpps[i]);
+ break;
+ }
+ }
+ if (dtp->dt_cpp_path == NULL)
+ dtp->dt_cpp_path = strdup("cpp");
+
dtp->dt_cpp_argv = malloc(sizeof (char *));
dtp->dt_cpp_argc = 1;
dtp->dt_cpp_args = 1;