Not in the (good) sense of making something that a fool won’t be able to break, but in the negative sense of something being a proof that you are a fool.
When I check bugs that seem far-fetched or silly or I cannot reproduce after a few tries, I have one very easy way to close the bug as invalid with a very low false positive ratio usually: I check the linker flags (
LDFLAGS). I don’t rule out bugs depending on the compiler flags usually, it takes a lot of bogus stuff for me to ignore your bug for that; I’m the first one to use excessive flags to test stuff and I rarely find them to be extremely bad behaving. But there is one thing I can see in
LDFLAGS that does taint the bugs as coming from an user with not enough clue.
I don’t want to insult anybody, but I do think that if you do that mistake, you seriously should think again about what you are doing.
The tainting flag is
--enable-new-dtags; yeah the same
--enable-new-dtags that I’ve blogged about almost three years ago in relation to the stupid hacks for “kdenewldflags USE flag”.
This is an interesting linker flag that does… nothing useful. Well, not exactly okay. It does usually enable some new tags for the
.dynamic section, in particular the
DT_RUNPATH that replaces
DT_RPATH for security reasons. But it doesn’t make any sense when using the Gentoo version of binutils: we force the new dtags on! Now if you were to have vanilla binutils installed I could understand your use of the flag, but given you shouldn’t be bothering us with bugs if you were using that (the vanilla USE flag is useful when reporting bugs upstream), it is a nice way to cut you out anyway.
Why do I use that has a “PEBKAC flag”, given it doesn’t do anything bad in particular? Indeed I have been told that the
ld man page still said (and for most users still say) that new dtags are disabled by default, and I actually went around to add a patch in the latest masked binutils to change the man and info pages reflecting this. My reasoning is that most people would have this flag in because it was spread around by people reading (without understanding) the above-noted KDE macro.
So almost all people who has
--enable-new-dtags in their
LDFLAGS variable are people who didn’t understand a bit what
LDFLAGS really is and just copied the list of entries out of a forum post, an uninformed blog, or maybe the old Gentoo Wiki. I don’t really want to care, if you cannot get that the flag is pointless, you don’t get your non-obvious bugs serviced by me.
A similar thing is up for those who have
-Wl,-O2 .. considering that the linker has no optimisation level beside the one.
Is this stated clearly enough?