The build fails to find a file that was just created. Reproducible: Always Steps to Reproduce: use: MAKEOPTS="-j10" emerge -1 '=media-gfx/exiv2-0.24-r1' Actual Results: make[1]: Entering directory '/var/tmp/portage/media-gfx/exiv2-0.24-r1/work/exiv2-0.24-abi_x86_64.amd64/src' LC_ALL=C LC_ALL=C sed 's/#define \([A-Z]\)/#define EXV_\1/; s/#undef \([A-Z]\)/#undef EXV_\1/' < ../config/config.h > exv_conf.h x86_64-pc-linux-gnu-g++ -O2 -pipe -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wcast-align -Wpointer-arith -Wformat-security -Wmissing-format-attribute -Woverloaded-virtual -W -I. -DEXV_LOCALEDIR=\"/usr/share/locale\" -I../xmpsdk/include -c -o exiv2.o exiv2.cpp x86_64-pc-linux-gnu-g++ -O2 -pipe -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wcast-align -Wpointer-arith -Wformat-security -Wmissing-format-attribute -Woverloaded-virtual -W -I. -DEXV_LOCALEDIR=\"/usr/share/locale\" -I../xmpsdk/include -c -o actions.o actions.cpp x86_64-pc-linux-gnu-g++ -O2 -pipe -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wcast-align -Wpointer-arith -Wformat-security -Wmissing-format-attribute -Woverloaded-virtual -W -I. -DEXV_LOCALEDIR=\"/usr/share/locale\" -I../xmpsdk/include -c -o utils.o utils.cpp actions.cpp:37:23: fatal error: exv_conf.h: No such file or directory # include "exv_conf.h" ^ compilation terminated. Makefile:192: recipe for target 'actions.o' failed make[1]: *** [actions.o] Error 1 make[1]: *** Waiting for unfinished jobs.... the ebuild worked fine after removing the "-j10" MAKEOPTS.
1) Please post your `emerge --info' output in a comment. 2) Please attach the entire build log to this bug report.
Created attachment 395342 [details] emerge --info
Created attachment 395344 [details] build.log
Created attachment 395346 [details, diff] /etc/portage/patches/media-gfx/exiv2-0.24-r1/sleep.patch this patch should just delay the single instruction but it breaks the build as the other jobs are starting before the file is written to disk
I had to create a simple patch as I could not repeat the problem. It failed multiple times before with "-j10", after building it ("-j1" never failed again on "-j10". It always fails with the patch, when using "-j10". The dependend jobs start while the job generating the include file is still sleeping.
Comment on attachment 395346 [details, diff] /etc/portage/patches/media-gfx/exiv2-0.24-r1/sleep.patch The proper way to fix parallel make issues in Makefiles is to set appropriate dependencies for each target.
The horribly convoluted src/Makefile suggests defining DEP_TRACKING might help.
I can confirm, that I was able to build this -j1. The parallelization breaks the build.
Hello, I am new at using Gentoo: Started 4 days ago. (But I am using other linuxes now for several decades..) I encountered this issue and found this fix at the freebsd community: description: http://lists.freebsd.org/pipermail/freebsd-ports-bugs/2015-February/302641.html patch: https://bz-attachments.freebsd.org/attachment.cgi?id=153089 From what I know of gmake files, this looks very plausible. Maybe someone more knowledgeable about gentoo can inspect and possibly merge this? Because, even if I found the place to patch it into my code and make it compile, I do not even have a clue how to test the resulting piece of software ... :-( (.. plausibility does not buy you much if the build is broken ;-) Many Thanks Ulrich
Created attachment 413642 [details, diff] Patch Patch from referenced FreeBSD Bug
(In reply to Ulrich Becker from comment #9) > Maybe someone more knowledgeable about gentoo can inspect and possibly merge > this? Because, even if I found the place to patch it into my code and make > it compile, I do not even have a clue how to test the resulting piece of > software ... :-( (.. plausibility does not buy you much if the build > is broken ;-) > > > Many Thanks > Ulrich I've attached the patch from the bug to this one...
Please test if exiv2-0.25 (now using cmake) is fixing the issue.