* [PATCH] Add and use 'localedir' variable
@ 2012-09-24 19:00 Christopher Larson
2012-09-24 21:00 ` Khem Raj
2012-09-25 9:42 ` Richard Purdie
0 siblings, 2 replies; 8+ messages in thread
From: Christopher Larson @ 2012-09-24 19:00 UTC (permalink / raw)
To: openembedded-core; +Cc: Christopher Larson
From: Christopher Larson <chris_larson@mentor.com>
This avoids the hardcoding of ${libdir}/locale which is all over the place,
and will facilitate use of ${exec_prefix}/lib/locale instead of
${libdir}/locale.
This doesn't actually change any output at this time. Verified this with
buildhistory against the packages produced from core-image-base.
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
meta/classes/libc-common.bbclass | 2 +-
meta/classes/libc-package.bbclass | 27 ++++++++++++++-------------
meta/conf/bitbake.conf | 1 +
meta/recipes-core/eglibc/eglibc-locale.inc | 6 +++---
meta/recipes-core/eglibc/eglibc-package.inc | 11 ++++++++---
meta/recipes-core/eglibc/eglibc.inc | 1 +
6 files changed, 28 insertions(+), 20 deletions(-)
diff --git a/meta/classes/libc-common.bbclass b/meta/classes/libc-common.bbclass
index 06d5201..0f49936 100644
--- a/meta/classes/libc-common.bbclass
+++ b/meta/classes/libc-common.bbclass
@@ -5,7 +5,7 @@ do_install() {
install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/
done
install -m 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/
- install -d ${D}${libdir}/locale
+ install -d ${D}${localedir}
make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
# get rid of some broken files...
for i in ${GLIBC_BROKEN_LOCALES}; do
diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-package.bbclass
index 70490ef..80d7124 100644
--- a/meta/classes/libc-package.bbclass
+++ b/meta/classes/libc-package.bbclass
@@ -65,12 +65,12 @@ fi
rm -rf ${TMP_LOCALE}
mkdir -p ${TMP_LOCALE}
-if [ -f ${libdir}/locale/locale-archive ]; then
- cp ${libdir}/locale/locale-archive ${TMP_LOCALE}/
+if [ -f ${localedir}/locale-archive ]; then
+ cp ${localedir}/locale-archive ${TMP_LOCALE}/
fi
localedef --inputfile=${datadir}/i18n/locales/%s --charmap=%s --prefix=/tmp/locale %s
-mkdir -p ${libdir}/locale/
-mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/
+mkdir -p ${localedir}/
+mv ${TMP_LOCALE}/locale-archive ${localedir}/
rm -rf ${TMP_LOCALE}
}
@@ -80,22 +80,22 @@ locale_base_postrm() {
rm -rf ${TMP_LOCALE}
mkdir -p ${TMP_LOCALE}
-if [ -f ${libdir}/locale/locale-archive ]; then
- cp ${libdir}/locale/locale-archive ${TMP_LOCALE}/
+if [ -f ${localedir}/locale-archive ]; then
+ cp ${localedir}/locale-archive ${TMP_LOCALE}/
fi
localedef --delete-from-archive --inputfile=${datadir}/locales/%s --charmap=%s --prefix=/tmp/locale %s
-mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/
+mv ${TMP_LOCALE}/locale-archive ${localedir}/
rm -rf ${TMP_LOCALE}
}
-TMP_LOCALE="/tmp/locale${libdir}/locale"
+TMP_LOCALE="/tmp/locale${localedir}"
LOCALETREESRC ?= "${PKGD}"
do_prep_locale_tree() {
treedir=${WORKDIR}/locale-tree
rm -rf $treedir
- mkdir -p $treedir/${base_bindir} $treedir/${base_libdir} $treedir/${datadir} $treedir/${libdir}/locale
+ mkdir -p $treedir/${base_bindir} $treedir/${base_libdir} $treedir/${datadir} $treedir/${localedir}
tar -cf - -C ${LOCALETREESRC}${datadir} -ps i18n | tar -xf - -C $treedir/${datadir}
# unzip to avoid parsing errors
for i in $treedir/${datadir}/i18n/charmaps/*gz; do
@@ -111,8 +111,9 @@ do_prep_locale_tree() {
do_collect_bins_from_locale_tree() {
treedir=${WORKDIR}/locale-tree
- mkdir -p ${PKGD}${libdir}
- tar -cf - -C $treedir/${libdir} -ps locale | tar -xf - -C ${PKGD}${libdir}
+ parent=$(dirname ${localedir})
+ mkdir -p ${PKGD}/$parent
+ tar -cf - -C $treedir/$parent -ps $(basename ${localedir}) | tar -xf - -C ${PKGD}$parent
}
inherit qemu
@@ -141,7 +142,7 @@ python package_do_split_gconvs () {
gconv_libdir = base_path_join(libdir, "gconv")
charmap_dir = base_path_join(datadir, "i18n", "charmaps")
locales_dir = base_path_join(datadir, "i18n", "locales")
- binary_locales_dir = base_path_join(libdir, "locale")
+ binary_locales_dir = d.getVar('localedir', True)
def calc_gconv_deps(fn, pkg, file_regex, output_pattern, group):
deps = []
@@ -259,7 +260,7 @@ python package_do_split_gconvs () {
path = d.getVar("PATH", True)
i18npath = base_path_join(treedir, datadir, "i18n")
gconvpath = base_path_join(treedir, "iconvdata")
- outputpath = base_path_join(treedir, libdir, "locale")
+ outputpath = base_path_join(treedir, binary_locales_dir)
use_cross_localedef = d.getVar("LOCALE_GENERATION_WITH_CROSS-LOCALEDEF", True) or "0"
if use_cross_localedef == "1":
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 9b41749..3496d2b 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -40,6 +40,7 @@ export libdir = "${exec_prefix}/${baselib}"
export includedir = "${exec_prefix}/include"
export oldincludedir = "${exec_prefix}/include"
export systemd_unitdir = "${base_libdir}/systemd"
+localedir = "${libdir}/locale"
# Linkage between native/cross/nativesdk layouts
base_bindir_native = "/bin"
diff --git a/meta/recipes-core/eglibc/eglibc-locale.inc b/meta/recipes-core/eglibc/eglibc-locale.inc
index 296afde..105cf2e 100644
--- a/meta/recipes-core/eglibc/eglibc-locale.inc
+++ b/meta/recipes-core/eglibc/eglibc-locale.inc
@@ -69,12 +69,12 @@ FILES_localedef = "${bindir}/localedef"
LOCALETREESRC = "${STAGING_INCDIR}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS}"
do_install () {
- mkdir -p ${D}${bindir} ${D}${datadir} ${D}${libdir}
+ mkdir -p ${D}${bindir} ${D}${datadir} ${D}${libdir} ${D}${localedir}
if [ -n "$(ls ${LOCALETREESRC}/${bindir})" ]; then
cp -fpPR ${LOCALETREESRC}/${bindir}/* ${D}${bindir}
fi
- if [ -e ${LOCALETREESRC}/${libdir}/locale ]; then
- cp -fpPR ${LOCALETREESRC}/${libdir}/locale ${D}${libdir}
+ if [ -n "$(ls ${LOCALETREESRC}/${localedir})" ]; then
+ cp -fpPR ${LOCALETREESRC}/${localedir}/* ${D}${localedir}
fi
if [ -e ${LOCALETREESRC}/${libdir}/gconv ]; then
cp -fpPR ${LOCALETREESRC}/${libdir}/gconv ${D}${libdir}
diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
index ab7540a..0059bcf 100644
--- a/meta/recipes-core/eglibc/eglibc-package.inc
+++ b/meta/recipes-core/eglibc/eglibc-package.inc
@@ -98,7 +98,9 @@ do_install_locale () {
if [ -e ${D}${libdir}/gconv ]; then
mv -f ${D}${libdir}/gconv ${dest}${libdir}
fi
- cp -fpPR ${D}${libdir}/* ${dest}${libdir}
+ if [ -e ${D}${exec_prefix}/lib ]; then
+ cp -fpPR ${D}${exec_prefix}/lib ${dest}${exec_prefix}
+ fi
if [ -e ${D}${datadir}/i18n ]; then
mv ${D}${datadir}/i18n ${dest}${datadir}
fi
@@ -113,6 +115,9 @@ PACKAGE_PREPROCESS_FUNCS += "eglibc_package_preprocess"
eglibc_package_preprocess () {
rm -rf ${PKGD}/${includedir}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS}
- rm -rf ${PKGD}/${libdir}/locale
+ rm -rf ${PKGD}/${localedir}
+ if [ "${libdir}" != "${exec_prefix}/lib" ]; then
+ # This dir only exists to hold locales
+ rm -rf ${PKGD}${exec_prefix}/lib
+ fi
}
-
diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc
index 29e303f..cae955d 100644
--- a/meta/recipes-core/eglibc/eglibc.inc
+++ b/meta/recipes-core/eglibc/eglibc.inc
@@ -34,6 +34,7 @@ LEAD_SONAME = "libc.so"
CACHED_CONFIGUREVARS += "ac_cv_path_KSH=${base_bindir}/bash \
ac_cv_path_BASH_SHELL=${base_bindir}/bash \
+ libc_cv_localedir=${localedir} \
libc_cv_ssp=no \
"
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH] Add and use 'localedir' variable
2012-09-24 19:00 [PATCH] Add and use 'localedir' variable Christopher Larson
@ 2012-09-24 21:00 ` Khem Raj
2012-09-24 21:04 ` Chris Larson
2012-09-25 9:42 ` Richard Purdie
1 sibling, 1 reply; 8+ messages in thread
From: Khem Raj @ 2012-09-24 21:00 UTC (permalink / raw)
To: Christopher Larson; +Cc: Christopher Larson, openembedded-core
On Mon, Sep 24, 2012 at 12:00 PM, Christopher Larson <kergoth@gmail.com> wrote:
> From: Christopher Larson <chris_larson@mentor.com>
>
> This avoids the hardcoding of ${libdir}/locale which is all over the place,
> and will facilitate use of ${exec_prefix}/lib/locale instead of
> ${libdir}/locale.
what is adavantage of letting use ${exec_prefix}/lib/locale ? Do you have a case
where you share locale between multilibs ?
>
> This doesn't actually change any output at this time. Verified this with
> buildhistory against the packages produced from core-image-base.
>
> Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> ---
> meta/classes/libc-common.bbclass | 2 +-
> meta/classes/libc-package.bbclass | 27 ++++++++++++++-------------
> meta/conf/bitbake.conf | 1 +
> meta/recipes-core/eglibc/eglibc-locale.inc | 6 +++---
> meta/recipes-core/eglibc/eglibc-package.inc | 11 ++++++++---
> meta/recipes-core/eglibc/eglibc.inc | 1 +
> 6 files changed, 28 insertions(+), 20 deletions(-)
>
> diff --git a/meta/classes/libc-common.bbclass b/meta/classes/libc-common.bbclass
> index 06d5201..0f49936 100644
> --- a/meta/classes/libc-common.bbclass
> +++ b/meta/classes/libc-common.bbclass
> @@ -5,7 +5,7 @@ do_install() {
> install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/
> done
> install -m 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/
> - install -d ${D}${libdir}/locale
> + install -d ${D}${localedir}
> make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
> # get rid of some broken files...
> for i in ${GLIBC_BROKEN_LOCALES}; do
> diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-package.bbclass
> index 70490ef..80d7124 100644
> --- a/meta/classes/libc-package.bbclass
> +++ b/meta/classes/libc-package.bbclass
> @@ -65,12 +65,12 @@ fi
>
> rm -rf ${TMP_LOCALE}
> mkdir -p ${TMP_LOCALE}
> -if [ -f ${libdir}/locale/locale-archive ]; then
> - cp ${libdir}/locale/locale-archive ${TMP_LOCALE}/
> +if [ -f ${localedir}/locale-archive ]; then
> + cp ${localedir}/locale-archive ${TMP_LOCALE}/
> fi
> localedef --inputfile=${datadir}/i18n/locales/%s --charmap=%s --prefix=/tmp/locale %s
> -mkdir -p ${libdir}/locale/
> -mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/
> +mkdir -p ${localedir}/
> +mv ${TMP_LOCALE}/locale-archive ${localedir}/
> rm -rf ${TMP_LOCALE}
> }
>
> @@ -80,22 +80,22 @@ locale_base_postrm() {
>
> rm -rf ${TMP_LOCALE}
> mkdir -p ${TMP_LOCALE}
> -if [ -f ${libdir}/locale/locale-archive ]; then
> - cp ${libdir}/locale/locale-archive ${TMP_LOCALE}/
> +if [ -f ${localedir}/locale-archive ]; then
> + cp ${localedir}/locale-archive ${TMP_LOCALE}/
> fi
> localedef --delete-from-archive --inputfile=${datadir}/locales/%s --charmap=%s --prefix=/tmp/locale %s
> -mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/
> +mv ${TMP_LOCALE}/locale-archive ${localedir}/
> rm -rf ${TMP_LOCALE}
> }
>
>
> -TMP_LOCALE="/tmp/locale${libdir}/locale"
> +TMP_LOCALE="/tmp/locale${localedir}"
> LOCALETREESRC ?= "${PKGD}"
>
> do_prep_locale_tree() {
> treedir=${WORKDIR}/locale-tree
> rm -rf $treedir
> - mkdir -p $treedir/${base_bindir} $treedir/${base_libdir} $treedir/${datadir} $treedir/${libdir}/locale
> + mkdir -p $treedir/${base_bindir} $treedir/${base_libdir} $treedir/${datadir} $treedir/${localedir}
> tar -cf - -C ${LOCALETREESRC}${datadir} -ps i18n | tar -xf - -C $treedir/${datadir}
> # unzip to avoid parsing errors
> for i in $treedir/${datadir}/i18n/charmaps/*gz; do
> @@ -111,8 +111,9 @@ do_prep_locale_tree() {
> do_collect_bins_from_locale_tree() {
> treedir=${WORKDIR}/locale-tree
>
> - mkdir -p ${PKGD}${libdir}
> - tar -cf - -C $treedir/${libdir} -ps locale | tar -xf - -C ${PKGD}${libdir}
> + parent=$(dirname ${localedir})
> + mkdir -p ${PKGD}/$parent
> + tar -cf - -C $treedir/$parent -ps $(basename ${localedir}) | tar -xf - -C ${PKGD}$parent
> }
>
> inherit qemu
> @@ -141,7 +142,7 @@ python package_do_split_gconvs () {
> gconv_libdir = base_path_join(libdir, "gconv")
> charmap_dir = base_path_join(datadir, "i18n", "charmaps")
> locales_dir = base_path_join(datadir, "i18n", "locales")
> - binary_locales_dir = base_path_join(libdir, "locale")
> + binary_locales_dir = d.getVar('localedir', True)
>
> def calc_gconv_deps(fn, pkg, file_regex, output_pattern, group):
> deps = []
> @@ -259,7 +260,7 @@ python package_do_split_gconvs () {
> path = d.getVar("PATH", True)
> i18npath = base_path_join(treedir, datadir, "i18n")
> gconvpath = base_path_join(treedir, "iconvdata")
> - outputpath = base_path_join(treedir, libdir, "locale")
> + outputpath = base_path_join(treedir, binary_locales_dir)
>
> use_cross_localedef = d.getVar("LOCALE_GENERATION_WITH_CROSS-LOCALEDEF", True) or "0"
> if use_cross_localedef == "1":
> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> index 9b41749..3496d2b 100644
> --- a/meta/conf/bitbake.conf
> +++ b/meta/conf/bitbake.conf
> @@ -40,6 +40,7 @@ export libdir = "${exec_prefix}/${baselib}"
> export includedir = "${exec_prefix}/include"
> export oldincludedir = "${exec_prefix}/include"
> export systemd_unitdir = "${base_libdir}/systemd"
> +localedir = "${libdir}/locale"
>
> # Linkage between native/cross/nativesdk layouts
> base_bindir_native = "/bin"
> diff --git a/meta/recipes-core/eglibc/eglibc-locale.inc b/meta/recipes-core/eglibc/eglibc-locale.inc
> index 296afde..105cf2e 100644
> --- a/meta/recipes-core/eglibc/eglibc-locale.inc
> +++ b/meta/recipes-core/eglibc/eglibc-locale.inc
> @@ -69,12 +69,12 @@ FILES_localedef = "${bindir}/localedef"
> LOCALETREESRC = "${STAGING_INCDIR}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS}"
>
> do_install () {
> - mkdir -p ${D}${bindir} ${D}${datadir} ${D}${libdir}
> + mkdir -p ${D}${bindir} ${D}${datadir} ${D}${libdir} ${D}${localedir}
> if [ -n "$(ls ${LOCALETREESRC}/${bindir})" ]; then
> cp -fpPR ${LOCALETREESRC}/${bindir}/* ${D}${bindir}
> fi
> - if [ -e ${LOCALETREESRC}/${libdir}/locale ]; then
> - cp -fpPR ${LOCALETREESRC}/${libdir}/locale ${D}${libdir}
> + if [ -n "$(ls ${LOCALETREESRC}/${localedir})" ]; then
> + cp -fpPR ${LOCALETREESRC}/${localedir}/* ${D}${localedir}
> fi
> if [ -e ${LOCALETREESRC}/${libdir}/gconv ]; then
> cp -fpPR ${LOCALETREESRC}/${libdir}/gconv ${D}${libdir}
> diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
> index ab7540a..0059bcf 100644
> --- a/meta/recipes-core/eglibc/eglibc-package.inc
> +++ b/meta/recipes-core/eglibc/eglibc-package.inc
> @@ -98,7 +98,9 @@ do_install_locale () {
> if [ -e ${D}${libdir}/gconv ]; then
> mv -f ${D}${libdir}/gconv ${dest}${libdir}
> fi
> - cp -fpPR ${D}${libdir}/* ${dest}${libdir}
> + if [ -e ${D}${exec_prefix}/lib ]; then
> + cp -fpPR ${D}${exec_prefix}/lib ${dest}${exec_prefix}
> + fi
> if [ -e ${D}${datadir}/i18n ]; then
> mv ${D}${datadir}/i18n ${dest}${datadir}
> fi
> @@ -113,6 +115,9 @@ PACKAGE_PREPROCESS_FUNCS += "eglibc_package_preprocess"
>
> eglibc_package_preprocess () {
> rm -rf ${PKGD}/${includedir}/eglibc-locale-internal-${MULTIMACH_TARGET_SYS}
> - rm -rf ${PKGD}/${libdir}/locale
> + rm -rf ${PKGD}/${localedir}
> + if [ "${libdir}" != "${exec_prefix}/lib" ]; then
> + # This dir only exists to hold locales
> + rm -rf ${PKGD}${exec_prefix}/lib
> + fi
> }
> -
> diff --git a/meta/recipes-core/eglibc/eglibc.inc b/meta/recipes-core/eglibc/eglibc.inc
> index 29e303f..cae955d 100644
> --- a/meta/recipes-core/eglibc/eglibc.inc
> +++ b/meta/recipes-core/eglibc/eglibc.inc
> @@ -34,6 +34,7 @@ LEAD_SONAME = "libc.so"
>
> CACHED_CONFIGUREVARS += "ac_cv_path_KSH=${base_bindir}/bash \
> ac_cv_path_BASH_SHELL=${base_bindir}/bash \
> + libc_cv_localedir=${localedir} \
> libc_cv_ssp=no \
> "
>
> --
> 1.7.9.5
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH] Add and use 'localedir' variable
2012-09-24 21:00 ` Khem Raj
@ 2012-09-24 21:04 ` Chris Larson
2012-09-24 21:11 ` Mark Hatle
2012-09-24 21:16 ` Khem Raj
0 siblings, 2 replies; 8+ messages in thread
From: Chris Larson @ 2012-09-24 21:04 UTC (permalink / raw)
To: Khem Raj; +Cc: openembedded-core
On Mon, Sep 24, 2012 at 2:00 PM, Khem Raj <raj.khem@gmail.com> wrote:
> On Mon, Sep 24, 2012 at 12:00 PM, Christopher Larson <kergoth@gmail.com> wrote:
>> From: Christopher Larson <chris_larson@mentor.com>
>>
>> This avoids the hardcoding of ${libdir}/locale which is all over the place,
>> and will facilitate use of ${exec_prefix}/lib/locale instead of
>> ${libdir}/locale.
>
> what is adavantage of letting use ${exec_prefix}/lib/locale ? Do you have a case
> where you share locale between multilibs ?
This is the case by default for all eglibc builds that set libdir to
the default. See https://gist.github.com/3756705 — there's another
block just like that for all the other 64 bit archs for eglibc. When
we pass —libdir=/usr/lib64, it skips this logic.
So changing it would just bring us inline with the default eglibc
behavior. The binary locale files are, as far as I'm aware, a
relatively arch independent binary format. There's no point or benefit
to having lib32 vs lib64 copies, they'd just be duplicated content.
If it wasn't for the forthcoming 1.3 release, I'd have included the
proposed change to the default localedir to ${exec_prefix}/lib/locale
with this patch.
--
Christopher Larson
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH] Add and use 'localedir' variable
2012-09-24 21:04 ` Chris Larson
@ 2012-09-24 21:11 ` Mark Hatle
2012-09-24 21:14 ` Chris Larson
2012-09-24 21:16 ` Khem Raj
1 sibling, 1 reply; 8+ messages in thread
From: Mark Hatle @ 2012-09-24 21:11 UTC (permalink / raw)
To: openembedded-core
On 9/24/12 4:04 PM, Chris Larson wrote:
> On Mon, Sep 24, 2012 at 2:00 PM, Khem Raj <raj.khem@gmail.com> wrote:
>> On Mon, Sep 24, 2012 at 12:00 PM, Christopher Larson <kergoth@gmail.com> wrote:
>>> From: Christopher Larson <chris_larson@mentor.com>
>>>
>>> This avoids the hardcoding of ${libdir}/locale which is all over the place,
>>> and will facilitate use of ${exec_prefix}/lib/locale instead of
>>> ${libdir}/locale.
>>
>> what is adavantage of letting use ${exec_prefix}/lib/locale ? Do you have a case
>> where you share locale between multilibs ?
>
> This is the case by default for all eglibc builds that set libdir to
> the default. See https://gist.github.com/3756705 — there's another
> block just like that for all the other 64 bit archs for eglibc. When
> we pass —libdir=/usr/lib64, it skips this logic.
>
> So changing it would just bring us inline with the default eglibc
> behavior. The binary locale files are, as far as I'm aware, a
> relatively arch independent binary format. There's no point or benefit
> to having lib32 vs lib64 copies, they'd just be duplicated content.
They are endian and locale word size dependent. (It just happens to be that all
of our architectures use the unit32-aligned=4 structures.) :)
So they are sharable between ABIs on the same arch for sure.
--Mark
> If it wasn't for the forthcoming 1.3 release, I'd have included the
> proposed change to the default localedir to ${exec_prefix}/lib/locale
> with this patch.
>
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH] Add and use 'localedir' variable
2012-09-24 21:11 ` Mark Hatle
@ 2012-09-24 21:14 ` Chris Larson
0 siblings, 0 replies; 8+ messages in thread
From: Chris Larson @ 2012-09-24 21:14 UTC (permalink / raw)
To: Mark Hatle; +Cc: openembedded-core
On Mon, Sep 24, 2012 at 2:11 PM, Mark Hatle <mark.hatle@windriver.com> wrote:
> On 9/24/12 4:04 PM, Chris Larson wrote:
>>
>> On Mon, Sep 24, 2012 at 2:00 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>>
>>> On Mon, Sep 24, 2012 at 12:00 PM, Christopher Larson <kergoth@gmail.com>
>>> wrote:
>>>>
>>>> From: Christopher Larson <chris_larson@mentor.com>
>>>>
>>>> This avoids the hardcoding of ${libdir}/locale which is all over the
>>>> place,
>>>> and will facilitate use of ${exec_prefix}/lib/locale instead of
>>>> ${libdir}/locale.
>>>
>>>
>>> what is adavantage of letting use ${exec_prefix}/lib/locale ? Do you have
>>> a case
>>> where you share locale between multilibs ?
>>
>>
>> This is the case by default for all eglibc builds that set libdir to
>> the default. See https://gist.github.com/3756705 — there's another
>> block just like that for all the other 64 bit archs for eglibc. When
>> we pass —libdir=/usr/lib64, it skips this logic.
>>
>> So changing it would just bring us inline with the default eglibc
>> behavior. The binary locale files are, as far as I'm aware, a
>> relatively arch independent binary format. There's no point or benefit
>> to having lib32 vs lib64 copies, they'd just be duplicated content.
>
>
> They are endian and locale word size dependent. (It just happens to be that
> all of our architectures use the unit32-aligned=4 structures.) :)
>
> So they are sharable between ABIs on the same arch for sure.
Ah, thanks for the clarification.
--
Christopher Larson
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] Add and use 'localedir' variable
2012-09-24 21:04 ` Chris Larson
2012-09-24 21:11 ` Mark Hatle
@ 2012-09-24 21:16 ` Khem Raj
2012-09-24 21:35 ` Chris Larson
1 sibling, 1 reply; 8+ messages in thread
From: Khem Raj @ 2012-09-24 21:16 UTC (permalink / raw)
To: Chris Larson; +Cc: openembedded-core
On Mon, Sep 24, 2012 at 2:04 PM, Chris Larson <kergoth@gmail.com> wrote:
>
> This is the case by default for all eglibc builds that set libdir to
> the default. See https://gist.github.com/3756705 — there's another
> block just like that for all the other 64 bit archs for eglibc. When
> we pass —libdir=/usr/lib64, it skips this logic.
>
> So changing it would just bring us inline with the default eglibc
> behavior. The binary locale files are, as far as I'm aware, a
> relatively arch independent binary format. There's no point or benefit
> to having lib32 vs lib64 copies, they'd just be duplicated content.
>
> If it wasn't for the forthcoming 1.3 release, I'd have included the
> proposed change to the default localedir to ${exec_prefix}/lib/locale
> with this patch.
Mark explained the change here so it is OK for OE internal. I hope
external toolchains
are also fine with it.
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH] Add and use 'localedir' variable
2012-09-24 21:16 ` Khem Raj
@ 2012-09-24 21:35 ` Chris Larson
0 siblings, 0 replies; 8+ messages in thread
From: Chris Larson @ 2012-09-24 21:35 UTC (permalink / raw)
To: Khem Raj; +Cc: openembedded-core
On Mon, Sep 24, 2012 at 2:16 PM, Khem Raj <raj.khem@gmail.com> wrote:
> On Mon, Sep 24, 2012 at 2:04 PM, Chris Larson <kergoth@gmail.com> wrote:
>>
>> This is the case by default for all eglibc builds that set libdir to
>> the default. See https://gist.github.com/3756705 — there's another
>> block just like that for all the other 64 bit archs for eglibc. When
>> we pass —libdir=/usr/lib64, it skips this logic.
>>
>> So changing it would just bring us inline with the default eglibc
>> behavior. The binary locale files are, as far as I'm aware, a
>> relatively arch independent binary format. There's no point or benefit
>> to having lib32 vs lib64 copies, they'd just be duplicated content.
>>
>> If it wasn't for the forthcoming 1.3 release, I'd have included the
>> proposed change to the default localedir to ${exec_prefix}/lib/locale
>> with this patch.
>
> Mark explained the change here so it is OK for OE internal. I hope
> external toolchains
> are also fine with it.
That's actually why I need this. The Sourcery G++ toolchains were
built such that locales are in lib/ and libraries are in lib64/, but
the metadata didn't allow a way to control that behavior, resulting in
eglibc-locale failure.
--
Christopher Larson
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] Add and use 'localedir' variable
2012-09-24 19:00 [PATCH] Add and use 'localedir' variable Christopher Larson
2012-09-24 21:00 ` Khem Raj
@ 2012-09-25 9:42 ` Richard Purdie
1 sibling, 0 replies; 8+ messages in thread
From: Richard Purdie @ 2012-09-25 9:42 UTC (permalink / raw)
To: Christopher Larson; +Cc: Christopher Larson, openembedded-core
On Mon, 2012-09-24 at 12:00 -0700, Christopher Larson wrote:
> From: Christopher Larson <chris_larson@mentor.com>
>
> This avoids the hardcoding of ${libdir}/locale which is all over the place,
> and will facilitate use of ${exec_prefix}/lib/locale instead of
> ${libdir}/locale.
>
> This doesn't actually change any output at this time. Verified this with
> buildhistory against the packages produced from core-image-base.
>
> Signed-off-by: Christopher Larson <chris_larson@mentor.com>
> ---
> meta/classes/libc-common.bbclass | 2 +-
> meta/classes/libc-package.bbclass | 27 ++++++++++++++-------------
> meta/conf/bitbake.conf | 1 +
> meta/recipes-core/eglibc/eglibc-locale.inc | 6 +++---
> meta/recipes-core/eglibc/eglibc-package.inc | 11 ++++++++---
> meta/recipes-core/eglibc/eglibc.inc | 1 +
> 6 files changed, 28 insertions(+), 20 deletions(-)
I appreciate the buildhistory tests :)
Merged to master, thanks.
Richard
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-09-25 9:55 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-24 19:00 [PATCH] Add and use 'localedir' variable Christopher Larson
2012-09-24 21:00 ` Khem Raj
2012-09-24 21:04 ` Chris Larson
2012-09-24 21:11 ` Mark Hatle
2012-09-24 21:14 ` Chris Larson
2012-09-24 21:16 ` Khem Raj
2012-09-24 21:35 ` Chris Larson
2012-09-25 9:42 ` Richard Purdie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox