#1069520 sbcl: FTBFS on armhf: make[1]: *** [debian/rules:53: override_dh_auto_build] Error 1

#1069520#5
Date:
2024-04-20 13:04:20 UTC
From:
To:
Hi,

During a rebuild of all packages in sid, your package failed to build
on armhf.


Relevant part (hopefully):
The full build log is available from:
http://qa-logs.debian.net/2024/04/20/sbcl_2.3.7-2_unstable-armhf.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240420;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240420&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

#1069520#10
Date:
2024-04-23 16:51:44 UTC
From:
To:
This looks a lot like a problem between the `OBSERVED-INTERNAL-REAL-TIME-DELTA-SEC` which is a word and the new 64-bit counters.

❯ git grep observed-internal-real-time-delta-sec
src/code/thread-structs.lisp:  #-64-bit (observed-internal-real-time-delta-sec 0 :type sb-vm:word)
src/code/unix.lisp:                           (sb-thread::thread-observed-internal-real-time-delta-sec thr))

While the current sources still have:

❯ grep -A 2 -B 2 '(tv-sec' crossbuild-runner/backends/arm/stuff-groveled-from-headers.lisp
(define-alien-type nil
  (struct timeval
          (tv-sec (signed 32))
          (tv-usec (signed 32))))
(define-alien-type nil
  (struct timespec
          (tv-sec (signed 32))
          (tv-nsec (signed 32))))

I’m guessing that this is no longer the case on armhf anymore. I’m trying to test this on the porter box abel.debian.org.

Best regards, Peter

#1069520#15
Date:
2024-04-24 14:01:49 UTC
From:
To:
Hi,

Tested this and it’s due to the 64t transition. The grovelled data changed:

(sid_armhf-dchroot)pvaneynd@abel:~/sbcl-2.3.7$ diff -u ./crossbuild-runner/backends/arm/stuff-groveled-from-headers.lisp output/stuff-groveled-from-headers.lisp
--- ./crossbuild-runner/backends/arm/stuff-groveled-from-headers.lisp   2023-07-29 07:59:39.000000000 +0000
+++ output/stuff-groveled-from-headers.lisp     2023-07-29 07:59:39.000000000 +0000
@@ -30,7 +30,7 @@
 (define-alien-type off-t (signed 64))
 (define-alien-type size-t (unsigned 32))
 (define-alien-type ssize-t (signed 32))
-(define-alien-type time-t (signed 32))
+(define-alien-type time-t (signed 64))
 (define-alien-type suseconds-t (signed 32))
 (define-alien-type uid-t (unsigned 32))
 ;; Types in src/runtime/wrap.h. See that file for explantion.
@@ -141,6 +141,7 @@
 (defconstant clock-process-cputime-id 2) ; #x2
 (defconstant clock-realtime-alarm 8) ; #x8
 (defconstant clock-realtime-coarse 5) ; #x5
+(defconstant clock-tai 11) ; #xb
 (defconstant clock-monotonic-coarse 6) ; #x6
 (defconstant clock-monotonic-raw 4) ; #x4
 (defconstant clock-boottime 7) ; #x7
@@ -149,11 +150,11 @@
 ;;; structures
 (define-alien-type nil
   (struct timeval
-          (tv-sec (signed 32))
-          (tv-usec (signed 32))))
+          (tv-sec (signed 64))
+          (tv-usec (signed 64))))
 (define-alien-type nil
   (struct timespec
-          (tv-sec (signed 32))
+          (tv-sec (signed 64))
           (tv-nsec (signed 32))))

I honestly don’t understand how to use 64-bit values on this arch, so I created
https://bugs.launchpad.net/sbcl/+bug/2063340


Best regards, Peter

#1069520#20
Date:
2024-04-27 09:06:45 UTC
From:
To:
Hello,

Thanks Peter.  Looks like upstream might be able to commit a fix.