eudev: only use pragma diagnostics if GCC supports it.
authorEric Le Bihan <eric.le.bihan.dev@free.fr>
Wed, 2 Apr 2014 14:42:26 +0000 (16:42 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 3 Apr 2014 19:33:07 +0000 (21:33 +0200)
commitb70dec3fedff9923f443cee2cd70b6f2318e63a2
tree5a501c4411b4d5de0043e1528f8afe788d745f19
parentbd573ccfbd301b58529b3ce1f8c99940eeb45a1f
eudev: only use pragma diagnostics if GCC supports it.

eudev uses GCC pragma diagnostics [1] for some of its logging functions,
to circumvent -Wformat-nonliteral. This feature is only available in GCC
>= 4.6.

The external toolchains for some architectures (PowerPC, SuperH) are based on
GCC 4.5. So eudev will not compile when using them.

systemd also uses the pragma diagnostics, but its dependency on Linux
headers >= 3.8 for the toolchain indirectly forces recent versions of
GCC.

This workaround enables the pragma diagnostics only when using GCC >= 4.6.
This means that if the user uses GCC 4.5 and explicitly sets the options
-Werror -Wformat-nonliteral, the build will fail...

[1] http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/eudev/eudev-0003-libudev-Only-use-pragma-for-ignoring-diagnostics-if-.patch [new file with mode: 0644]