missing system struct definitions during compilation files in /usr/lib/dtrace/ in local releng/10.1 build
Viktor Štujber
viktor.stujber at gmail.com
Mon Dec 8 15:39:48 UTC 2014
I was running releng/10.0 from 10-jul-2014 and dtrace was working fine.
I built/installed releng/10.1 from 07-dec-2014 and now when running
"dtrace -s anyfile", even an empty file, it prints the following errors:
dtrace: failed to compile script test.d: "/usr/lib/dtrace/tcp.d",
line 166: operator -> cannot be applied to a forward declaration: no
struct tcpcb definition is available
(same with io.d struct devstat and struct bio)
I tried a clean install of release/10.1 from the 12-nov-2014 iso file,
and it works fine there. There doesn't seem to have been any changes to
the branch since the release. I went through all the directories in /
and /usr, making sure there are no stale config/header/lib files, and
that the contents of all existing config/header files is identical to
the clean version (plusminus my custom changes). I also temporarily
moved the entire /usr/local tree to make sure its contents don't
interfere; did not help. Finally I tried just shoving the missing system
C header information into the D code, which might have worked, but after
the 5th time I got tired of it.
I would like to fix this problem without doing a full system reinstall.
However at this point I'm stuck. I don't know how to make the D compiler
built into dtrace to print diagnostic information about the build
process. I'm not even sure what exactly the compiler is trying to do -
does it parse the system C headers (possibly indicating an INCLUDE path
problem)? But I think I checked all the files... Maybe something went
wrong during buildworld and the executable itself is broken?
More information about the freebsd-dtrace
mailing list