diff options
-rw-r--r-- | meta/recipes-core/glibc/cross-localedef-native_2.27.bb | 1 | ||||
-rw-r--r-- | meta/recipes-core/glibc/glibc/archive-path.patch | 39 |
2 files changed, 40 insertions, 0 deletions
diff --git a/meta/recipes-core/glibc/cross-localedef-native_2.27.bb b/meta/recipes-core/glibc/cross-localedef-native_2.27.bb index d633e9bc37..f1e4a657cf 100644 --- a/meta/recipes-core/glibc/cross-localedef-native_2.27.bb +++ b/meta/recipes-core/glibc/cross-localedef-native_2.27.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 @@ | |||
1 | localedef --add-to-archive uses a hard-coded locale path which doesn't exist in | ||
2 | normal use, and there's no way to pass an alternative filename. | ||
3 | |||
4 | Add a fallback of $LOCALEARCHIVE from the environment, and allow creation of new locale archives that are not the system archive. | ||
5 | |||
6 | Upstream-Status: Inappropriate (OE-specific) | ||
7 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
8 | |||
9 | diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c | ||
10 | index 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 | { | ||