Subject: bug#50098: Configuring --with-libsigsegv results in link error

From: Bruno Haible <[email-masked]>
Date: Sun, 22 Aug 2021 01:46:33 +0200

Evan Miller wrote:
> > Oh, I see you're building for an old system (Mac OSX 10.4.11, circa 2007) that Apple itself is no longer supporting. Although we don't normally worry about such platforms, perhaps you can come up with a patch that clearly won't break mainline platforms.
> 
> A simple regex substitution (removing double underscores from the struct member names on the affected platform) seems to do the trick in the downstream package. If I have the time and cleverness I'll see about a proper patch.

When you do this, you also need to run "make check", to see whether the unit
tests pass.

Background: On macOS, libsigsegv uses an approach based on the Mach API,
that works also with older macOS releases. Whereas the 'sigsegv' module
uses the POSIX API (sigaltstack() etc.) that was added in newer macOS
versions. IIRC, the 'sigsegv' module has been tested on macOS >= 10.5;
it was *not* tested on macOS 10.4. It is well possible that it does not
work on macOS 10.4. In this case, if you want binaries that work on ALL
macOS releases >= 10.4, use the libsigsegv library and the --with-libsigsegv
configure option, and Paul's fix. A "./configure; make; make check" of a
gnulib testdir will tell you. Run these commands:

  ./gnulib-tool --create-testdir --dir=testdir1 --single-configure c-stack
  cd testdir1
  ./configure
  make
  make check

If they fail, then you do need the libsigsegv library.

Bruno