Max,
I did an exhaustive check by adding EINTRLOOP macros to every single
POSIX system call in the make 4.1 sources which can return EINTR. None of
that helped eliminate the build failures here in openmpi and gcc5. I
finally stumbled in a workaround that suppresses the failures. Passing
--disable-nls to the ConfigureParms in the make 4.1 build produces a binary
that doesn't exhibit this bug on 10.11.
This work-around actually makes sense to me. If the read/write/stat
calls in the make 4.1 sources require addition of an EINTRLOOP macro
wrapper, then why shouldn't the same be true of those function calls in the
gettext library itself.. Any i/o in that library should be under that same
restrictions as those in the make 4.1 sources themselves, no?
Jack
ps The attached make-4.1-4 applies --disable-nls universally to the build
so that binaries built prior to the upgrade to 10.11 will have the same
necessary elimination of that feature.
ppc The explanation of the failure being due to the NLS support also has
the added benefit of explaining why this issue was quasi-latent in prior
darwin releases...https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63827#c5 Looking at the gettext-0.19.5.1 sources, I see that their read calls use a while loop to check for EINTR being returned but this doesn't rule out that some other POSIX call in there is missing the required EINTR checks. For instance in gettext-tools/gnulib-lib/pipe-filter-ii.c, read (fd[0], buf, bufsize > SSIZE_MAX ? SSIZE_MAX : bufsize); looks like it might need a EINTR check. IMHO, gnu-lib might be the best place to start as that code isn't under the direct control of the gettext developers. It also seems to do write() and stat() calls without checking for EINTR in places within the gnu-lib sources.
make.info
Description: Binary data
make.patch
Description: Binary data
------------------------------------------------------------------------------
_______________________________________________ Fink-devel mailing list [email protected] List archive: http://news.gmane.org/gmane.os.apple.fink.devel Subscription management: https://lists.sourceforge.net/lists/listinfo/fink-devel
