Package: libc6-dev Version: 2.32-5 Severity: normal Tags: upstream X-Debbugs-Cc: [email protected], [email protected], [email protected]
Dear Maintainer, Building Nginx Unit from source results in a compilation error. I tried both Debian 11 and Debian Sid (12), and the bug is reproducible in Sid only. To reproduce the problem, install the following packages: git, build-essential, libpcre2-dev Then execute the following commands: git clone https://github.com/nginx/unit.git cd unit/ ./configure make You will see the following error: --- cc -c -pipe -fPIC -fvisibility=hidden -O -W -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wmissing-prototypes -Werror -g -I src -I build \ \ \ -o build/src/nxt_thread.o \ -MMD -MF build/src/nxt_thread.dep -MT build/src/nxt_thread.o \ src/nxt_thread.c In file included from src/nxt_unix.h:187, from src/nxt_main.h:31, from src/nxt_thread.c:7: src/nxt_thread.c: In function ‘nxt_thread_trampoline’: src/nxt_thread.c:114:5: error: ‘__sigsetjmp’ accessing 200 bytes in a region of size 72 [-Werror=stringop-overflow=] 114 | pthread_cleanup_push(nxt_thread_time_cleanup, thr); | ^~~~~~~~~~~~~~~~~~~~ src/nxt_thread.c:114:5: note: referencing argument 1 of type ‘struct __jmp_buf_tag *’ /usr/include/pthread.h:734:12: note: in a call to function ‘__sigsetjmp’ 734 | extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __THROWNL; | ^~~~~~~~~~~ cc1: all warnings being treated as errors --- If you reverse the order of the includes <pthread.h> and <setjmp.h>, which are included in <src/nxt_unix.h> (in the nginx unit source code), the error disappears: On 12/8/21 22:37, Valentin V. Bartenev wrote: > diff --git a/src/nxt_unix.h b/src/nxt_unix.h > --- a/src/nxt_unix.h > +++ b/src/nxt_unix.h > @@ -153,6 +153,7 @@ > #include <poll.h> > #include <pwd.h> > #include <semaphore.h> > +#include <pthread.h> > #include <setjmp.h> > #include <sched.h> > #include <signal.h> > @@ -184,7 +185,6 @@ > #include <sys/wait.h> > #include <time.h> > #include <unistd.h> > -#include <pthread.h> > > #if (NXT_HAVE_EPOLL) > #include <sys/epoll.h> The above workaround silences the error. Regards, Alex -- System Information: Debian Release: bookworm/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 5.15.0-2-amd64 (SMP w/12 CPU threads) Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages libc6-dev depends on: ii libc-dev-bin 2.32-5 ii libc6 2.32-5 ii libcrypt-dev 1:4.4.26-1 ii libnsl-dev 1.3.0-2 ii linux-libc-dev 5.15.5-1 ii rpcsvc-proto 1.4.2-4 libc6-dev recommends no packages. Versions of packages libc6-dev suggests: pn glibc-doc <none> ii manpages-dev 5.10-1 -- no debconf information

