On Sat, Sep 19, 2015 at 9:13 AM, Max Horn <m...@quendi.de> wrote:

> Hi again,
>
> On 16.09.2015, at 14:42, Jack Howarth <howarth.at.f...@gmail.com> wrote:
>
> > MacPorts gmake doesn't show the problem on the command line or in their
> builds but I have only been able to test a rather narrow set of MacPorts
> builds against their gmake. However I have been able to reproduce the build
> failures under fink when the call to 'make' is substituted with
> '/opt/local/bin/make' to invoke their copy.
>
> That's interesting, and a bit weird... But at least it suggest that it is
> directly not our "fault" for breaking GNU make, it may just be broken in
> general on Mac OS X 10.11... Not that this insight helps anybody faced with
> the problem :-/.
>
>
>
> > I doubt a unique set of packages exists to protect from this bug with
> the usage of /usr/bin/make. The bug looks to be a race condition in the
> threading support as tweaking the optimization of make build modulates the
> number of packages that fail under fink make. Likewise reducing the number
> of cores in the parallel build can suppress the bug. Also, when I debugged
> this by adding -d, only one of the failing tests, texlive-base, remained
> and even then only randomly. So the real question will be how many users
> machines have the cores/speed to tickle the bug. My past experience with
> Apple and threading bugs is that it is futile to expect them to be fixed in
> a given OS release and usually you have to wait for the next major kernel
> rewrite.
>
> So, what shall we do then?
>
>
> * Just "patch" affected packages to workaround the issue
>
> * Split "make" as Jack proposed (i.e. package "make" only provides a
> "gmake" binary, and "make-default" provides a "make" symlink to it, similar
> to e.g. coreutils-default).
>    However, I'd prefer to *only* do that on 10.11, as to minimize the
> impact this has on users. That said, my hope is that whether Apple's and
> our make is used for most users...
>
>
> Cheers,
> Max


Max,
     The regression seems impossible to duplicate outside of fink. Using
the libcurl4 build which fails in fink make during the InfoTest run and a
copy of fink modified to emit the contents of %ENV with...

 --- PkgVersion.pm.orig 2015-09-21 12:57:25.000000000 -0400
+++ PkgVersion.pm 2015-09-21 13:05:37.000000000 -0400
@@ -5230,6 +5230,11 @@
  $nonroot_okay = $nonroot_okay && $build_as_nobody;
  {
  local %ENV = %{$self->get_env($phase)};
+ my @keys = keys %ENV;
+ my @values = values %ENV;
+ while (@keys) {
+ print pop(@keys), '=', pop(@values), "\n";
+ }
  $result = &execute($script, nonroot_okay=>$nonroot_okay);
  }
  if ($result and !$ignore_result) {

I used the /tmp/fink.U7E7Q InfoTest script left from the failed build with
the addition of...

use lib "/sw/lib/perl5";

and -j8 appended to the make line as well as export lines in the bash
script for all of  the environmentals reportedly set during the failing
InfoTest run. Executing...

[Jack-Howarths-Computer:fink.build/libcurl4-7.44.0-1+10.8/curl-7.44.0]
howarth% sudo -u fink-bld /tmp/fink.U7E7Q

repeatedly succeeds whereas the fink -m build constantly fails in the
InfoTest. Weird.
            Jack
ps The only thing left to do is try to craft an additional layer of
indirection such that the execution of /tmp/fink.U7E7Q is done from within
perl rather than on the command line.
------------------------------------------------------------------------------
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
List archive:
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to