From: Samuel Thibault Date: Wed, 5 Dec 2018 18:50:21 +0000 (+0000) Subject: Fix installation of locales-all X-Git-Tag: archive/raspbian/2.28-2+rpi1^2~100 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=096eabd7f1218fd45c4f8d6b5442127c5d35e574;p=glibc.git Fix installation of locales-all Dirty hack to fix installation of locales-all: instead of just locking the archive extension (which is not supported on hurd-i386), lock it all. Gbp-Pq: Topic hurd-i386 Gbp-Pq: Name tg-locarchive.diff --- diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c index ca332a345..e91323e1d 100644 --- a/locale/programs/locarchive.c +++ b/locale/programs/locarchive.c @@ -453,7 +453,16 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head) } /* Lock the new file. */ +#ifdef __GNU__ + struct flock fl; + fl.l_whence = SEEK_SET; + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_WRLCK; + if (fcntl(fd, F_SETLKW, &fl) != 0) +#else if (lockf64 (fd, F_LOCK, total) != 0) +#endif { int errval = errno; unlink (fname); @@ -613,7 +622,16 @@ open_archive (struct locarhandle *ah, bool readonly) error (EXIT_FAILURE, errno, _("cannot stat locale archive \"%s\""), archivefname); +#ifdef __GNU__ + struct flock fl; + fl.l_whence = SEEK_SET; + fl.l_start = 0; + fl.l_len = 0; + fl.l_type = F_WRLCK; + if (!readonly && fcntl(fd, F_SETLKW, &fl) == -1) +#else if (!readonly && lockf64 (fd, F_LOCK, sizeof (struct locarhead)) == -1) +#endif { close (fd);