|
From: | Adam Tuja |
Subject: | Re: [Lzip-bug] Parameter is not bool (clzip) |
Date: | Tue, 08 Nov 2022 13:45:53 +0100 |
Note that 'in_statsp' is a pointer, and according to the C99 standard:
As you mentioned C99, out of curiosity I tried to compile it with -std=c99 and the result was, to say the least, surprising. I got bunch of serious warnings and an error.
```
$ gcc -std=c99 -Wall -W -O2 -DPROGVERSION=\"1.13\" -c -o main.o main.c
main.c: In function ‘open_instream’:
main.c:473:31: warning: implicit declaration of function ‘S_ISSOCK’ [-Wimplicit-function-declaration]
S_ISFIFO( mode ) || S_ISSOCK( mode ) ) );
^
main.c: In function ‘close_and_set_permissions’:
main.c:591:5: warning: implicit declaration of function ‘fchown’ [-Wimplicit-function-declaration]
if( fchown( outfd, in_statsp->st_uid, in_statsp->st_gid ) == 0 )
^
main.c:592:7: warning: implicit declaration of function ‘fchmod’ [-Wimplicit-function-declaration]
{ if( fchmod( outfd, mode ) != 0 ) warning = true; }
^
main.c:595:56: error: ‘S_ISVTX’ undeclared (first use in this function)
fchmod( outfd, mode & ~( S_ISUID | S_ISGID | S_ISVTX ) ) != 0 )
^
main.c:595:56: note: each undeclared identifier is reported only once for each function it appears in
```
Even "resolving" that manually
```
$ gcc -std=c99 -Wall -W -O2 -DPROGVERSION=\"1.13\" -DS_ISVTX=01000 -c -o main.o main.c
```
didn't get me far as I got another error.
```
$ gcc -Wall -W -O2 -o clzip carg_parser.o lzip_index.o list.o encoder_base.o encoder.o fast_encoder.o decoder.o main.o
main.o: In function `open_instream':
main.c:(.text+0xaeb): undefined reference to `S_ISSOCK'
```
I realise it's general gcc question rather than lzip stuff.
I can only guess that some things are not included in a headers but I wonder how it works without `c99' standard.
Regards
[Prev in Thread] | Current Thread | [Next in Thread] |