Created attachment 3324 [details] do_install log When I try to build ncurses-native with master on my CentOS 7 build machine it fails at do_install because some .pc files that should have been generated weren't (log attached). I've had this issue repeatedly, cleaning and rebuilding doesn't help, though using make -j1 does - so that would suggest it's a parallel make race. It also doesn't occur on my other Fedora 23 build machine. I've examined the Makefile but I can't see what could be wrong - it looks like the rule it has the right dependencies to me, but the dependency isn't being run. If it makes any difference, the CentOS 7 machine is using buildtools containing make 4.2.
Created attachment 3325 [details] Makefile from build/narrowc/misc I'm attaching the Makefile in question for reference.
Just to clarify: Is this 100% repeatable? There used to be a race between install.libs and install.headers, but that's been fixed: http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?h=krogoth&id=3b8cd1db0d388e50c010899352f641d66e73279c (It is possible there are other races as well)
Well, I can't say for certain that it's 100%, but I can say it's failed for me every time and I've run it at least six times now.
Is this just a missing package that we need to install on the host? The Wind River Linux distro requires that users install ncurses for: RH5_x86_64 RH6_x86_64 RH7_x86_64 F19_x86_64 U1004_x86_64 U1204_x86_64 OS121_x86_64 SLED112_x86_64 SLED12_x86_64 For RHEL7/CentOS7, the package is: ncurses-libs.i686 . I don't recall offhand why the i686 version is needed rather than the 64 bit one but that's consistent across all distros. If so docs updates should at least include: http://www.yoctoproject.org/docs/2.1/yocto-project-qs/yocto-project-qs.html
So I can easily reproduce the problem (so far 100%) using Ubuntu 14 with make version 4.2. (Using poky commit 7f9d339a0368cd990b55d2eb8f39b7a6908d6f8a). Steps to reproduce: 1. Download make 4.2 from https://ftp.gnu.org/gnu/make/ 2. Unpack 3. ./configure 4. make 5. sudo make install Verify make is version 4.2: $ make --version GNU Make 4.2 Built for x86_64-pc-linux-gnu Copyright (C) 1988-2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ... $ bitbake ncurses-native So not a Centos7 issue, very likely make 4.2 issue, as the problem is not observed with make 3.81
So far ncurses-native is the only recipe that fails with make 4.2, so probably the recipe for ncurses has some deficiencies.
I noticed the makefile makes use of double-colon rules - I wonder if that's the trigger for this bad behaviour?
(In reply to comment #7) > I noticed the makefile makes use of double-colon rules - I wonder if that's > the trigger for this bad behaviour? Yes, that is exactly what I suspect. There don't seem to be any other Makefiles that use '::' (except for all::) , so I am pretty sure that is the culprit. I think make 4.2 parallelizes rules with '::' , which is, I believe, a bug. Anyway, about to investigate this today in detail.
The problem is fixed with GNU make 4.2.1, see: https://lists.gnu.org/archive/html/info-gnu/2016-06/msg00005.html discussion here: https://lists.gnu.org/archive/html/bug-make/2016-05/msg00026.html