ROOT 6 -> Other Useful Pragma Statements

It has been found that ROOT 6 breaks backward compatibility with ROOT 5 with respect to Linkdef pragma statements.
A small example … CINT and ROOT 5 allow (“singular form”):
#pragma link off all [class|function|global|typedef];
while ROOT 6 dies with an error “possibly unimplemented pragma statement”.
It seems that ROOT 6 strictly expects (“plural form”):
#pragma link off all [classes|functions|globals];
and that “typedef” is NOT implemented at all (for backward compatibility, I would simply expect it to “quietly ignore” such a statement).
Note that the current “ROOT 6 User’s Guide -> Adding a Class -> Adding a Class with a Shared Library -> The LinkDef.h File -> Other Useful Pragma Statements” still advertises all these “singular form” Linkdef pragma statements in many places.

Dear Wile,

thanks for spotting this.
I’ll follow this up.


Just note also that CINT and ROOT 5 accept both, “singular form” and “plural form”, Linkdef pragma statements so it might be a good idea to implement the same in ROOT 6.