Patchwork eglibc: Add gettext-native to DEPENDS

login
register
mail settings
Submitter Phil Blundell
Date April 23, 2013, 4:44 p.m.
Message ID <1366735483.5732.18.camel@phil-desktop.brightsign>
Download mbox | patch
Permalink /patch/48703/
State New
Headers show

Comments

Phil Blundell - April 23, 2013, 4:44 p.m.
Otherwise you get:

| msgfmt -o be.mo be.po
| msgfmt -o bg.mo bg.po
| msgfmt -o ca.mo ca.po
| /bin/bash: msgfmt: command not found
| make[2]: *** [be.mo] Error 127
| make[2]: *** Waiting for unfinished jobs....
| /bin/bash: msgfmt: command not found
| make[2]: *** [ca.mo] Error 127
| /bin/bash: msgfmt: command not found
| make[2]: *** [bg.mo] Error 127

if msgfmt isn't available in the host environment.

Signed-off-by: Phil Blundell <philb@gnu.org>
---
 meta/recipes-core/eglibc/eglibc.inc |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Richard Purdie - April 23, 2013, 9:45 p.m.
On Tue, 2013-04-23 at 17:44 +0100, Phil Blundell wrote:
> Otherwise you get:
> 
> | msgfmt -o be.mo be.po
> | msgfmt -o bg.mo bg.po
> | msgfmt -o ca.mo ca.po
> | /bin/bash: msgfmt: command not found
> | make[2]: *** [be.mo] Error 127
> | make[2]: *** Waiting for unfinished jobs....
> | /bin/bash: msgfmt: command not found
> | make[2]: *** [ca.mo] Error 127
> | /bin/bash: msgfmt: command not found
> | make[2]: *** [bg.mo] Error 127
> 
> if msgfmt isn't available in the host environment.
> 
> Signed-off-by: Phil Blundell <philb@gnu.org>
> ---
>  meta/recipes-core/eglibc/eglibc.inc |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc
> index 1e04197..38d8c44 100644
> --- a/meta/recipes-core/eglibc/eglibc.inc
> +++ b/meta/recipes-core/eglibc/eglibc.inc
> @@ -33,7 +33,7 @@ siteconfig_do_siteconfig_gencache_prepend = " \
>  "
>  
>  # nptl needs unwind support in gcc, which can't be built without glibc.
> -DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial"
> +DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial gettext-native"
>  # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
>  #RDEPENDS_${PN} += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
>  PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"

This will have a significant adverse affect on build speed due to build
dependency bottlenecks :(

Are there any good options for avoiding this?

Cheers,

Richard
Phil Blundell - April 24, 2013, 7:58 a.m.
On Tue, 2013-04-23 at 22:45 +0100, Richard Purdie wrote:
> On Tue, 2013-04-23 at 17:44 +0100, Phil Blundell wrote:
> >  # nptl needs unwind support in gcc, which can't be built without glibc.
> > -DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial"
> > +DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial gettext-native"
> >  # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
> >  #RDEPENDS_${PN} += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
> >  PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
> 
> This will have a significant adverse affect on build speed due to build
> dependency bottlenecks :(
> 
> Are there any good options for avoiding this?

Well, obviously folks who do have it in the host environment can set
ASSUME_PROVIDED.  I assume most people do have that installed, otherwise
this would be failing all the time.

Other than that, I think your options are:

1. figure out a way to defer catalog building to later, e.g. put it in
eglibc-locale instead.  This would probably involve some hacking of the
eglibc makefiles but I don't think it would be especially hard.

2. find a way to disable catalog generation entirely for folks who don't
want it.  That might involve inventing DISTRO_FEATURES="l10n" or
something and patching (albeit trivial) to both configure.in and the
makefiles.  I imagine that change would be upstreamable in eglibc.

3. reimplement msgcat as a python script or something else that doesn't
need compiling, or pull out msgcat.c into its own recipe that just
builds this single file (avoiding the autotools overhead that
gettext-native has).

I can't think of any other obvious choices offhand but I'm sure there
are more.

The thing that does seem a bit puzzling is that this problem didn't use
to happen with older versions of oe-core (in particular, I never saw it
with my previous snapshot which used eglibc 2.16).  I'm not quite sure
what changed to make it suddenly become an issue.

p.

Patch

diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc
index 1e04197..38d8c44 100644
--- a/meta/recipes-core/eglibc/eglibc.inc
+++ b/meta/recipes-core/eglibc/eglibc.inc
@@ -33,7 +33,7 @@  siteconfig_do_siteconfig_gencache_prepend = " \
 "
 
 # nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial gettext-native"
 # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
 #RDEPENDS_${PN} += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
 PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"