After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 527144 - Parallel "make install" fails
Parallel "make install" fails
Status: RESOLVED FIXED
Product: anjuta
Classification: Applications
Component: unknown
2.4.x
Other All
: Normal normal
: ---
Assigned To: Anjuta maintainers
Anjuta maintainers
Depends on:
Blocks:
 
 
Reported: 2008-04-09 14:06 UTC by Rémi Cardona
Modified: 2008-05-14 19:05 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Trival patch that removes useless _DEPENDENCIES (1.94 KB, patch)
2008-04-09 15:05 UTC, Rémi Cardona
none Details | Review
Trival patch that removes useless _DEPENDENCIES (svn trunk) (893 bytes, patch)
2008-05-13 16:00 UTC, Rémi Cardona
none Details | Review
Patch that removes useless _DEPENDENCIES (svn trunk) (1.46 KB, patch)
2008-05-14 09:01 UTC, Rémi Cardona
accepted-commit_now Details | Review

Description Rémi Cardona 2008-04-09 14:06:23 UTC
Please describe the problem:
Running "make -jX install" fails inside libanjuta/

For some reason, the parallel build phase happens correctly, but the install phase bombs.

What I can see from my build logs (3 different users on both x86 and x86_64) is that libgladeanjuta.la is being relinked (why is this even happening?) before libanjuta.la

Now this brings up a lot of questions :

1) can automake correctly handle 2 libs (with one depending on the other) with regard to // make ?
2) can libgladeanjuta be put in another directory? (could it be with the rest of the glade plugin?)
3) why is there a relinking phase happening during "make install" ?

(tricky questions, heh)

Steps to reproduce:
That's tricky too because we've found out that the bug only shows up if anjuta is _not_ installed on the machine. If it is, then the build system will actually find the libraries, but the _system_ ones.

1. remove anjuta from system
2. run autogen and ./configure
3. make -j4
4. make -j4 install

Actual results:
Build fails inside libanjuta/

Expected results:


Does this happen every time?
This bug is reproducible everytime on various machines.

Other information:
All tests are done with anjuta 2.4.0, but ChangeLog of 2.4.1 makes me believe the issue is still there.
Comment 1 Rémi Cardona 2008-04-09 14:41:04 UTC
The original Gentoo bug report with a full build log :

http://bugs.gentoo.org/show_bug.cgi?id=216898
Comment 2 Johannes Schmid 2008-04-09 15:04:30 UTC
Good question. But I am sorry to say that I have no answers for them. Especially the relinking would really be interesting.
Comment 3 Rémi Cardona 2008-04-09 15:05:47 UTC
Created attachment 108931 [details] [review]
Trival patch that removes useless _DEPENDENCIES

Although this patch doesn't fix the issue, the _DEPENDENCIES targets are useless. By default, automake makes _DEPENDENCIES equal to _LIBADD or _LDADD, which is what the makefiles were doing.

Therefore, these lines are all redundant.
Comment 4 Daniel Macks 2008-04-09 16:57:11 UTC
libanjuta/Makefile.am has:

libgladeanjuta_la_LIBADD = $(top_builddir)/libanjuta/libanjuta.la \

so maybe the problem is that the dependency is still pointing at the build-dir library during the install phase? Try changing it to a relative path like:

libgladeanjuta_la_LIBADD = libanjuta.la \
Comment 5 Rémi Cardona 2008-04-09 17:28:48 UTC
I've tried replacing this with both "libanjuta.la" and "$(builddir)/libanjuta.la".

Neither work... Thing is, I don't see what the current Makefile.am is doing wrong. Are there any resident Autotools expert in Gnome Land that could give a hand in this matter?
Comment 6 Rémi Cardona 2008-05-11 09:28:43 UTC
Could the patch be applied? It still cleans up unneeded automake rules.

Thanks
Comment 7 Sébastien Granjoux 2008-05-13 12:46:36 UTC
I have tried to apply your patch but it doesn't work.

I get at least one error in libanjuta directory.

The original Makefile.am contains
libgladeanjuta_la_DEPENDENCIES = libanjuta.la
libgladeanjuta_la_LIBADD = $(top_builddir)/libanjuta/libanjuta.la \
                                                   $(GLADE_LIBS)
And you have remove the line libgladeanjuta_la_DEPENDENCIES

The error is that make doesn't know how to build $(top_buildir)/libanjuta/libanjuta.la which is "../libanjuta/libanjuta.la" here. But it knows how to build libanjuta.la, so the dependencies line make a difference. I don't know enough to tell if using this dependencies line is the right way or if it is just a hack around something wrong somewhere else.

I hope it could give you some additional ideas.
Comment 8 Rémi Cardona 2008-05-13 16:00:25 UTC
Created attachment 110858 [details] [review]
Trival patch that removes useless _DEPENDENCIES (svn trunk)

I tried building svn trunk but it needs a yet to be released gnome-build...

Could you try with that quick patch?
Comment 9 Sébastien Granjoux 2008-05-13 18:59:12 UTC
It's working here.

Moreover I have tried to rebuild anjuta with make -j4 and make -j4 install and I haven't get any error. I have run make uninstall to remove anjuta before doing this. But perhaps I have missed something.

Have you checked that you still get the error with your latest patch ?

In order to build anjuta svn trunk, I think you should get gnome-build and perhaps gdl from svn too. Both libraries have not that big and don't have much dependencies.
Comment 10 Rémi Cardona 2008-05-13 21:49:10 UTC
(In reply to comment #9)
> It's working here.

Great!

> Moreover I have tried to rebuild anjuta with make -j4 and make -j4 install and
> I haven't get any error. I have run make uninstall to remove anjuta before
> doing this. But perhaps I have missed something.

The bug is only reproducible if there's no current version of anjuta available anywhere in $PATH, otherwise, libgladeanjuta will temporarily link against the installed libanjuta. That's why I didn't see this bug for a very long time.

> Have you checked that you still get the error with your latest patch ?

No, but I sure will. :)

> In order to build anjuta svn trunk, I think you should get gnome-build and
> perhaps gdl from svn too. Both libraries have not that big and don't have much
> dependencies.

Ok, thanks for the heads up, I'll take some time to fully try it out.
Comment 11 Rémi Cardona 2008-05-14 09:01:05 UTC
Created attachment 110892 [details] [review]
Patch that removes useless _DEPENDENCIES (svn trunk)

Well, it seems to be working with -j4. I checked again with 2.4.0 which still fails as expected (at one point I thought libtool 2.2 might have helped).

I'm tempted to say that this was fixed because libanjuta no longer deps on libegg.la, other than that, this patch "fixes" the same things as the first I posted.

So I guess we all got lucky :)

Attached patch was made against revision 3930.

Thanks
Comment 12 Sébastien Granjoux 2008-05-14 19:05:08 UTC
I have committed your patch and I'm closing this bug as it's luckily working now. Thanks for your bug report.