at: explicitly depend on bison-native for deterministic builds

Message ID 1515536661-51529-1-git-send-email-denis@denix.org
State New
Headers show
Series
  • at: explicitly depend on bison-native for deterministic builds
Related show

Commit Message

Denys Dmytriyenko Jan. 9, 2018, 10:24 p.m.
From: Denys Dmytriyenko <denys@ti.com>


Usually bison-native gets into sysroot through indirect dependencies,
even with RSS. But when bison-native is not in sysroot, due to different
system config, it falls back to using "yacc" instead and fails like this:

| yacc -d parsetime.y
| make: yacc: Command not found
| Makefile:82: recipe for target 'y.tab.c' failed
| make: *** [y.tab.c] Error 127

Signed-off-by: Denys Dmytriyenko <denys@ti.com>

---
 meta/recipes-extended/at/at_3.1.20.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.7.4

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Comments

Richard Purdie Jan. 9, 2018, 11:11 p.m. | #1
On Tue, 2018-01-09 at 17:24 -0500, Denys Dmytriyenko wrote:
> From: Denys Dmytriyenko <denys@ti.com>

> 

> Usually bison-native gets into sysroot through indirect dependencies,

> even with RSS. But when bison-native is not in sysroot, due to

> different

> system config,


Any idea what that "different system config" is?

I get worried about things like this and would like to understand it a
little better...

Cheers,

Richard


-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Denys Dmytriyenko Jan. 10, 2018, 1:33 a.m. | #2
On Tue, Jan 09, 2018 at 11:11:56PM +0000, Richard Purdie wrote:
> On Tue, 2018-01-09 at 17:24 -0500, Denys Dmytriyenko wrote:

> > From: Denys Dmytriyenko <denys@ti.com>

> > 

> > Usually bison-native gets into sysroot through indirect dependencies,

> > even with RSS. But when bison-native is not in sysroot, due to

> > different

> > system config,

> 

> Any idea what that "different system config" is?

> 

> I get worried about things like this and would like to understand it a

> little better...


Well, if you check recipe-sysroot-native of any target package, you'll see 
that bison-native gets staged for absolutely all target packages, regardless 
of explicit dependencies listed in the corresponding recipe. So, it must be 
coming indirectly from a toolchain dependency. And binutils-cross appears to 
DEPENDS on bison-native. In my case, I'm using an external toolchain and not 
building binutils-cross, hence not getting its dependencies indirectly.

BTW, to verify this theory, I modified binutils and removed bison-native 
dependency, added bison to HOSTTOOLS and now "at" package doesn't have it in 
recipe-sysroot-native. So, the patch is to make this dependency explicit.

-- 
Denys
-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/recipes-extended/at/at_3.1.20.bb b/meta/recipes-extended/at/at_3.1.20.bb
index 9b537ee..8fe3b43 100644
--- a/meta/recipes-extended/at/at_3.1.20.bb
+++ b/meta/recipes-extended/at/at_3.1.20.bb
@@ -5,7 +5,7 @@  the system load levels drop to a particular level."
 SECTION = "base"
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
-DEPENDS = "flex flex-native \
+DEPENDS = "flex flex-native bison-native \
            ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
 
 RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_DEPS}', '', d)} \