diff options
Diffstat (limited to 'pkgs/development/libraries/glibc/nix-locale-archive-2.27.patch')
-rw-r--r-- | pkgs/development/libraries/glibc/nix-locale-archive-2.27.patch | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/pkgs/development/libraries/glibc/nix-locale-archive-2.27.patch b/pkgs/development/libraries/glibc/nix-locale-archive-2.27.patch deleted file mode 100644 index 39312951fcf9..000000000000 --- a/pkgs/development/libraries/glibc/nix-locale-archive-2.27.patch +++ /dev/null @@ -1,118 +0,0 @@ -diff -Naur glibc-2.27-orig/locale/loadarchive.c glibc-2.27/locale/loadarchive.c ---- glibc-2.27-orig/locale/loadarchive.c 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27/locale/loadarchive.c 2018-02-17 22:32:25.680169462 -0500 -@@ -123,6 +123,23 @@ - return MAX (namehash_end, MAX (string_end, locrectab_end)); - } - -+static int -+open_locale_archive (void) -+{ -+ int fd = -1; -+ char *versioned_path = getenv ("LOCALE_ARCHIVE_2_27"); -+ char *path = getenv ("LOCALE_ARCHIVE"); -+ if (versioned_path) -+ fd = __open_nocancel (versioned_path, O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ if (path && fd < 0) -+ fd = __open_nocancel (path, O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ if (fd < 0) -+ fd = __open_nocancel (archfname, O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ if (fd < 0) -+ fd = __open_nocancel ("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ return fd; -+} -+ - - /* Find the locale *NAMEP in the locale archive, and return the - internalized data structure for its CATEGORY data. If this locale has -@@ -202,7 +219,7 @@ - archmapped = &headmap; - - /* The archive has never been opened. */ -- fd = __open_nocancel (archfname, O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ fd = open_locale_archive (); - if (fd < 0) - /* Cannot open the archive, for whatever reason. */ - return NULL; -@@ -397,8 +414,7 @@ - if (fd == -1) - { - struct stat64 st; -- fd = __open_nocancel (archfname, -- O_RDONLY|O_LARGEFILE|O_CLOEXEC); -+ fd = open_locale_archive (); - if (fd == -1) - /* Cannot open the archive, for whatever reason. */ - return NULL; -diff -Naur glibc-2.27-orig/locale/programs/locale.c glibc-2.27/locale/programs/locale.c ---- glibc-2.27-orig/locale/programs/locale.c 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27/locale/programs/locale.c 2018-02-17 22:36:39.726293213 -0500 -@@ -633,6 +633,24 @@ - - - static int -+open_locale_archive (void) -+{ -+ int fd = -1; -+ char *versioned_path = getenv ("LOCALE_ARCHIVE_2_27"); -+ char *path = getenv ("LOCALE_ARCHIVE"); -+ if (versioned_path) -+ fd = open64 (versioned_path, O_RDONLY); -+ if (path && fd < 0) -+ fd = open64 (path, O_RDONLY); -+ if (fd < 0) -+ fd = open64 (ARCHIVE_NAME, O_RDONLY); -+ if (fd < 0) -+ fd = open64 ("/usr/lib/locale/locale-archive", O_RDONLY); -+ return fd; -+} -+ -+ -+static int - write_archive_locales (void **all_datap, char *linebuf) - { - struct stat64 st; -@@ -644,7 +662,7 @@ - int fd, ret = 0; - uint32_t cnt; - -- fd = open64 (ARCHIVE_NAME, O_RDONLY); -+ fd = open_locale_archive (); - if (fd < 0) - return 0; - -diff -Naur glibc-2.27-orig/locale/programs/locarchive.c glibc-2.27/locale/programs/locarchive.c ---- glibc-2.27-orig/locale/programs/locarchive.c 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27/locale/programs/locarchive.c 2018-02-17 22:40:51.245293975 -0500 -@@ -117,6 +117,22 @@ - } - - -+static int -+open_locale_archive (const char * archivefname, int flags) -+{ -+ int fd = -1; -+ char *versioned_path = getenv ("LOCALE_ARCHIVE_2_27"); -+ char *path = getenv ("LOCALE_ARCHIVE"); -+ if (versioned_path) -+ fd = open64 (versioned_path, flags); -+ if (path && fd < 0) -+ fd = open64 (path, flags); -+ if (fd < 0) -+ fd = open64 (archivefname, flags); -+ return fd; -+} -+ -+ - static void - create_archive (const char *archivefname, struct locarhandle *ah) - { -@@ -578,7 +594,7 @@ - while (1) - { - /* Open the archive. We must have exclusive write access. */ -- fd = open64 (archivefname, readonly ? O_RDONLY : O_RDWR); -+ fd = open_locale_archive (archivefname, readonly ? O_RDONLY : O_RDWR); - if (fd == -1) - { - /* Maybe the file does not yet exist? If we are opening |