Source: db5.3
Version: 5.3.28+dfsg2-7
Tags: ftbfs

Dear Maintainer,

The source package db5.3 FTBFS on a current Trixie system running on ARM64.
Log output:
---
checking for getopt optreset variable... no
checking for mutexes... UNIX/fcntl
configure: error: Support for FCNTL mutexes was removed in BDB 4.8.
        cd build-production && tail -v -n \+0 config.log
==> config.log <==
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by Berkeley DB configure 5.3.28, which was
generated by GNU Autoconf 2.72.  Invocation command line was

  $ ../dist/configure --build=aarch64-linux-gnu --prefix=/usr 
'--includedir=${prefix}/include' '--mandir=${prefix}/share/man' 
'--infodir=${prefix}/share/info' --sysconfdir=/etc --localstatedir=/var 
--disable-option-checking --disable-silent-rules 
'--libdir=${prefix}/lib/aarch64-linux-gnu' 
'--libexecdir=${prefix}/lib/aarch64-linux-gnu' --disable-maintainer-mode 
--disable-dependency-tracking --prefix=/usr '--mandir=${prefix}/share/man' 
--localstatedir=/var --sysconfdir=/etc --libexecdir=/usr/lib --enable-cxx 
--enable-compat185 --disable-java --disable-sql --disable-stl --enable-dbm 
--enable-tcl --with-tcl=/usr/lib/aarch64-linux-gnu --disable-test

## --------- ##
## Platform. ##
## --------- ##

hostname = 61a8440a09db
uname -m = aarch64
uname -r = 5.10.224-212.876.amzn2.aarch64
uname -s = Linux
uname -v = #1 SMP Thu Aug 22 16:55:20 UTC 2024
---

Further down the line there are multiple compiler errors:
---
| 
| #include <stdlib.h>
| #include <pthread.h>
| main() {
|       pthread_cond_t cond;
|       pthread_mutex_t mutex;
|       pthread_condattr_t condattr;
|       pthread_mutexattr_t mutexattr;
|       exit (
|       pthread_condattr_init(&condattr) ||
|       pthread_condattr_setpshared(&condattr, PTHREAD_PROCESS_SHARED) ||
|       pthread_mutexattr_init(&mutexattr) ||
|       pthread_mutexattr_setpshared(&mutexattr, PTHREAD_PROCESS_SHARED) ||
|       pthread_cond_init(&cond, &condattr) ||
|       pthread_mutex_init(&mutex, &mutexattr) ||
|       pthread_mutex_lock(&mutex) ||
|       pthread_mutex_unlock(&mutex) ||
|       pthread_mutex_destroy(&mutex) ||
|       pthread_cond_destroy(&cond) ||
|       pthread_condattr_destroy(&condattr) ||
|       pthread_mutexattr_destroy(&mutexattr));
| }
configure:23015: cc -o conftest -g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/work/tmp/db5.3_5.3.28+dfsg2-7/db5.3-5.3.28+dfsg2=. 
-fstack-protector-strong -fstack-clash-protection -Wformat 
-Werror=format-security -mbranch-protection=standard  -Wdate-time 
-D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REENTRANT -Wl,-z,relro conftest.c  
-lpthread >&5
conftest.c:47:1: error: return type defaults to 'int' [-Wimplicit-int]
   47 | main() {
      | ^~~~
---

It seems the Compiler flag "-Wimplicit-int" is causing some configure steps to 
fail.
Adding the below patch fixed the issue for me. There are some other places that 
might need to be updated as well, but the package builds with the below patch.
---
--- db5.3-5.3.28+dfsg2.orig/dist/aclocal/mutex.m4
+++ db5.3-5.3.28+dfsg2/dist/aclocal/mutex.m4
@@ -5,7 +5,7 @@ AC_DEFUN(AM_PTHREADS_SHARED, [
 AC_TRY_RUN([
 #include <stdlib.h>
 #include <pthread.h>
-main() {
+int main() {
        pthread_cond_t cond;
        pthread_mutex_t mutex;
        pthread_condattr_t condattr;
@@ -49,7 +49,7 @@ AC_DEFUN(AM_PTHREADS_PRIVATE, [
 AC_TRY_RUN([
 #include <stdlib.h>
 #include <pthread.h>
-main() {
+int main() {
        pthread_cond_t cond;
        pthread_mutex_t mutex;
        pthread_condattr_t condattr;
@@ -89,7 +89,7 @@ AC_DEFUN(AM_PTHREADS_CONDVAR_DUPINITCHK,
 AC_TRY_RUN([
 #include <stdlib.h>
 #include <pthread.h>
-main() {
+int main() {
        pthread_cond_t cond;
        pthread_condattr_t condattr;
        exit(pthread_condattr_init(&condattr) ||
@@ -110,7 +110,7 @@ AC_DEFUN(AM_PTHREADS_RWLOCKVAR_DUPINITCH
 AC_TRY_RUN([
 #include <stdlib.h>
 #include <pthread.h>
-main() {
+int main() {
        pthread_rwlock_t rwlock;
        pthread_rwlockattr_t rwlockattr;
        exit(pthread_rwlockattr_init(&rwlockattr) ||
---

With best regards,
Thomas Duetsch

Reply via email to