On 3/4/21 8:34 AM, Carol Bouchard wrote: > M4 Maintainers: > > I work on a test system for distro testing. I need to build newer Fedora > images > before they are released to public. A change that was introduced is the > #define SIGSTKSZ is no longer a statically defined variable. It's value can > only be determined at run time. > > # define SIGSTKSZ sysconf (_SC_SIGSTKSZ) > > This affects m4 code since the code assumes a statically defined variable > which > can be determined at preprocessor time. As a result, the m4 code no longer > compiles. > > /usr/include/signal.h:315, > from ./signal.h:52, > from c-stack.c:49: > c-stack.c:55:26: error: missing binary operator before token "(" > 55 | #elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384 > | ^~~~~~~~ > I am using m4-1.4.18 with compiler gcc (GCC) 10.2.1 20201125 (Red Hat > 10.2.1-9). > Please advise how I can get past this. It doesn't look like a simple > change. Do you > already have a patch available for this?
Bringing some closure to this thread: Gnulib commit f9e2b20a12 (Sep 2020) fixed the use of SIGSTKSZ, and now that latest m4.git uses newer gnulib, I have finished testing that I can once again build m4 1.4.x on Rawhide without error, whether or not libsigsegv is installed. I hope to release m4 1.4.19 soon. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org