diff options
| -rw-r--r-- | meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch | 54 |
1 files changed, 45 insertions, 9 deletions
diff --git a/meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch b/meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch index aa3a9e2654..8bdd466806 100644 --- a/meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch +++ b/meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch | |||
| @@ -18,11 +18,50 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 18 | locale/programs/locarchive.c | 13 ++++++++----- | 18 | locale/programs/locarchive.c | 13 ++++++++----- |
| 19 | 1 file changed, 8 insertions(+), 5 deletions(-) | 19 | 1 file changed, 8 insertions(+), 5 deletions(-) |
| 20 | 20 | ||
| 21 | diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c | 21 | Index: git/locale/programs/locarchive.c |
| 22 | index ca332a345f..6b7ba9b2e3 100644 | 22 | =================================================================== |
| 23 | --- a/locale/programs/locarchive.c | 23 | --- git.orig/locale/programs/locarchive.c |
| 24 | +++ b/locale/programs/locarchive.c | 24 | +++ git/locale/programs/locarchive.c |
| 25 | @@ -569,10 +569,13 @@ open_archive (struct locarhandle *ah, bool readonly) | 25 | @@ -340,12 +340,24 @@ enlarge_archive (struct locarhandle *ah, |
| 26 | struct namehashent *oldnamehashtab; | ||
| 27 | struct locarhandle new_ah; | ||
| 28 | size_t prefix_len = output_prefix ? strlen (output_prefix) : 0; | ||
| 29 | - char archivefname[prefix_len + sizeof (ARCHIVE_NAME)]; | ||
| 30 | - char fname[prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1]; | ||
| 31 | + char *archivefname; | ||
| 32 | + char *fname; | ||
| 33 | + char *envarchive = getenv("LOCALEARCHIVE"); | ||
| 34 | |||
| 35 | - if (output_prefix) | ||
| 36 | - memcpy (archivefname, output_prefix, prefix_len); | ||
| 37 | - strcpy (archivefname + prefix_len, ARCHIVE_NAME); | ||
| 38 | + if (envarchive != NULL) | ||
| 39 | + { | ||
| 40 | + archivefname = xmalloc(strlen(envarchive) + 1); | ||
| 41 | + fname = xmalloc(strlen(envarchive) + sizeof (".XXXXXX")); | ||
| 42 | + strcpy (archivefname, envarchive); | ||
| 43 | + } | ||
| 44 | + else | ||
| 45 | + { | ||
| 46 | + archivefname = xmalloc(prefix_len + sizeof (ARCHIVE_NAME)); | ||
| 47 | + fname = xmalloc(prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1); | ||
| 48 | + if (output_prefix) | ||
| 49 | + memcpy (archivefname, output_prefix, prefix_len); | ||
| 50 | + strcpy (archivefname + prefix_len, ARCHIVE_NAME); | ||
| 51 | + } | ||
| 52 | strcpy (stpcpy (fname, archivefname), ".XXXXXX"); | ||
| 53 | |||
| 54 | /* Not all of the old file has to be mapped. Change this now this | ||
| 55 | @@ -551,6 +563,8 @@ enlarge_archive (struct locarhandle *ah, | ||
| 56 | |||
| 57 | /* Add the information for the new one. */ | ||
| 58 | *ah = new_ah; | ||
| 59 | + free(archivefname); | ||
| 60 | + free(fname); | ||
| 61 | } | ||
| 62 | |||
| 63 | |||
| 64 | @@ -569,10 +583,13 @@ open_archive (struct locarhandle *ah, bo | ||
| 26 | /* If ah has a non-NULL fname open that otherwise open the default. */ | 65 | /* If ah has a non-NULL fname open that otherwise open the default. */ |
| 27 | if (archivefname == NULL) | 66 | if (archivefname == NULL) |
| 28 | { | 67 | { |
| @@ -40,7 +79,7 @@ index ca332a345f..6b7ba9b2e3 100644 | |||
| 40 | } | 79 | } |
| 41 | 80 | ||
| 42 | while (1) | 81 | while (1) |
| 43 | @@ -585,7 +588,7 @@ open_archive (struct locarhandle *ah, bool readonly) | 82 | @@ -585,7 +602,7 @@ open_archive (struct locarhandle *ah, bo |
| 44 | the default locale archive we ignore the failure and | 83 | the default locale archive we ignore the failure and |
| 45 | list an empty archive, otherwise we print an error | 84 | list an empty archive, otherwise we print an error |
| 46 | and exit. */ | 85 | and exit. */ |
| @@ -49,6 +88,3 @@ index ca332a345f..6b7ba9b2e3 100644 | |||
| 49 | { | 88 | { |
| 50 | if (readonly) | 89 | if (readonly) |
| 51 | { | 90 | { |
| 52 | -- | ||
| 53 | 2.18.0 | ||
| 54 | |||
