| Summary: | Emerge dnd-1.1 fails in Function src_compile, Line 24 with Exitcode 2 | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | A J <jaiashu> |
| Component: | [OLD] Library | Assignee: | Desktop Misc. Team <desktop-misc> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | x86 | ||
| OS: | Linux | ||
| URL: | http://forums.gentoo.org/viewtopic.php?t=143552 | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: |
patch which fixes this bug
ebuild which applies the Makefile patch. |
||
|
Description
A J
2004-03-08 09:51:59 UTC
The problem is that you are using MAKEOPTS="-j2". The Makefile in DNDlib cannot safely be used in parallel, because it contains two rules: libDnd.a: DragAndDrop.c and libDnd++.a: DragAndDrop.c which both generate a DragAndDrop.o (one by compiling with gcc and the other by compiling with g++). If two parallel makes are running each building one of these targets, one of them is bound to stomp on the .o file of the other, and so the dndtest program fails. A simple workaround is to build this with MAKEOPTS="-j1", but the real solution is to rewrite this Makefile to so that one of the the above targets builds its .o file with a different name, to avoid the race condition altogether. Created attachment 33391 [details, diff]
patch which fixes this bug
This patch fixes this bug by compiling the C and C++ version of DragAndDrop to
different names, preventing stompage by parallel makes. The C object file is
now DragAndDropC.o and the C++ object file is now DragAndDropCpp.o.
Created attachment 33392 [details]
ebuild which applies the Makefile patch.
ebuild which applies my previously submitted Makefile patch.
nice work, fixed in cvs. |