-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 30/08/16 00:20, David Sommerseth wrote:
> On 29/08/16 23:32, Steffan Karger wrote:
>> 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.
> 
> For the stock CentOS 5 package, it probably won't matter.  That's 
> indirectly maintained by Red Hat doing all kind of backports
> whenever needed.
> 
> For the Fedora EPEL releases (which keeps our release cycles
> fairly tight), I'm adding Jon to this discussion directly as the
> main Fedora package maintainer for OpenVPN.
> 
> Any thoughts on this, Jon?

Just some more benchmarks.  I just compiled successfully with -std=c99
on an old Scientific Linux 6.5 (RHEL 6.5 clone) I found.  Another
important detail, RHEL5 will reach the "End of Production" phase March
2017, OpenVPN have generally stopped supporting the oldest RHEL
releases once it hits EOL.  RHEL 5 subscribers may purchase an
extended life cycle, but we have not cared too much about that so far.


There is one detail though regarding the patch itself.  Your patch
adds -std=c99 to the CFLAGS quite early.  The compile line gets quite
interesting if you try to swap this setting by using the recommended
approach:

   ./configure CFLAGS="$CFLAGS -std=gnu89"

Doing this results in the command line being run during compilation to
be be:  gcc -std=gnu89 .... -std=c99 ...

So the -std argument appears twice.  This should probably be avoided.


- -- 
kind regards,

David Sommerseth
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iQIcBAEBAgAGBQJXxLn8AAoJEIbPlEyWcf3yX3MP/32L01BOFDWYh9xfi0veAoFY
6E+H8cn3HrtLDCfc+Um8k1osd/lCcJFhBQeaaolBD1RBlG9sEf0rjAqUXQnFCge2
m+26AyZ9IDDuT0b1QsMRo9z1fuAtigOKcrHrYRAtUZ/4Q7KiWp32wdzQ52S2NsMQ
er9yd1MwpZ11uevfyYE9i0uRUPIFyCQ3JCYo695MS/q1iHaWjsbS33Wwb6+3uy2p
QibLSJdgH1NmLwPIaHZwRYX1TTdRNSdqt/5IGjUk5QgixFQuKQlCILKJ9Ps5HVVL
gohF/cugP19/31FCmmWMtJ0l+i9D8QI04aNvEbxqYbi5LWth0thvr41jh4KPMF+i
TnUinfeYfJG1MqvXAc2cbOfQIWQV4HuXZaSqSOqkTNNYnq296cUkLOnV3wN5v/d+
dfQDeVjEex2Zy+w3SaWNA4fIs02PfwTKbK76M8zTIteyGYCOoe3JS1dMmDxg8wrx
5s2uAG9idjXFsG1rLaIn6XMiaZSPaPy1evsEet64FIodTREhqVaSD2x0zCQc1wyY
GdAgVmNp3bRnahXleVU6XbkfueHZYS/C1rPejP0iJAXM/P3r376Stcm9b/uFI/uV
o55SY2A+gsYDDGa+T/b0O82K4CVAJrSeA6VIWa5bRf9WoQXjdSUtkXQ0W0A2ZpAy
HOBruoR1qGfk9e3iMp1F
=CoFe
-----END PGP SIGNATURE-----

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

Reply via email to