summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-03-09 20:59:11 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-03-11 11:44:28 +0000
commit1a0fd5104f82bf37e80cda4499fa08d2cd0dcb70 (patch)
tree9046773e3750def955170decc0bb794ea3e9b968 /meta
parent6d78b84029d0717354bf39e5c355fba1c14d8347 (diff)
downloadpoky-1a0fd5104f82bf37e80cda4499fa08d2cd0dcb70.tar.gz
glibc: Update nativesdk locale relocation patch
The locale binary reported incorrect locale lists in relocated toolchains as some path references were not relocated by this patch. Fix this missing relocations so the locale binary correctly reports the locales. (From OE-Core rev: f7a6a72880009380ae81bc7fc863921a26811c8c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch62
1 files changed, 47 insertions, 15 deletions
diff --git a/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch b/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch
index d9985c2fdc..27cd17cdcd 100644
--- a/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch
+++ b/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch
@@ -17,11 +17,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
17 locale/localeinfo.h | 2 +- 17 locale/localeinfo.h | 2 +-
18 3 files changed, 4 insertions(+), 4 deletions(-) 18 3 files changed, 4 insertions(+), 4 deletions(-)
19 19
20diff --git a/locale/findlocale.c b/locale/findlocale.c 20Index: git/locale/findlocale.c
21index 9cd3b71a6d..84272310e0 100644 21===================================================================
22--- a/locale/findlocale.c 22--- git.orig/locale/findlocale.c
23+++ b/locale/findlocale.c 23+++ git/locale/findlocale.c
24@@ -56,7 +56,7 @@ struct __locale_data *const _nl_C[] attribute_hidden = 24@@ -56,7 +56,7 @@ struct __locale_data *const _nl_C[] attr
25 which are somehow addressed. */ 25 which are somehow addressed. */
26 struct loaded_l10nfile *_nl_locale_file_list[__LC_LAST]; 26 struct loaded_l10nfile *_nl_locale_file_list[__LC_LAST];
27 27
@@ -30,7 +30,7 @@ index 9cd3b71a6d..84272310e0 100644
30 30
31 /* Checks if the name is actually present, that is, not NULL and not 31 /* Checks if the name is actually present, that is, not NULL and not
32 empty. */ 32 empty. */
33@@ -166,7 +166,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, 33@@ -166,7 +166,7 @@ _nl_find_locale (const char *locale_path
34 34
35 /* Nothing in the archive. Set the default path to search below. */ 35 /* Nothing in the archive. Set the default path to search below. */
36 locale_path = _nl_default_locale_path; 36 locale_path = _nl_default_locale_path;
@@ -39,10 +39,10 @@ index 9cd3b71a6d..84272310e0 100644
39 } 39 }
40 else 40 else
41 /* We really have to load some data. First see whether the name is 41 /* We really have to load some data. First see whether the name is
42diff --git a/locale/loadarchive.c b/locale/loadarchive.c 42Index: git/locale/loadarchive.c
43index ba0fe45648..9737fd4cda 100644 43===================================================================
44--- a/locale/loadarchive.c 44--- git.orig/locale/loadarchive.c
45+++ b/locale/loadarchive.c 45+++ git/locale/loadarchive.c
46@@ -42,7 +42,7 @@ 46@@ -42,7 +42,7 @@
47 47
48 48
@@ -52,11 +52,11 @@ index ba0fe45648..9737fd4cda 100644
52 52
53 /* Size of initial mapping window, optimal if large enough to 53 /* Size of initial mapping window, optimal if large enough to
54 cover the header plus the initial locale. */ 54 cover the header plus the initial locale. */
55diff --git a/locale/localeinfo.h b/locale/localeinfo.h 55Index: git/locale/localeinfo.h
56index 1bfe22aa7f..fdc283c69a 100644 56===================================================================
57--- a/locale/localeinfo.h 57--- git.orig/locale/localeinfo.h
58+++ b/locale/localeinfo.h 58+++ git/locale/localeinfo.h
59@@ -331,7 +331,7 @@ _nl_lookup_word (locale_t l, int category, int item) 59@@ -331,7 +331,7 @@ _nl_lookup_word (locale_t l, int categor
60 } 60 }
61 61
62 /* Default search path if no LOCPATH environment variable. */ 62 /* Default search path if no LOCPATH environment variable. */
@@ -65,3 +65,35 @@ index 1bfe22aa7f..fdc283c69a 100644
65 65
66 /* Load the locale data for CATEGORY from the file specified by *NAME. 66 /* Load the locale data for CATEGORY from the file specified by *NAME.
67 If *NAME is "", use environment variables as specified by POSIX, and 67 If *NAME is "", use environment variables as specified by POSIX, and
68Index: git/locale/programs/locale.c
69===================================================================
70--- git.orig/locale/programs/locale.c
71+++ git/locale/programs/locale.c
72@@ -632,6 +632,7 @@ nameentcmp (const void *a, const void *b
73 ((const struct nameent *) b)->name);
74 }
75
76+static char _write_archive_locales_path[4096] attribute_hidden __attribute__ ((section (".gccrelocprefix"))) = ARCHIVE_NAME;
77
78 static int
79 write_archive_locales (void **all_datap, char *linebuf)
80@@ -645,7 +646,7 @@ write_archive_locales (void **all_datap,
81 int fd, ret = 0;
82 uint32_t cnt;
83
84- fd = open64 (ARCHIVE_NAME, O_RDONLY);
85+ fd = open64 (_write_archive_locales_path, O_RDONLY);
86 if (fd < 0)
87 return 0;
88
89@@ -700,8 +701,8 @@ write_archive_locales (void **all_datap,
90 if (cnt)
91 putchar_unlocked ('\n');
92
93- printf ("locale: %-15.15s archive: " ARCHIVE_NAME "\n%s\n",
94- names[cnt].name, linebuf);
95+ printf ("locale: %-15.15s archive: %s\n%s\n",
96+ names[cnt].name, _write_archive_locales_path, linebuf);
97
98 locrec = (struct locrecent *) (addr + names[cnt].locrec_offset);
99