cross-localedef-native: add way to specify which locale archive to write
localedef has no way to specify which locale archive to use, and the compile-time default isn't useful as it points to the work directory. Add support to read an environmental variable for the path, and don't fail to write a new locale archive. (From OE-Core rev: bf0f205a3c3714926649bd69db29e4df1c0ea112) (From OE-Core rev: 72ab0e7d49610f6ffcc99fa8723aeeaada852d88) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
f768fb3d22
commit
796efea2d2
|
@ -37,6 +37,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
|
|||
file://0024-eglibc-Forward-port-cross-locale-generation-support.patch \
|
||||
file://0025-Define-DUMMY_LOCALE_T-if-not-defined.patch \
|
||||
file://0001-Include-locale_t.h-compatibility-header.patch \
|
||||
file://archive-path.patch \
|
||||
"
|
||||
# Makes for a rather long rev (22 characters), but...
|
||||
#
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
localedef --add-to-archive uses a hard-coded locale path which doesn't exist in
|
||||
normal use, and there's no way to pass an alternative filename.
|
||||
|
||||
Add a fallback of $LOCALEARCHIVE from the environment, and allow creation of new locale archives that are not the system archive.
|
||||
|
||||
Upstream-Status: Inappropriate (OE-specific)
|
||||
Signed-off-by: Ross Burton <ross.burton@intel.com>
|
||||
|
||||
diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
|
||||
index ca332a34..6b7ba9b2 100644
|
||||
--- a/locale/programs/locarchive.c
|
||||
+++ b/locale/programs/locarchive.c
|
||||
@@ -569,10 +569,13 @@ open_archive (struct locarhandle *ah, bool readonly)
|
||||
/* If ah has a non-NULL fname open that otherwise open the default. */
|
||||
if (archivefname == NULL)
|
||||
{
|
||||
- archivefname = default_fname;
|
||||
- if (output_prefix)
|
||||
- memcpy (default_fname, output_prefix, prefix_len);
|
||||
- strcpy (default_fname + prefix_len, ARCHIVE_NAME);
|
||||
+ archivefname = getenv("LOCALEARCHIVE");
|
||||
+ if (archivefname == NULL) {
|
||||
+ archivefname = default_fname;
|
||||
+ if (output_prefix)
|
||||
+ memcpy (default_fname, output_prefix, prefix_len);
|
||||
+ strcpy (default_fname + prefix_len, ARCHIVE_NAME);
|
||||
+ }
|
||||
}
|
||||
|
||||
while (1)
|
||||
@@ -585,7 +588,7 @@ open_archive (struct locarhandle *ah, bool readonly)
|
||||
the default locale archive we ignore the failure and
|
||||
list an empty archive, otherwise we print an error
|
||||
and exit. */
|
||||
- if (errno == ENOENT && archivefname == default_fname)
|
||||
+ if (errno == ENOENT)
|
||||
{
|
||||
if (readonly)
|
||||
{
|
Loading…
Reference in New Issue