[tz] make error

Paul Eggert eggert at cs.ucla.edu
Fri Nov 17 02:50:58 UTC 2023


On 11/16/23 11:51, Alois Treindl via tz wrote:
> cc -DTZDIR='"/usr/share/zoneinfo"'    -c -o zic.o zic.c
> In file included from zic.c:16:0:
> private.h:791:60: error: conflicting types for ‘restrict’
>   struct tm *localtime_rz(timezone_t restrict, time_t const *restrict,

That's a consequence of this NEWS item in 2023a:
                                                    The code by default 
is now designed for C99 or later.  To build in
     a C89 environment, compile with -DPORT_TO_C89.  To support C89
     callers of the tzcode library, compile with -DSUPPORT_C89.  The
     two new macros are transitional aids planned to be removed in a
     future version, when C99 or later will be required.

On your old platform, gcc defaults to C89. To work around this 
compatibility issue on that platform you can use either of the following 
two shell commands:

make CFLAGS='-std=gnu11'

make CFLAGS='-DPORT_TO_C89'

The former's probably better for you, since it lets tzcode use C11 
features. The latter should be portable to any platform that does not 
support C99 even with compiler options.

Either 'make' command should work without having to modify tzcode.



More information about the tz mailing list