[OE-core] [PATCH v2] libc6: improve reproducibility

Khem Raj raj.khem at gmail.com
Tue Jan 23 15:54:40 UTC 2018


On Mon, Jan 22, 2018 at 4:59 PM, Juro Bystricky
<juro.bystricky at intel.com> wrote:
> Building various libraries (libc6, libc6-pic, libc6-staticdev, libc6-dbg, ...)
> can be non-deterministic because they may be built with two different versions
> of intl/plural.c. in two otherwise identical builds. We may or may not re-generate
> the file plural.c from the file plural.y, based on bison being installed or not
> and based on mtimes of those two files, as the Makefile contains:
>
> plural.c: plural.y
>         $(BISON) $(BISONFLAGS) $@ $^
>
> If the above rule does not fire, we use a "fallback" plural.c, otherwise
> we use plural.c re-generated from plural.y.
> The fix is to always require bison to be installed and unconditionally
> re-generate plural.c. (This is achieved by touching plural.y).
>
> [YOCTO #12291]

2.27 will be there for next release. So I wonder if we should just wait.

>
> Signed-off-by: Juro Bystricky <juro.bystricky at intel.com>
> ---
>  meta/recipes-core/glibc/glibc_2.26.bb | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/meta/recipes-core/glibc/glibc_2.26.bb b/meta/recipes-core/glibc/glibc_2.26.bb
> index 04d9773..0ee5bdb 100644
> --- a/meta/recipes-core/glibc/glibc_2.26.bb
> +++ b/meta/recipes-core/glibc/glibc_2.26.bb
> @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSES;md5=e9a558e243b36d3209f380deb394b213 \
>        file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
>        file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
>
> -DEPENDS += "gperf-native"
> +DEPENDS += "gperf-native bison-native"
>
>  SRCREV ?= "77f921dac17c5fa99bd9e926d926c327982895f7"
>
> @@ -103,6 +103,10 @@ do_configure () {
>  # version check and doesn't really help with anything
>          (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
>          find ${S} -name "configure" | xargs touch
> +        # "plural.c" may or may not get regenerated from "plural.y" so we
> +        # touch "plural.y" to make sure it does. (This should not be needed
> +        # for glibc version 2.26+)
> +        find ${S}/intl -name "plural.y" | xargs touch
>          CPPFLAGS="" oe_runconf
>  }
>
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



More information about the Openembedded-core mailing list