help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GMAKE 3.81 vs GMAKE 4.2


From: nikhil jain
Subject: Re: GMAKE 3.81 vs GMAKE 4.2
Date: Mon, 30 Sep 2019 19:48:03 +0530

For example, maybe you're using $(wildcard ...) to gather filenames and
the difference in the order returned is causing your code to be linked
differently (in 3.81 I believe wildcard also sorted output while in
4.2.1 it doesn't--however in 4.3 it will again).

Do you confirm the above behavior can impact the binary we are building ?
If Yes, I was hoping all the Make Versions to be backward compatible. I had
compiled with make 4.0 without any issue. Looks like something has changed
significantly in 4.2 ?

Thanks
Nikhil

On Mon, Sep 30, 2019 at 6:30 PM Paul Smith <address@hidden> wrote:

> On Mon, 2019-09-30 at 13:51 +0530, nikhil jain wrote:
> > There are 2 parts to this problem -
> >
> > 1) Build the code using v3.81 and v4.2 -> In both cases, builds is
> > happening correctly.
> > 2) Segmentation fault -> While running the binary generated from the
> build,
> > it segfaults with v3.81 and works fine with v4.2
> >
> > I hope you will provide some resolution.
>
> I don't see how there's anything we can do about this.  It's not a
> problem in GNU make, it's a problem in your makefile, which you haven't
> shown us (and based on the reported size of the project, we don't have
> the capacity to debug even if you did show us).
>
> GNU make doesn't compile, assemble, or link any code: it simply invokes
> shell commands that do whatever your recipes tell them to do.  If GNU
> make doesn't fail then it successfully invoked all your recipes: that's
> all it knows how to do and the only responsibility it has.
>
> There are a number of reasons that using different GNU make versions
> might have this effect but all of them are specific to your environment
> and your makefiles and your code.
>
> For example, maybe you're using $(wildcard ...) to gather filenames and
> the difference in the order returned is causing your code to be linked
> differently (in 3.81 I believe wildcard also sorted output while in
> 4.2.1 it doesn't--however in 4.3 it will again).
>
> Or maybe something else even more obscure.
>
> For a correct build system none of these things should matter (anywhere
> order does matter, you should be specifying it explicitly) but clearly
> there's something about your system which is not deterministic.
>
> Your only choices are to either (a) continue to use 3.81, or (b)
> investigate the crash with a debugger or similar and discover why it
> happens and then figure out what part of your makefile is not
> repeatable and fix it.
>
> Or (c), you could try using the pre-release for the next version of GNU
> make and see if the problem disappears as mysteriously as it appeared:
>
> https://alpha.gnu.org/gnu/make/make-4.2.91.tar.gz
>
> If it were me I'd prefer (b): just because it gets fixed in a newer
> version doesn't mean it won't break again if you don't understand the
> reason and stop it from happening.
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]