summaryrefslogtreecommitdiffstats
path: root/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/relocate-locales.patch
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2018-04-01 22:23:53 -0400
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-04-04 13:38:59 +0000
commit001113296d3300ffaf6b6d1578a4232dbf2695c8 (patch)
tree14ddda5f75227063a7dea14becfecda14e67c500 /import-layers/yocto-poky/meta/recipes-core/glibc/glibc/relocate-locales.patch
parent211ccf33fb57ddede03d26cf7cb05924d039b2df (diff)
downloadtalos-openbmc-001113296d3300ffaf6b6d1578a4232dbf2695c8.tar.gz
talos-openbmc-001113296d3300ffaf6b6d1578a4232dbf2695c8.zip
Rocko refresh
poky: 0ec241873367e18f5371a3ad9aca1e2801dcd4ee meta-openembbeded: dacfa2b1920e285531bec55cd2f08743390aaf57 meta-virtualization: bd77388f31929f38e7d4cc9c711f0f83f563007e meta-raspberrypi: b58ccfc696e4fa6b680ae5ca79960312676d7af9 Tested: Built witherspoon, palmetto and qemu images Change-Id: I934ff48674042bb5ce6b7d75642e7adb9668a409 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-core/glibc/glibc/relocate-locales.patch')
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/relocate-locales.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/relocate-locales.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/relocate-locales.patch
new file mode 100644
index 000000000..2aea37f5c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/relocate-locales.patch
@@ -0,0 +1,55 @@
+The glibc locale path is hard-coded to the install prefix, but in SDKs we need
+to be able to relocate the binaries. Expand the strings to 4K and put them in a
+magic segment that we can relocate at install time.
+
+Upstream-Status: Inappropriate (OE-specific)
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/locale/findlocale.c b/locale/findlocale.c
+index 872cadb5..da14fa39 100644
+--- a/locale/findlocale.c
++++ b/locale/findlocale.c
+@@ -56,7 +56,7 @@ struct __locale_data *const _nl_C[] attribute_hidden =
+ which are somehow addressed. */
+ struct loaded_l10nfile *_nl_locale_file_list[__LC_LAST];
+
+-const char _nl_default_locale_path[] attribute_hidden = COMPLOCALEDIR;
++char _nl_default_locale_path[4096] attribute_hidden __attribute__ ((section (".gccrelocprefix"))) = COMPLOCALEDIR;
+
+ /* Checks if the name is actually present, that is, not NULL and not
+ empty. */
+@@ -167,7 +167,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len,
+
+ /* Nothing in the archive. Set the default path to search below. */
+ locale_path = _nl_default_locale_path;
+- locale_path_len = sizeof _nl_default_locale_path;
++ locale_path_len = strlen(locale_path) + 1;
+ }
+ else
+ /* We really have to load some data. First see whether the name is
+diff --git a/locale/localeinfo.h b/locale/localeinfo.h
+index 68822a63..537bc351 100644
+--- a/locale/localeinfo.h
++++ b/locale/localeinfo.h
+@@ -325,7 +325,7 @@ _nl_lookup_word (locale_t l, int category, int item)
+ }
+
+ /* Default search path if no LOCPATH environment variable. */
+-extern const char _nl_default_locale_path[] attribute_hidden;
++extern char _nl_default_locale_path[4096] attribute_hidden;
+
+ /* Load the locale data for CATEGORY from the file specified by *NAME.
+ If *NAME is "", use environment variables as specified by POSIX, and
+diff --git a/locale/loadarchive.c b/locale/loadarchive.c
+index 516d30d8..792b37fb 100644
+--- a/locale/loadarchive.c
++++ b/locale/loadarchive.c
+@@ -42,7 +43,7 @@
+
+
+ /* Name of the locale archive file. */
+-static const char archfname[] = COMPLOCALEDIR "/locale-archive";
++static const char archfname[4096] __attribute__ ((section (".gccrelocprefix"))) = COMPLOCALEDIR "/locale-archive";
+
+ /* Size of initial mapping window, optimal if large enough to
+ cover the header plus the initial locale. */
OpenPOWER on IntegriCloud