revamp sdt.h

Stan Cox scox@redhat.com
Wed Sep 8 15:44:00 GMT 2010


> semaphore feature.

Ah sorry about that; didn't realize you were seeking that kind of feedback. 
Interpreters, java in particular, tcl and perhaps python to a lesser degree 
use #ifdef IS_JAVA_PROBEA_ENABLED(), as I understand it, to avoid runtime 
probe argument setup overhead, so the semaphore feature was added to implement 
*ENABLED.

> The includes magic changes I made for the tests were done quite carefully,
> and I did test them (using runcheck but not installcheck), so I'm surprised
> you had issues I didn't see.  It's all rather subtle, so I think it's wise
> to discuss any such changes rather than just sweep them in.  (I suppose I
> should have done so.)  And, frankly, for anything that even might either be
> subtle or ever be important, commits with a log explanation of "Tweak it"
> are just inadequate.


> Those paths need to be exactly just right to have installcheck actually
> test the installed headers so we can know they got installed properly,
> which is its purpose.  For the runcheck case, they need to be differently
> exactly just right to have it find the right headers in the build and
> source directories and no others.  For both cases, it's important that they
> be found in an -isystem path so that -pedantic doesn't emit meaningless
> stupid warnings that there is no other way to suppress (until GCC is fixed).

What I missed initially when I ran with installcheck, which I caught later 
when hand compiling with gcc -v, was the systemtap.exp use of -isystem=${dir}. 
  For gcc 4.4.4 20100630 on FC13,  gcc tries to use an include directory 
called =/path/to/include/dir (with the '=') and then ignores it since it 
doesn't exist.  Offhand I would think that if --sysroot were not specified 
then gcc might just ignore '=', but it doesn't.  So systemtap.exp is now 
exactly what you had plus 1) add env to global 2) remove '=' from -isystem 
setup.  Hmm, good point about -pedantic.



More information about the Systemtap mailing list