[systemd-devel] [systemd-commits] 4 commits - catalog/systemd-fr.catalog catalog/systemd-ru.catalog configure.ac Makefile.am po/.gitignore po/LINGUAS po/ru.po

Lucas De Marchi lucas.de.marchi at gmail.com
Mon Dec 2 05:54:26 PST 2013


On Thu, Nov 28, 2013 at 11:39 PM, Lennart Poettering
<lennart at poettering.net> wrote:
> On Thu, 28.11.13 00:54, Zbigniew Jędrzejewski-Szmek (zbyszek at kemper.freedesktop.org) wrote:
>
>> commit f1a1264d13b31b9f5521f482d9a5a9d78da55efb
>> Author: Zbigniew J??drzejewski-Szmek <zbyszek at in.waw.pl>
>> Date:   Thu Nov 28 03:41:33 2013 -0500
>>
>>     build-sys: avoid warnings from assert_cc
>>
>> diff --git a/configure.ac b/configure.ac
>> index c0656f4..f1b00c5 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -128,7 +128,6 @@ CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
>>          -Wold-style-definition \
>>          -Wpointer-arith \
>>          -Winit-self \
>> -        -Wdeclaration-after-statement \
>>          -Wfloat-equal \
>>          -Wmissing-prototypes \
>>          -Wstrict-prototypes \
>>
>
> I reverted this bit. Newer GCC versions don't suffer by this problem,
> and I think the warning makes a lot of sense on those.
>
> Instead we should add some code to macro.h which turns off the the
> warning with the #pragma stuff only if it detects it is being run on an
> old gcc.
>
> I would have just added this on my own, but I can't test this, since my
> gcc is new enough to not need this.
>
> gcc 4.8.2 (which is what Fedora 20 is using) works fine. So I would
> suggest some ifdef check in macro.h that uses #pragma to globally turn
> off the warning if anything < 4.8.2 i used...

Actually with anything newer or equal to gcc 4.6 we should be using
_Static_assert that's C11. systemd already checks if "static_assert"
is defined, which should work fine. I'm not sure if it's being
disabled depending on the build options due to the check in assert.h
(in Arch i'm getting the C11 behavior):

#if defined __USE_ISOC11 && !defined __cplusplus
/* Static assertion.  Requires support in the compiler.  */
# undef static_assert
# define static_assert _Static_assert
#endif

In kmod I'm checking by _Static_assert availability in configure and
defining a slightly different assert_cc macro for older compilers,
which appears to not show any warnings there, too.

Lucas De Marchi


More information about the systemd-devel mailing list