NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: bin/60642: dtrace(1): doesn't call preprocessor correctly



The following reply was made to PR bin/60642; it has been noted by GNATS.

From: RVP <rvp%SDF.ORG@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: bin/60642: dtrace(1): doesn't call preprocessor correctly
Date: Tue, 25 Aug 2026 13:25:09 +0000 (UTC)

 On Tue, 25 Aug 2026, wiz%NetBSD.org@localhost via gnats wrote:
 
 >> Description:
 > When compiling wip/modular-xorg-server with the (disabled-on-NetBSD)
 > dtrace option, you'll see
 >
 > [1/647] Generating 'dix/liblibxserver_dix.a.p/Xserver-dtrace.h'
 > FAILED: [code=1] dix/liblibxserver_dix.a.p/Xserver-dtrace.h
 > /usr/sbin/dtrace -h -s ../include/Xserver.d -o dix/liblibxserver_dix.a.p/Xserver-dtrace.h
 > dtrace: failed to compile script ../include/Xserver.d: "/usr/lib/dtrace/psinfo.d", line 46: syntax error near "u_int"
 >
 
 This is PR bin/58630 (and also toolchain/58682).
 
 > I've fixed this problem by removing psinfo.d from the NetBSD base system,
 > since it uses `u_int` and `struct proc` but nothing defines it.
 >
 
 Please put that back :)
 
 > dtrace: failed to compile script ../include/Xserver.d: line 26: invalid control directive: #ifdef
 >
 > The code is (after some comments):
 >
 > #ifdef __APPLE__
 > #define string char *
 > #define pid_t uint32_t
 > #define zoneid_t uint32_t
 > #elif defined(__FreeBSD__)
 > #define zoneid_t id_t
 > #else
 > #include <sys/types.h>
 > #endif
 >
 > Changing '#ifdef' to #if' doesn't fix this.
 >
 
 NetBSD defines an `id_t', like FreeBSD, so you can change that conditional to:
 
 ```
 #elif defined(__FreeBSD__) || defined(__NetBSD__)
 ```
 
 > I assume dtrace should call a c preprocessor to handle this, which
 > is why I chose the subject.
 >
 
 Add a `-C' to the dtrace command-line.
 
 -RVP
 



Home | Main Index | Thread Index | Old Index