Discussion:
two patches
(too old to reply)
Paul Eggert
2017-10-11 21:36:41 UTC
Permalink
Raw Message
In <https://lists.gnu.org/archive/html/bug-rcs/2017-10/msg00000.html>
Below are two patch specific to Apple/macOS versions of rcs.
With the release of macOS High Sierra (10.13), Apple is enforcing that
printf (and related) format strings that contain a %n specifier must
be in write-protected memory.  This causes rcsdiff to take an illegal
instruction trap shortly after startup.  Running rcsdiff without
arguments will reproduce the issue.  The
patch, rcs-apple_snprintf.patch, fixes that problem.  This fix is
limited to a one line change to lib/vasnprintf.c  It is worth noting
that old binaries will no longer function after the OS upgrade.
It is annoying that Apple does not care about backward compatibility,
even for old binaries. Anyway, this problem came from Gnulib and was
fixed here:

http://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=c41f233c4c38e84023a16339782ee306f03e7f59
http://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=7df04f9b8a0adb1575ca0555775ec10860143cbf

and this fix should appear in the next RCS release.
The second patch is for an old compile error where _Noreturn isn’t
properly defined on Apple platforms.  rcs-apple_noreturn.patch, fixes
that.  This fix is a one line change to lib/config.h.in
This is another Gnulib issue. What's wrong with the definition? What
symptoms do you observe? I thought that Apple uses Clang, and Clang
#defines __GNUC__ to be at least 3 and supports __attribute__
((__noreturn__)), so the definition should work as-is.

What is the output of the command "clang --version", assuming you're
using Clang?

I'll CC: this to bug-gnulib to give Gnulib people a heads-up.

Loading...