[Opendnssec-user] Compilation problems in 2.1.9

Fred. Zwarts F.Zwarts at KVI.nl
Thu May 6 11:40:33 UTC 2021


The last few weeks we had problems with 2.1.8, so today I tried to 
install 2.1.9 on our test system. When building it, we encountered some 
problems with the compilation. I saw the same problems in 2.1.8, but 
then there were more serious problems, so I forgot to mention them in 
this mail group.

This is information about the operating system:

> /etc/os-release
> ::::::::::::::
> NAME="SLES"
> VERSION="12-SP5"
> VERSION_ID="12.5"
> PRETTY_NAME="SUSE Linux Enterprise Server 12 SP5"
> ID="sles"
> ANSI_COLOR="0;32"
> CPE_NAME="cpe:/o:suse:sles:12:sp5"

I downloaded the opendnssec-2.1.9.tar.gz file and extracted its contents 
in a directory.
I changed directory into the opendnssec-2.1.9 directory and I used 
"./configure" to prepare for building.
Then I used the "make" command, to build the programs. This continued 
for some time, but then it exited with the following messages:

> ../../common/scheduler/worker.h:38:1: warning: C++ style comments are 
> not allowed in ISO C90 [enabled by default]
>  //~ #include <time.h>
>  ^
> ../../common/scheduler/worker.h:38:1: warning: (this will be reported 
> only once per input file) [enabled by default]
> adapter/adapi.c: In function ‘adapi_process_rr’:
> adapter/adapi.c:329:13: error: ‘for’ loop initial declarations are 
> only allowed in C99 mode
>              for (int i = 0; i < strlen(str); i++) {
>              ^
> adapter/adapi.c:329:13: note: use option -std=c99 or -std=gnu99 to 
> compile your code
> Makefile:801: recipe for target 'adapter/adapi.o' failed
> make[2]: *** [adapter/adapi.o] Error 1
> make[2]: Leaving directory '/downloads/opendnssec-2.1.9/signer/src'
> Makefile:483: recipe for target 'all-recursive' failed
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory '/downloads/opendnssec-2.1.9/signer'
> Makefile:534: recipe for target 'all-recursive' failed
> make: *** [all-recursive] Error 1

 From these errors I concluded that I had to add the "-std=c99" option 
to the compiler, so I used:

export CFLAGS="-std=c99"
./configure
make clean
make

But then another errors was printed:

> ./wire/notify.h:64:21: error: field ‘timeout’ has incomplete type
>      struct timespec timeout;
>                      ^
> Makefile:801: recipe for target 'daemon/signertasks.o' failed
> make[2]: *** [daemon/signertasks.o] Error 1
> make[2]: Leaving directory '/downloads/opendnssec-2.1.9/signer/src'
> Makefile:483: recipe for target 'all-recursive' failed
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory '/downloads/opendnssec-2.1.9/signer'
> Makefile:534: recipe for target 'all-recursive' failed
> make: *** [all-recursive] Error 1


I finally found a work-around with

unset CFLAGS
./configure
make clean
make

Then, when the above error caused an exit of the make, I entered the 
signer/src directory and I copied/pasted the latest gcc command shown, 
adding the -std=c99 option. Then I returned to the main directory and 
used "make" again, which continued to compile other source files. This I 
had to do for about three source files.
I have the impression that I now have a working set of programs, 
although I am a little bit worried having linked object files with 
different compiler options.

So, two questions:

1) Is there a way to use configure such that the compilation does not 
end with errors?
2) Is a mix of object files with and without the -std=c99 option dangerous?




More information about the Opendnssec-user mailing list