jedisct1 / libaegis

Portable C implementations of the AEGIS family of high-performance authenticated encryption algorithms.
https://datatracker.ietf.org/doc/draft-irtf-cfrg-aegis-aead/
MIT License
60 stars 14 forks source link

GCC 13.1.1 wants #include <errno.h> #2

Closed victorstewart closed 1 year ago

victorstewart commented 1 year ago

i added the header where it wanted it and it compiled fine, but idk when that header requirement came into existence so idk how this would break backwards compatibility or not or across compilers so that's why i didn't PR this.

-- The C compiler identification is GNU 13.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Configuring done (0.2s)
-- Generating done (0.0s)
-- Build files have been written to: /root/libaegis/build
[  8%] Building C object CMakeFiles/aegis.dir/src/aegis128l/aegis128l.c.o
[ 16%] Building C object CMakeFiles/aegis.dir/src/aegis128l/aegis128l_aesni.c.o
[ 25%] Building C object CMakeFiles/aegis.dir/src/aegis128l/aegis128l_armcrypto.c.o
[ 33%] Building C object CMakeFiles/aegis.dir/src/aegis128l/aegis128l_soft.c.o
[ 41%] Building C object CMakeFiles/aegis.dir/src/aegis256/aegis256.c.o
[ 50%] Building C object CMakeFiles/aegis.dir/src/aegis256/aegis256_aesni.c.o
[ 58%] Building C object CMakeFiles/aegis.dir/src/aegis256/aegis256_armcrypto.c.o
[ 66%] Building C object CMakeFiles/aegis.dir/src/aegis256/aegis256_soft.c.o
[ 75%] Building C object CMakeFiles/aegis.dir/src/common/common.c.o
/root/libaegis/src/common/common.c: In function ‘aegis_init’:
/root/libaegis/src/common/common.c:49:9: error: ‘errno’ undeclared (first use in this function)
   49 |         errno = ENOSYS;
      |         ^~~~~
/root/libaegis/src/common/common.c:6:1: note: ‘errno’ is defined in header ‘<errno.h>’; did you forget to ‘#include <errno.h>’?
    5 | #include "cpu.h"
  +++ |+#include <errno.h>
    6 | 
/root/libaegis/src/common/common.c:49:9: note: each undeclared identifier is reported only once for each function it appears in
   49 |         errno = ENOSYS;
      |         ^~~~~
/root/libaegis/src/common/common.c:49:17: error: ‘ENOSYS’ undeclared (first use in this function)
   49 |         errno = ENOSYS;
      |                 ^~~~~~
/root/libaegis/src/common/common.c:52:9: warning: implicit declaration of function ‘aegis128_pick_best_implementation’; did you mean ‘aegis128l_pick_best_implementatio’? [-Wimplicit-function-declaration]
   52 |     if (aegis128_pick_best_implementation() != 0 || aegis256_pick_best_implementation() != 0) {
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |         aegis128l_pick_best_implementation
make[2]: *** [CMakeFiles/aegis.dir/build.make:188: CMakeFiles/aegis.dir/src/common/common.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/aegis.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
jedisct1 commented 1 year ago

Thanks!

Yes, we should be including <errno.h> here.