Libvirt had a patch that attempted to do:
+#elif defined(SIOCSIFLLADDR) && defined(HAVE_STRUCT_IFREQ) && \
+ defined(HAVE_DECL_LINK_ADDR)
but which was not flagged by the syntax checker as suspicious
(all HAVE_DECL_* symbols defined by autoconf are always defined
after including <config.h>, although they are sometimes defined
as the value 0). Now that code is flagged until changed to:
+#elif defined(SIOCSIFLLADDR) && defined(HAVE_STRUCT_IFREQ) && \
+ HAVE_DECL_LINK_ADDR
* top/maint.mk (sc_prohibit_defined_have_decl_tests): Relax regex.
Signed-off-by: Eric Blake <eblake@redhat.com>
+2013-05-10 Eric Blake <eblake@redhat.com>
+
+ maint.mk: catch more abuse of HAVE_DECL in syntax-check
+ * top/maint.mk (sc_prohibit_defined_have_decl_tests): Relax regex.
+
2012-05-10 Stefano Lattarini <stefano.lattarini@gmail.com>
deps: require Automake >= 1.9.6 in generated Makefile fragments
$(_sc_search_regexp)
sc_prohibit_defined_have_decl_tests:
- @prohibit='#[ ]*if(n?def|.*\<defined)\>[ (]+HAVE_DECL_' \
+ @prohibit='(#[ ]*ifn?def|\<defined)\>[ (]+HAVE_DECL_' \
halt='HAVE_DECL macros are always defined' \
$(_sc_search_regexp)