Skip to content

clisp fails to build after year 2036

While working on reproducible builds for openSUSE, I found that our package of clisp-2.49.93+git20240704.f5acef38 fails to build after year 2036 (date -d@2085980119) from an integer overflow:

CLISP="/home/abuild/rpmbuild/BUILD/clisp-2.49.93+git20240704.f5acef38/build/clisp -K base  -E UTF-8 -Emisc 1:1 -Epathname 1:1 -norc" ; \
cd asdf ; make clisp-module CC="gcc" CPPFLAGS="-I/home/abuild/rpmbuild/BUILD/clisp-2.49.93+git20240704.f5acef38/src -I/home/abuild/rpmbuild/BUILD/clisp-2.49.93+git20240704.f5acef38/build/gllib -I/home/abuild/rpmbuild/BUILD/clisp-2.49.93+git20240704.f5acef38/src/gllib" CFLAGS="-O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -funwind-tables -fasynchronous-unwind-tables -Werror=return-type -flto=auto -ffat-lto-objects -g3 -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE -fno-strict-aliasing -fPIC -pipe -Wa,--noexecstack -Wno-unused -Wno-uninitialized -Wno-implicit-fallthrough -Wno-volatile-register-var -Wno-address -Wno-clobbered -Wno-dangling-pointer -Wno-unused-result -Wno-missing-declarations -Wno-cast-function-type -fno-gcse -I/usr/include/fastcgi -no-integrated-cpp -W -Wswitch -Wcomment -Wpointer-arith -Wreturn-type -Wmissing-declarations -Wimplicit -Wno-sign-compare -Wno-format-nonliteral -Wno-shift-negative-value -O -fwrapv -fno-strict-aliasing -DNO_ASM -DENABLE_UNICODE -DDYNAMIC_FFI -DDYNAMIC_MODULES  -fPIC -DPIC" CLFLAGS="-Wl,--as-needed -Wl,-z,relro -Wl,-z,noexecstack  -Wl,--export-dynamic" LIBS="libgnu.a  /usr/lib64/libreadline.so -lncurses /usr/lib64/libffcall.so  /usr/lib64/libsigsegv.so  " RANLIB="ranlib" CLISP="$CLISP -q" SHREXT=.so
make[1]: Entering directory '/home/abuild/rpmbuild/BUILD/clisp-2.49.93+git20240704.f5acef38/build/asdf'
/home/abuild/rpmbuild/BUILD/clisp-2.49.93+git20240704.f5acef38/build/clisp -K base  -E UTF-8 -Emisc 1:1 -Epathname 1:1 -norc -q -m 2MW -c /home/abuild/rpmbuild/BUILD/clisp-2.49.93+git20240704.f5acef38/modules/asdf/asdf.lisp -o ./
;; Compiling file /home/abuild/rpmbuild/BUILD/clisp-2.49.93+git20240704.f5acef38/modules/asdf/asdf.lisp ...
*** - not a 32-bit integer: 4458703453

software should keep working for longer than 15 years.