No, long long and unsigned long long is required and it was required for quite some time. The code is mostly C90 but not strictly.
I suppose on platforms with 64bit long type we could make it work without long long though. Pull requests are welcome. Tomas Mraz, OpenSSL On Tue, 2022-11-01 at 22:52 +0000, Dennis Clarke via openssl-users wrote: > > Good day : > > This always bites me when I try strict C90 : > > In file included from include/openssl/x509.h:41, > from apps/include/apps.h:29, > from apps/lib/app_libctx.c:10: > include/openssl/sha.h:106:37: error: ISO C90 does not support 'long > long' [-Wlong-long] > 106 | # define SHA_LONG64 unsigned long long > | ^~~~ > include/openssl/sha.h:110:5: note: in expansion of macro 'SHA_LONG64' > 110 | SHA_LONG64 h[8]; > | ^~~~~~~~~~ > include/openssl/sha.h:106:37: error: ISO C90 does not support 'long > long' [-Wlong-long] > 106 | # define SHA_LONG64 unsigned long long > | ^~~~ > include/openssl/sha.h:111:5: note: in expansion of macro 'SHA_LONG64' > 111 | SHA_LONG64 Nl, Nh; > | ^~~~~~~~~~ > include/openssl/sha.h:106:37: error: ISO C90 does not support 'long > long' [-Wlong-long] > 106 | # define SHA_LONG64 unsigned long long > | ^~~~ > include/openssl/sha.h:113:9: note: in expansion of macro 'SHA_LONG64' > 113 | SHA_LONG64 d[SHA_LBLOCK]; > | ^~~~~~~~~~ > gmake[1]: *** [Makefile:3989: apps/lib/libapps-lib-app_libctx.o] > Error 1 > gmake[1]: Leaving directory '/opt/bw/build/openssl- > 3.0.7_debian_ppc64.002' > make: *** [Makefile:2958: build_sw] Error 2 > > > etc etc ... > > I can just as neatly go to C11 or some such but I thought the whole > code > base was C90 clean ? At least it was. > > > > -- Tomáš Mráz, OpenSSL