Re: fix for remaining fink make failures on 10.11

Jack Howarth <[email protected]>
Newsgroups gmane.os.apple.fink.devel
Message-ID <CAP5Ds0BHZg7FZP5aovO9nfWsSOouocOf9f_SXSOAHkHCcyWo0Q@mail.gmail.com>
Since make 4.1 built with --enable-nls only links against
/sw/lib/libintl.8.dylib, the only likely candidate I see is...

      __builtin_expect (fstat (fd, &st) != 0, 0)

in gettext-0.19.5.1/gettext-runtime/intl/loadmsgcat.c. It's not clear how
we manage to keep the __builtin_expect macro wrapper while also looping on
fstat with the missing check for EINTR added.
            Jack
ps In theory, we probably should also check the i/o system calls for
missing EINTR checks in /sw/lib/libiconv.2.dylib since libintl.8.dylib is
linked against that.

On Fri, Oct 23, 2015 at 3:22 PM, Jack Howarth <[email protected]>
wrote:

> 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.
>

------------------------------------------------------------------------------

_______________________________________________
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.