HI,

On 29 August 2016 at 23:03, David Sommerseth
<open...@sf.lists.topphemmelig.net> wrote:
> On 29/08/16 22:45, David Sommerseth wrote:
>> On 28/08/16 21:42, Steffan Karger wrote:
>>> Previously, we would use the compiler's default C version, which
>>> defaults to gnu89 for GCC < 5, gnu11 for GCC > 5, and c11 for
>>> clang, but might even differ per distro.
>>
>>> One of the reasons to accept the gnu89 default of GCC < 4.9, was
>>> that MSVC didn't support c99.  But in MSVC 2015, MS finanally
>>> fixed that.
>>
>>> Having to support c89 in the codebase occasionally forces us to
>>> write less readable code, for example by forcing all declaration
>>> to be at the starting of a block (which includes 'for loop
>>> initial declarations').
>>
>>> Let's be clear about what standard we obey, and stop punishing
>>> ourselves with c89/gnu89.  Let's switch the master branch to
>>> c99.
>>
>>> Signed-off-by: Steffan Karger <stef...@karger.me> ---
>>> configure.ac | 1 + 1 file changed, 1 insertion(+)
>>
>>> diff --git a/configure.ac b/configure.ac index 9189c94..16cab19
>>> 100644 --- a/configure.ac +++ b/configure.ac @@ -1125,6 +1125,7
>>> @@ if test "${enable_pkcs11}" = "yes"; then ) fi
>>
>>> +CFLAGS="${CFLAGS} -std=c99" if test "${enable_pedantic}" =
>>> "yes"; then enable_strict="yes" CFLAGS="${CFLAGS} -pedantic"
>>
>>
>> I so much wants to give this an ACK.  But this breaks CentOS 5
>> builds very badly.  The glibc-headers isn't prepared for C99 on
>> that distro.
>>
>> I took the latest git master where I could do a successful build.
>> Then I applied just this patch, and here is the explosion:
>> <http://paste.fedoraproject.org/417049/14725031/>
>>
>> To move towards C99, we need to add some tricks which makes this
>> not requiring users to overwrite C99 with C89.  That should happen
>> automatically.
>>
>> Some CentOS 5.11 details: glibc-2.5-123.el5_11.3
>> glibc-headers-2.5-123.el5_11.3 gcc-4.1.2-55.el5
>> openssl-0.9.8e-40.el5_11 lzo-2.02-2.el5.1
>
> Did a bit more testing.
>
>  -std=gnu89, -std=gnu99
>    Works very fine (compiles without errors).
>
>  -std=c99
>    Makes glibc-headers explode, as already described
>
>  -std=c89
>    Makes the LZ4 library we're shipping explode.

Hm, that's too bad.  But I think we should still go for c99, rather
than gnu99.  That should actually result in *more* portable code on
our side.  The CentOS package maintainer can then easily patch
configure.ac (or configure) to use gnu99 for arcane platforms.

-Steffan

------------------------------------------------------------------------------
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to