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: Tue, 1 Oct 2019 10:09:24 +0530

Hi,

Thanks for the answers.

You know what!

It worked with GMAKE 4.2.91

It is the test version sent to me in the mail thread by a GMAKE expert. I
would probably move to it.
So, it looks like the wildcards issue then ?

thanks
Nikhil

On Tue, Oct 1, 2019 at 1:44 AM Christian Hujer <address@hidden>
wrote:

> Hello Nikhil,
>
> On Sat, Sep 28, 2019 at 1:54 AM nikhil jain <address@hidden>
> wrote:
>
>> I am seeing very different behaviors in my build between make version 3.81
>> and 4.2
>>
>> My build compiles correctly but fails with segmentation fault on 4.2
>> version.
>> My build compiles correctly and executes also correctly on 3.81 version.
>>
> As others have pointed out, without knowing which process segmentation
> faults, it is impossible to know.
> Also, as others have pointed out, GNU make does not create any artifacts,
> it only orchestrates the actual tools like preprocessors, compilers,
> assemblers, librarians, linkers which create the actual artifacts.
> It is much more likely that the problem was in the Makefile already, and
> that the switch from GNU make 3.81 to GNU make 4.2 only triggered the issue.
> For example, when running with -j, there could be a race condition from
> the dependency tree. The update can shift the timing just slightly enough
> to trigger the issue.
>
> If you want to really know what's going on, it's probably best to install
> GNU make 3.81 and GNU make 4.2 in parallel.
> You can run your build in one directory with GNU make 3.81 and in the
> other directory with GNU make 4.2.
> Then use a tool like diff to compare the binary files created by the build.
> Depending on your build tools, they may or may not include timestamps and
> absolute paths in the files.
> I hope your build tools don't, because that would make comparing more
> difficult, you have to take that into account.
> That comparison can show you what runs differently.
>
> Another go could be to run make without -s.
> I hope that your Makefile doesn't make extensive use of command echo
> suppression.
> Command echo suppression should not be used as a replacement of -s, it
> makes Makefiles difficult to debug.
> Run both versions of GNU make in parallel and compare the output and run
> sequence to find out where your Makefile and your tools go wrong with the
> new version of make.
>
> I know you didn't want to install the old version of make.
> But if you seriously want to understand what is going on and where the
> problem is, I fear that there is no other way.
> And in case your Makefile failes, I suggest you better do. Because if you
> just hotfix the problem to go away without properly understanding it,
> there's a chance it comes back with the next update or even other unrelated
> changes to your setup.
>
> The build failed with error message related to THREADS.
>>
> Is that message coming from GNU make itself or from one of the tools
> invoked by GNU make?
>
> Is there some change in 3.81 vs 4.2 related to threads ?
>>
> When it comes to threads, for sure there is, even if the logic is not
> changed, the other changes will have an influence on the timing behavior.
> However, such changes should be fine if the Makefile is written correctly,
> such changes happen between all versions, and such changes in timing can
> even happen with the same binary if you run on a different CPU, or with
> different processes in parallel, or even just replace RAM.
>
> Please reply. It is urgent for me to provide a Correct compiled product to
>> my users.
>> I do not want to switch back to 3.81.
>>
> Who wants to, GNU make 4.2 is so much better than 3.81.
>
> --
> Christian Hujer
> E: address@hidden
> T: @christianhujer
> +91 77 2003 6661
>
>


reply via email to

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