summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2018-03-01 18:26:28 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-03-26 15:07:11 +0100
commitd01564bb48a706c228563a74e19813548d8a0a0b (patch)
treea2c1dddf576fd114452ebbcee55c127d50076fab
parentb149a64fcb1a504cfd282bc78b4bd7b028c5dddd (diff)
downloadpoky-d01564bb48a706c228563a74e19813548d8a0a0b.tar.gz
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: 14bcbecb6c19367ae0864a27750c8ea24681d48f) (From OE-Core rev: 6c7c5f3e23278067a8585debe32dfd0955090b91) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/glibc/cross-localedef-native_2.26.bb1
-rw-r--r--meta/recipes-core/glibc/glibc/archive-path.patch39
2 files changed, 40 insertions, 0 deletions
diff --git a/meta/recipes-core/glibc/cross-localedef-native_2.26.bb b/meta/recipes-core/glibc/cross-localedef-native_2.26.bb
index af02a0ce1d..744085f413 100644
--- a/meta/recipes-core/glibc/cross-localedef-native_2.26.bb
+++ b/meta/recipes-core/glibc/cross-localedef-native_2.26.bb
@@ -35,6 +35,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
35 file://0021-eglibc-Install-PIC-archives.patch \ 35 file://0021-eglibc-Install-PIC-archives.patch \
36 file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \ 36 file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \
37 file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \ 37 file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \
38 file://archive-path.patch \
38" 39"
39# Makes for a rather long rev (22 characters), but... 40# Makes for a rather long rev (22 characters), but...
40# 41#
diff --git a/meta/recipes-core/glibc/glibc/archive-path.patch b/meta/recipes-core/glibc/glibc/archive-path.patch
new file mode 100644
index 0000000000..b0d3158cfe
--- /dev/null
+++ b/meta/recipes-core/glibc/glibc/archive-path.patch
@@ -0,0 +1,39 @@
1localedef --add-to-archive uses a hard-coded locale path which doesn't exist in
2normal use, and there's no way to pass an alternative filename.
3
4Add a fallback of $LOCALEARCHIVE from the environment, and allow creation of new locale archives that are not the system archive.
5
6Upstream-Status: Inappropriate (OE-specific)
7Signed-off-by: Ross Burton <ross.burton@intel.com>
8
9diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
10index ca332a34..6b7ba9b2 100644
11--- a/locale/programs/locarchive.c
12+++ b/locale/programs/locarchive.c
13@@ -569,10 +569,13 @@ open_archive (struct locarhandle *ah, bool readonly)
14 /* If ah has a non-NULL fname open that otherwise open the default. */
15 if (archivefname == NULL)
16 {
17- archivefname = default_fname;
18- if (output_prefix)
19- memcpy (default_fname, output_prefix, prefix_len);
20- strcpy (default_fname + prefix_len, ARCHIVE_NAME);
21+ archivefname = getenv("LOCALEARCHIVE");
22+ if (archivefname == NULL) {
23+ archivefname = default_fname;
24+ if (output_prefix)
25+ memcpy (default_fname, output_prefix, prefix_len);
26+ strcpy (default_fname + prefix_len, ARCHIVE_NAME);
27+ }
28 }
29
30 while (1)
31@@ -585,7 +588,7 @@ open_archive (struct locarhandle *ah, bool readonly)
32 the default locale archive we ignore the failure and
33 list an empty archive, otherwise we print an error
34 and exit. */
35- if (errno == ENOENT && archivefname == default_fname)
36+ if (errno == ENOENT)
37 {
38 if (readonly)
39 {