From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.bugs Subject: bug#32452: 26.1; gnutls_try_handshake maxes out cpu retrying when server is a bit busy Date: Tue, 1 Mar 2022 18:12:17 -0800 Organization: UCLA Computer Science Department Message-ID: References: <87wosqwlu3.fsf@gmail.com> <83va84cuf6.fsf@gnu.org> <87k0doi6vy.fsf@gnus.org> <905557ed-58f6-8671-51de-a44e73029aa9@cs.ucla.edu> <87ley15pp6.fsf@gnus.org> <172175b8-c6b3-314f-e803-e00d04f5d57a@cs.ucla.edu> <87y221436n.fsf@gnus.org> <0df255b3-41a1-619d-97d3-28fd246e0b9f@cs.ucla.edu> <87pmnc4p64.fsf@gnus.org> <87v8x3znmm.fsf@gnus.org> <6f364184-7fa8-04f3-44a9-22ce40b872e8@cs.ucla.edu> <8735k5vezs.fsf@gnus.org> <83ee3pprkr.fsf@gnu.org> <87pmn9txzo.fsf@gnus.org> <87ee3ns6x0.fsf@gnus.org> <78c5037a-ac96-e7be-532f-b1776ed25b2b@cs.ucla.edu> <87a6e9n0rg.fsf@gnus.org> <87czj5ld38.fsf@gnus.org> <87y21tjggy.fsf@gnus.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------0XE2MiQArtNW9yKcMtvya06G" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16794"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Cc: 32452@debbugs.gnu.org, bug-gnulib@gnu.org, npostavs@gmail.com To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Mar 02 03:13:11 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nPEUJ-0004DG-7c for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 02 Mar 2022 03:13:11 +0100 Original-Received: from localhost ([::1]:39100 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nPEUH-0002SO-Rd for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 01 Mar 2022 21:13:09 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:38936) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nPEUA-0002S3-St for bug-gnu-emacs@gnu.org; Tue, 01 Mar 2022 21:13:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:44813) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nPEUA-0002Qg-Ju for bug-gnu-emacs@gnu.org; Tue, 01 Mar 2022 21:13:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nPEUA-0000pE-FD for bug-gnu-emacs@gnu.org; Tue, 01 Mar 2022 21:13:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 02 Mar 2022 02:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 32452 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 32452-submit@debbugs.gnu.org id=B32452.16461871543134 (code B ref 32452); Wed, 02 Mar 2022 02:13:02 +0000 Original-Received: (at 32452) by debbugs.gnu.org; 2 Mar 2022 02:12:34 +0000 Original-Received: from localhost ([127.0.0.1]:38710 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPETg-0000oS-HH for submit@debbugs.gnu.org; Tue, 01 Mar 2022 21:12:33 -0500 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:43326) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPETc-0000o6-EX for 32452@debbugs.gnu.org; Tue, 01 Mar 2022 21:12:30 -0500 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id C4A0316008D; Tue, 1 Mar 2022 18:12:22 -0800 (PST) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id FheqE9GPj_yx; Tue, 1 Mar 2022 18:12:18 -0800 (PST) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 68EA2160090; Tue, 1 Mar 2022 18:12:18 -0800 (PST) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 5TBZ_LRy5thK; Tue, 1 Mar 2022 18:12:18 -0800 (PST) Original-Received: from [131.179.64.200] (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 2440216008D; Tue, 1 Mar 2022 18:12:18 -0800 (PST) Content-Language: en-US In-Reply-To: <87y21tjggy.fsf@gnus.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:227902 Archived-At: This is a multi-part message in MIME format. --------------0XE2MiQArtNW9yKcMtvya06G Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 3/1/22 17:22, Lars Ingebrigtsen wrote: > --- a/lib/gnulib.mk.in > +++ b/lib/gnulib.mk.in > @@ -129,6 +129,7 @@ > # minmax \ > # mkostemp \ > # mktime \ > +# nanosleep \ > # nproc \ > # nstrftime \ > # pathmax \ > @@ -2497,6 +2498,16 @@ EXTRA_libgnu_a_SOURCES += mktime.c > endif > ## end gnulib module mktime-internal > > +## begin gnulib module nanosleep > +ifeq (,$(OMIT_GNULIB_MODULE_nanosleep)) > + > +ifneq (,$(GL_COND_OBJ_NANOSLEEP_CONDITION)) > +libgnu_a_SOURCES += nanosleep.c > +endif > + > +endif > +## end gnulib module nanosleep > + > ## begin gnulib module nproc > ifeq (,$(OMIT_GNULIB_MODULE_nproc)) > This diff is wrong, as it omits a line "GL_COND_OBJ_NANOSLEEP_CONDITION = @GL_COND_OBJ_NANOSLEEP_CONDITION@". I ran what should have been something like your commands and got the attached patch. One way forward is for you to simply install the attached patch and move on from there. Or we can continue to look into why things work for me and not for you. I suppose it could be an Autoconf bug on your platform, but it'd be an odd one. Here's a shell transcript of what I did to get the attached patch, on Fedora 35 x86-64: $ git clone master master-tmp Cloning into 'master-tmp'... done. Updating files: 100% (4608/4608), done. $ cd master-tmp $ git log HEAD^! commit 689a34e2153ec558dbf406809a5e58489250fe1a (HEAD -> master, origin/master, origin/HEAD) Author: Po Lu Date: Wed Mar 2 09:46:44 2022 +0800 Dismiss help text when item becomes unactivated on oldXMenu * oldXMenu/Activate.c (XMenuActivate): Dismiss help text when leaving an item. $ (cd ../gnulib && git log HEAD^! ) commit 8c4f4d7a3c28f88b64fce2fb1d0dc0e570d1a482 (HEAD -> master, origin/master, origin/HEAD) Author: Paul Eggert Date: Tue Mar 1 10:01:22 2022 -0800 Create lib/Makefile.am after gnulib-comp.m4 * gnulib-tool (func_import): Create library makefile after creating gnulib-comp.m4. With --gnu-make, the latter depends on the former. See . $ sed -i 's/nproc nstrftime/nanosleep &/' admin/merge-gnulib $ admin/merge-gnulib Checking whether you have the necessary tools... (Read INSTALL.REPO for more details on building Emacs) Checking for autoconf (need at least version 2.65) ... ok Your system has the required tools. Building aclocal.m4 ... Running 'autoreconf -fi -I m4' ... Configuring local git repository... '.git/config' -> '.git/config.~1~' git config transfer.fsckObjects 'true' git config diff.cpp.xfuncname '!^[ \t]*[A-Za-z_][A-Za-z_0-9]*:[[:space:]]*($|/[/*]) ^((::[[:space:]]*)?[A-Za-z_][A-Za-z_0-9]*[[:space:]]*\(.*)$ ^((#define[[:space:]]|DEFUN).*)$' git config diff.elisp.xfuncname '^\([^[:space:]]*def[^[:space:]]+[[:space:]]+([^()[:space:]]+)' git config diff.m4.xfuncname '^((m4_)?define|A._DEFUN(_ONCE)?)\([^),]*' git config diff.make.xfuncname '^([$.[:alnum:]_].*:|[[:alnum:]_]+[[:space:]]*([*:+]?[:?]?|!?)=|define .*)' git config diff.shell.xfuncname '^([[:space:]]*[[:alpha:]_][[:alnum:]_]*[[:space:]]*\(\)|[[:alpha:]_][[:alnum:]_]*=)' git config diff.texinfo.xfuncname '^@node[[:space:]]+([^,[:space:]][^,]+)' Installing git hooks... 'build-aux/git-hooks/commit-msg' -> '.git/hooks/commit-msg' 'build-aux/git-hooks/pre-commit' -> '.git/hooks/pre-commit' 'build-aux/git-hooks/prepare-commit-msg' -> '.git/hooks/prepare-commit-msg' '.git/hooks/applypatch-msg.sample' -> '.git/hooks/applypatch-msg' '.git/hooks/pre-applypatch.sample' -> '.git/hooks/pre-applypatch' You can now run './configure'. Module list with included dependencies (indented): absolute-header acl-permissions alloca-opt allocator at-internal attribute binary-io builtin-expect byteswap c-ctype c-strcase c99 canonicalize-lgpl careadlinkat clock-time cloexec close-stream copy-file-range count-leading-zeros count-one-bits count-trailing-zeros crypto/md5 crypto/md5-buffer crypto/sha1-buffer crypto/sha256-buffer crypto/sha512-buffer d-type diffseq dirent dirfd double-slash-root dtoastr dtotimespec dup2 dynarray eloop-threshold environ errno euidaccess execinfo explicit_bzero extensions extern-inline faccessat fchmodat fcntl fcntl-h fdopendir file-has-acl filemode filename filevercmp flexmember fpending fpieee free-posix fstatat fsusage fsync futimens gen-header getdtablesize getgroups getloadavg getopt-gnu getopt-posix getrandom gettext-h gettime gettimeofday gitlog-to-changelog group-member idx ieee754-h ignore-value include_next intprops inttypes-incomplete largefile lchmod libc-config libgmp limits-h lstat malloc-gnu malloc-posix manywarnings memmem-simple mempcpy memrchr minmax mkostemp mktime mktime-internal multiarch nanosleep nocrash nproc nstrftime open openat-h pathmax pipe2 pselect pthread_sigmask qcopy-acl rawmemchr readlink readlinkat realloc-gnu realloc-posix regex root-uid scratch_buffer sig2str sigdescr_np signal-h snippet/_Noreturn snippet/arg-nonnull snippet/c++defs snippet/warn-on-use socklen ssize_t stat-time std-gnu11 stdalign stddef stdint stdio stdlib stpcpy string strnlen strtoimax strtoll symlink sys_random sys_select sys_stat sys_time sys_types tempname time time_r time_rz timegm timer-time timespec timespec-add timespec-sub u64 unistd unlocked-io unlocked-io-internal update-copyright utimens utimensat vararrays verify vla warnings xalloc-oversized File list: build-aux/gitlog-to-changelog build-aux/update-copyright lib/_Noreturn.h lib/acl-errno-valid.c lib/acl-internal.c lib/acl-internal.h lib/acl.h lib/acl_entries.c lib/alloca.in.h lib/allocator.c lib/allocator.h lib/arg-nonnull.h lib/at-func.c lib/attribute.h lib/binary-io.c lib/binary-io.h lib/byteswap.in.h lib/c++defs.h lib/c-ctype.c lib/c-ctype.h lib/c-strcase.h lib/c-strcasecmp.c lib/c-strncasecmp.c lib/canonicalize-lgpl.c lib/careadlinkat.c lib/careadlinkat.h lib/cdefs.h lib/cloexec.c lib/cloexec.h lib/close-stream.c lib/close-stream.h lib/copy-file-range.c lib/count-leading-zeros.c lib/count-leading-zeros.h lib/count-one-bits.c lib/count-one-bits.h lib/count-trailing-zeros.c lib/count-trailing-zeros.h lib/diffseq.h lib/dirent.in.h lib/dirfd.c lib/dtoastr.c lib/dtotimespec.c lib/dup2.c lib/dynarray.h lib/eloop-threshold.h lib/errno.in.h lib/euidaccess.c lib/execinfo.c lib/execinfo.in.h lib/explicit_bzero.c lib/faccessat.c lib/fchmodat.c lib/fcntl.c lib/fcntl.in.h lib/fdopendir.c lib/file-has-acl.c lib/filemode.c lib/filemode.h lib/filename.h lib/filevercmp.c lib/filevercmp.h lib/flexmember.h lib/fpending.c lib/fpending.h lib/free.c lib/fstatat.c lib/fsusage.c lib/fsusage.h lib/fsync.c lib/ftoastr.c lib/ftoastr.h lib/futimens.c lib/get-permissions.c lib/getdtablesize.c lib/getgroups.c lib/getloadavg.c lib/getopt-cdefs.in.h lib/getopt-core.h lib/getopt-ext.h lib/getopt-pfx-core.h lib/getopt-pfx-ext.h lib/getopt.c lib/getopt.in.h lib/getopt1.c lib/getopt_int.h lib/getrandom.c lib/gettext.h lib/gettime.c lib/gettimeofday.c lib/gl_openssl.h lib/group-member.c lib/idx.h lib/ieee754.in.h lib/ignore-value.h lib/intprops.h lib/inttypes.in.h lib/lchmod.c lib/libc-config.h lib/limits.in.h lib/lstat.c lib/malloc.c lib/malloc/dynarray-skeleton.c lib/malloc/dynarray.h lib/malloc/dynarray_at_failure.c lib/malloc/dynarray_emplace_enlarge.c lib/malloc/dynarray_finalize.c lib/malloc/dynarray_resize.c lib/malloc/dynarray_resize_clear.c lib/malloc/scratch_buffer.h lib/malloc/scratch_buffer_dupfree.c lib/malloc/scratch_buffer_grow.c lib/malloc/scratch_buffer_grow_preserve.c lib/malloc/scratch_buffer_set_array_size.c lib/md5-stream.c lib/md5.c lib/md5.h lib/memmem.c lib/mempcpy.c lib/memrchr.c lib/mini-gmp-gnulib.c lib/mini-gmp.c lib/mini-gmp.h lib/minmax.h lib/mkostemp.c lib/mktime-internal.h lib/mktime.c lib/nanosleep.c lib/nproc.c lib/nproc.h lib/nstrftime.c lib/open.c lib/openat-priv.h lib/openat-proc.c lib/openat.h lib/pathmax.h lib/pipe2.c lib/pselect.c lib/pthread_sigmask.c lib/qcopy-acl.c lib/rawmemchr.c lib/rawmemchr.valgrind lib/readlink.c lib/readlinkat.c lib/realloc.c lib/regcomp.c lib/regex.c lib/regex.h lib/regex_internal.c lib/regex_internal.h lib/regexec.c lib/root-uid.h lib/scratch_buffer.h lib/set-permissions.c lib/sha1.c lib/sha1.h lib/sha256.c lib/sha256.h lib/sha512.c lib/sha512.h lib/sig2str.c lib/sig2str.h lib/sigdescr_np.c lib/signal.in.h lib/stat-time.c lib/stat-time.h lib/stdalign.in.h lib/stddef.in.h lib/stdint.in.h lib/stdio-impl.h lib/stdio-read.c lib/stdio-write.c lib/stdio.in.h lib/stdlib.in.h lib/stpcpy.c lib/str-two-way.h lib/strftime.h lib/string.in.h lib/strnlen.c lib/strtoimax.c lib/strtol.c lib/strtoll.c lib/symlink.c lib/sys_random.in.h lib/sys_select.in.h lib/sys_stat.in.h lib/sys_time.in.h lib/sys_types.in.h lib/tempname.c lib/tempname.h lib/time-internal.h lib/time.in.h lib/time_r.c lib/time_rz.c lib/timegm.c lib/timespec-add.c lib/timespec-sub.c lib/timespec.c lib/timespec.h lib/u64.c lib/u64.h lib/unistd.c lib/unistd.in.h lib/unlocked-io.h lib/utimens.c lib/utimens.h lib/utimensat.c lib/verify.h lib/vla.h lib/warn-on-use.h lib/xalloc-oversized.h m4/00gnulib.m4 m4/__inline.m4 m4/absolute-header.m4 m4/acl.m4 m4/alloca.m4 m4/builtin-expect.m4 m4/byteswap.m4 m4/canonicalize.m4 m4/clock_time.m4 m4/copy-file-range.m4 m4/d-type.m4 m4/dirent_h.m4 m4/dirfd.m4 m4/double-slash-root.m4 m4/dup2.m4 m4/eealloc.m4 m4/environ.m4 m4/errno_h.m4 m4/euidaccess.m4 m4/execinfo.m4 m4/explicit_bzero.m4 m4/extensions.m4 m4/extern-inline.m4 m4/faccessat.m4 m4/fchmodat.m4 m4/fcntl-o.m4 m4/fcntl.m4 m4/fcntl_h.m4 m4/fdopendir.m4 m4/filemode.m4 m4/flexmember.m4 m4/fpending.m4 m4/fpieee.m4 m4/free.m4 m4/fstatat.m4 m4/fsusage.m4 m4/fsync.m4 m4/futimens.m4 m4/getdtablesize.m4 m4/getgroups.m4 m4/getloadavg.m4 m4/getopt.m4 m4/getrandom.m4 m4/gettime.m4 m4/gettimeofday.m4 m4/gl-openssl.m4 m4/gnulib-common.m4 m4/group-member.m4 m4/ieee754-h.m4 m4/include_next.m4 m4/inttypes.m4 m4/largefile.m4 m4/lchmod.m4 m4/libgmp.m4 m4/limits-h.m4 m4/lstat.m4 m4/malloc.m4 m4/manywarnings-c++.m4 m4/manywarnings.m4 m4/mbstate_t.m4 m4/md5.m4 m4/memmem.m4 m4/mempcpy.m4 m4/memrchr.m4 m4/minmax.m4 m4/mkostemp.m4 m4/mktime.m4 m4/mode_t.m4 m4/multiarch.m4 m4/nanosleep.m4 m4/nocrash.m4 m4/nproc.m4 m4/nstrftime.m4 m4/off_t.m4 m4/open-cloexec.m4 m4/open-slash.m4 m4/open.m4 m4/pathmax.m4 m4/pid_t.m4 m4/pipe2.m4 m4/pselect.m4 m4/pthread_sigmask.m4 m4/rawmemchr.m4 m4/readlink.m4 m4/readlinkat.m4 m4/realloc.m4 m4/regex.m4 m4/sha1.m4 m4/sha256.m4 m4/sha512.m4 m4/sig2str.m4 m4/sigdescr_np.m4 m4/signal_h.m4 m4/socklen.m4 m4/ssize_t.m4 m4/stat-time.m4 m4/std-gnu11.m4 m4/stdalign.m4 m4/stddef_h.m4 m4/stdint.m4 m4/stdio_h.m4 m4/stdlib_h.m4 m4/stpcpy.m4 m4/string_h.m4 m4/strnlen.m4 m4/strtoimax.m4 m4/strtoll.m4 m4/symlink.m4 m4/sys_random_h.m4 m4/sys_select_h.m4 m4/sys_socket_h.m4 m4/sys_stat_h.m4 m4/sys_time_h.m4 m4/sys_types_h.m4 m4/tempname.m4 m4/time_h.m4 m4/time_r.m4 m4/time_rz.m4 m4/timegm.m4 m4/timer_time.m4 m4/timespec.m4 m4/tm_gmtoff.m4 m4/unistd_h.m4 m4/unlocked-io.m4 m4/utimens.m4 m4/utimensat.m4 m4/utimes.m4 m4/vararrays.m4 m4/warn-on-use.m4 m4/warnings.m4 m4/wchar_t.m4 m4/wint_t.m4 m4/year2038.m4 m4/zzgnulib.m4 Copying file lib/gl_openssl.h Copying file lib/nanosleep.c Copying file lib/stdio-read.c Copying file lib/stdio-write.c Copying file m4/fcntl-o.m4 Copying file m4/gl-openssl.m4 Copying file m4/gnulib-tool.m4 Copying file m4/manywarnings-c++.m4 Copying file m4/nanosleep.m4 Copying file m4/warn-on-use.m4 Copying file m4/wint_t.m4 Creating m4/gnulib-cache.m4 Updating m4/gnulib-comp.m4 (backup in m4/gnulib-comp.m4~) Updating lib/gnulib.mk.in (backup in lib/gnulib.mk.in~) Finished. You may need to add #include directives for the following .h files. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "acl.h" #include "binary-io.h" #include "c-ctype.h" #include "c-strcase.h" #include "careadlinkat.h" #include "close-stream.h" #include "count-leading-zeros.h" #include "count-one-bits.h" #include "count-trailing-zeros.h" #include "diffseq.h" #include "filemode.h" #include "filename.h" #include "filevercmp.h" #include "fsusage.h" #include "ftoastr.h" #include "ignore-value.h" #include "intprops.h" #include "md5.h" #include "minmax.h" #include "nproc.h" #include "pathmax.h" #include "sha1.h" #include "sha256.h" #include "sha512.h" #include "sig2str.h" #include "stat-time.h" #include "strftime.h" #include "tempname.h" #include "timespec.h" #include "unlocked-io.h" #include #if HAVE_SYS_SOCKET_H # include #elif HAVE_WS2TCPIP_H # include #endif You may need to use the following Makefile variables when linking. Use them in _LDADD when linking a program, or in _a_LDFLAGS or _la_LDFLAGS when linking a library. $(GETLOADAVG_LIBS) $(LIBTHREAD) $(LIB_ACL) $(LIB_CLOCK_GETTIME) $(LIB_CRYPTO) $(LIB_EACCESS) $(LIB_EXECINFO) $(LIB_GETRANDOM) $(LIB_HAS_ACL) $(LIB_MBRTOWC) $(LIB_NANOSLEEP) $(LIB_PTHREAD_SIGMASK) $(LIB_SELECT) $(LIB_TIMER_TIME) $(LTLIBGMP) when linking with libtool, $(LIBGMP) otherwise $(LTLIBINTL) when linking with libtool, $(LIBINTL) otherwise Don't forget to - "include gnulib.mk.in" from within "lib/Makefile.am", - mention "-I m4" in ACLOCAL_AMFLAGS in Makefile.am or add an AC_CONFIG_MACRO_DIRS([m4]) invocation in ./configure.ac, - mention "m4/gnulib-cache.m4" in EXTRA_DIST in Makefile.am, - invoke gl_EARLY in ./configure.ac, right after AC_PROG_CC, - invoke gl_INIT in ./configure.ac. Checking whether you have the necessary tools... (Read INSTALL.REPO for more details on building Emacs) Checking for autoconf (need at least version 2.65) ... ok Your system has the required tools. Building aclocal.m4 ... Running 'autoreconf -fi -I m4' ... You can now run './configure'. $ git status On branch master Your branch is up to date with 'origin/master'. Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git restore ..." to discard changes in working directory) modified: admin/merge-gnulib modified: lib/gnulib.mk.in modified: m4/gnulib-comp.m4 Untracked files: (use "git add ..." to include in what will be committed) lib/nanosleep.c m4/nanosleep.m4 merge-gnulib.diff no changes added to commit (use "git add" and/or "git commit -a") $ git checkout -b for-larsi Switched to a new branch 'for-larsi' $ git add lib/nanosleep.c m4/nanosleep.m4 admin/merge-gnulib lib/gnulib.mk.in m4/gnulib-comp.m4 $ git commit -m'Add Gnulib nanosleep module' [for-larsi 2020d4fc91] Add Gnulib nanosleep module 5 files changed, 355 insertions(+), 1 deletion(-) create mode 100644 lib/nanosleep.c create mode 100644 m4/nanosleep.m4 $ git format-patch -1 0001-Add-Gnulib-nanosleep-module.patch $ --------------0XE2MiQArtNW9yKcMtvya06G Content-Type: text/x-patch; charset=UTF-8; name="0001-Add-Gnulib-nanosleep-module.patch" Content-Disposition: attachment; filename="0001-Add-Gnulib-nanosleep-module.patch" Content-Transfer-Encoding: base64 RnJvbSAyMDIwZDRmYzkxYmY3MDRhMjU3MmU3YjY4YmFjYTYxNWY4OGE5MTQ0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUdWUsIDEgTWFyIDIwMjIgMTg6MDQ6MzggLTA4MDAKU3ViamVjdDogW1BBVENI XSBBZGQgR251bGliIG5hbm9zbGVlcCBtb2R1bGUKCi0tLQogYWRtaW4vbWVyZ2UtZ251bGli IHwgICAyICstCiBsaWIvZ251bGliLm1rLmluICAgfCAgMTMgKysrCiBsaWIvbmFub3NsZWVw LmMgICAgfCAxOTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiBtNC9nbnVsaWItY29tcC5tNCAgfCAgIDcgKysKIG00L25hbm9zbGVlcC5tNCAgICB8 IDEzOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2Vk LCAzNTUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGxpYi9uYW5vc2xlZXAuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IG00L25hbm9zbGVlcC5tNAoK ZGlmZiAtLWdpdCBhL2FkbWluL21lcmdlLWdudWxpYiBiL2FkbWluL21lcmdlLWdudWxpYgpp bmRleCBmZWM0NjljMDE3Li5lYTNkMjM2ODZmIDEwMDc1NQotLS0gYS9hZG1pbi9tZXJnZS1n bnVsaWIKKysrIGIvYWRtaW4vbWVyZ2UtZ251bGliCkBAIC00MCw3ICs0MCw3IEBAIEdOVUxJ Ql9NT0RVTEVTPQogICBnZXRsb2FkYXZnIGdldG9wdC1nbnUgZ2V0cmFuZG9tIGdldHRpbWUg Z2V0dGltZW9mZGF5IGdpdGxvZy10by1jaGFuZ2Vsb2cKICAgaWVlZTc1NC1oIGlnbm9yZS12 YWx1ZSBpbnRwcm9wcyBsYXJnZWZpbGUgbGliZ21wIGxzdGF0CiAgIG1hbnl3YXJuaW5ncyBt ZW1tZW0tc2ltcGxlIG1lbXBjcHkgbWVtcmNociBtaW5tYXggbWtvc3RlbXAgbWt0aW1lCi0g IG5wcm9jIG5zdHJmdGltZQorICBuYW5vc2xlZXAgbnByb2MgbnN0cmZ0aW1lCiAgIHBhdGht YXggcGlwZTIgcHNlbGVjdCBwdGhyZWFkX3NpZ21hc2sKICAgcWNvcHktYWNsIHJlYWRsaW5r IHJlYWRsaW5rYXQgcmVnZXgKICAgc2lnMnN0ciBzaWdkZXNjcl9ucCBzb2NrbGVuIHN0YXQt dGltZSBzdGQtZ251MTEgc3RkYWxpZ24gc3RkZGVmIHN0ZGlvCmRpZmYgLS1naXQgYS9saWIv Z251bGliLm1rLmluIGIvbGliL2dudWxpYi5tay5pbgppbmRleCAzYTlmNWI5ODE4Li4zZGVl Y2E5OGJlIDEwMDY0NAotLS0gYS9saWIvZ251bGliLm1rLmluCisrKyBiL2xpYi9nbnVsaWIu bWsuaW4KQEAgLTEyOSw2ICsxMjksNyBAQAogIyAgbWlubWF4IFwKICMgIG1rb3N0ZW1wIFwK ICMgIG1rdGltZSBcCisjICBuYW5vc2xlZXAgXAogIyAgbnByb2MgXAogIyAgbnN0cmZ0aW1l IFwKICMgIHBhdGhtYXggXApAQCAtMjA3LDYgKzIwOCw3IEBAIENQUCA9IEBDUFBACiBDUFBG TEFHUyA9IEBDUFBGTEFHU0AKIENSWVBUT0xJQiA9IEBDUllQVE9MSUJACiBDWFggPSBAQ1hY QAorQ1hYQ1BQID0gQENYWENQUEAKIENYWEZMQUdTID0gQENYWEZMQUdTQAogQ1lHV0lOX09C SiA9IEBDWUdXSU5fT0JKQAogQ19TV0lUQ0hfTUFDSElORSA9IEBDX1NXSVRDSF9NQUNISU5F QApAQCAtMjgzLDYgKzI4NSw3IEBAIEdMX0NPTkRfT0JKX01FTVBDUFlfQ09ORElUSU9OID0g QEdMX0NPTkRfT0JKX01FTVBDUFlfQ09ORElUSU9OQAogR0xfQ09ORF9PQkpfTUVNUkNIUl9D T05ESVRJT04gPSBAR0xfQ09ORF9PQkpfTUVNUkNIUl9DT05ESVRJT05ACiBHTF9DT05EX09C Sl9NSU5JX0dNUF9HTlVMSUJfQ09ORElUSU9OID0gQEdMX0NPTkRfT0JKX01JTklfR01QX0dO VUxJQl9DT05ESVRJT05ACiBHTF9DT05EX09CSl9NS09TVEVNUF9DT05ESVRJT04gPSBAR0xf Q09ORF9PQkpfTUtPU1RFTVBfQ09ORElUSU9OQAorR0xfQ09ORF9PQkpfTkFOT1NMRUVQX0NP TkRJVElPTiA9IEBHTF9DT05EX09CSl9OQU5PU0xFRVBfQ09ORElUSU9OQAogR0xfQ09ORF9P QkpfT1BFTl9DT05ESVRJT04gPSBAR0xfQ09ORF9PQkpfT1BFTl9DT05ESVRJT05ACiBHTF9D T05EX09CSl9QU0VMRUNUX0NPTkRJVElPTiA9IEBHTF9DT05EX09CSl9QU0VMRUNUX0NPTkRJ VElPTkAKIEdMX0NPTkRfT0JKX1BUSFJFQURfU0lHTUFTS19DT05ESVRJT04gPSBAR0xfQ09O RF9PQkpfUFRIUkVBRF9TSUdNQVNLX0NPTkRJVElPTkAKQEAgLTI0OTcsNiArMjUwMCwxNiBA QCBFWFRSQV9saWJnbnVfYV9TT1VSQ0VTICs9IG1rdGltZS5jCiBlbmRpZgogIyMgZW5kICAg Z251bGliIG1vZHVsZSBta3RpbWUtaW50ZXJuYWwKIAorIyMgYmVnaW4gZ251bGliIG1vZHVs ZSBuYW5vc2xlZXAKK2lmZXEgKCwkKE9NSVRfR05VTElCX01PRFVMRV9uYW5vc2xlZXApKQor CitpZm5lcSAoLCQoR0xfQ09ORF9PQkpfTkFOT1NMRUVQX0NPTkRJVElPTikpCitsaWJnbnVf YV9TT1VSQ0VTICs9IG5hbm9zbGVlcC5jCitlbmRpZgorCitlbmRpZgorIyMgZW5kICAgZ251 bGliIG1vZHVsZSBuYW5vc2xlZXAKKwogIyMgYmVnaW4gZ251bGliIG1vZHVsZSBucHJvYwog aWZlcSAoLCQoT01JVF9HTlVMSUJfTU9EVUxFX25wcm9jKSkKIApkaWZmIC0tZ2l0IGEvbGli L25hbm9zbGVlcC5jIGIvbGliL25hbm9zbGVlcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLjQ0Njc5NGVkYzAKLS0tIC9kZXYvbnVsbAorKysgYi9saWIvbmFu b3NsZWVwLmMKQEAgLTAsMCArMSwxOTUgQEAKKy8qIFByb3ZpZGUgYSByZXBsYWNlbWVudCBm b3IgdGhlIFBPU0lYIG5hbm9zbGVlcCBmdW5jdGlvbi4KKworICAgQ29weXJpZ2h0IChDKSAx OTk5LTIwMDAsIDIwMDIsIDIwMDQtMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKworICAgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgICBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZQor ICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor ICAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworLyogd3JpdHRlbiBieSBKaW0g TWV5ZXJpbmcKKyAgIGFuZCBCcnVubyBIYWlibGUgZm9yIHRoZSBuYXRpdmUgV2luZG93cyBw YXJ0ICovCisKKyNpbmNsdWRlIDxjb25maWcuaD4KKworI2luY2x1ZGUgPHRpbWUuaD4KKwor I2luY2x1ZGUgImludHByb3BzLmgiCisjaW5jbHVkZSAidmVyaWZ5LmgiCisKKyNpbmNsdWRl IDxzdGRib29sLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KKyNpbmNsdWRlIDxzeXMvc2VsZWN0Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisKKyNp bmNsdWRlIDxlcnJuby5oPgorCisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKworZW51bSB7IEJJ TExJT04gPSAxMDAwICogMTAwMCAqIDEwMDAgfTsKKworI2lmIEhBVkVfQlVHX0JJR19OQU5P U0xFRVAKKworaW50CituYW5vc2xlZXAgKGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqcmVxdWVz dGVkX2RlbGF5LAorICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgKnJlbWFpbmluZ19kZWxh eSkKKyMgdW5kZWYgbmFub3NsZWVwCit7CisgIC8qIG5hbm9zbGVlcCBtaXNoYW5kbGVzIGxh cmdlIHNsZWVwcyBkdWUgdG8gaW50ZXJuYWwgb3ZlcmZsb3cgcHJvYmxlbXMuCisgICAgIFRo ZSB3b3JzdCBrbm93biBjYXNlIG9mIHRoaXMgaXMgTGludXggMi42Ljkgd2l0aCBnbGliYyAy LjMuNCwgd2hpY2gKKyAgICAgY2FuJ3Qgc2xlZXAgbW9yZSB0aGFuIDI0Ljg1IGRheXMgKDJe MzEgbWlsbGlzZWNvbmRzKS4gIFNpbWlsYXJseSwKKyAgICAgY3lnd2luIDEuNS54LCB3aGlj aCBjYW4ndCBzbGVlcCBtb3JlIHRoYW4gNDkuNyBkYXlzICgyXjMyIG1pbGxpc2Vjb25kcyku CisgICAgIFNvbHZlIHRoaXMgYnkgYnJlYWtpbmcgdGhlIHNsZWVwIHVwIGludG8gc21hbGxl ciBjaHVua3MuICAqLworCisgIGlmIChyZXF1ZXN0ZWRfZGVsYXktPnR2X25zZWMgPCAwIHx8 IEJJTExJT04gPD0gcmVxdWVzdGVkX2RlbGF5LT50dl9uc2VjKQorICAgIHsKKyAgICAgIGVy cm5vID0gRUlOVkFMOworICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICB7CisgICAgLyog VmVyaWZ5IHRoYXQgdGltZV90IGlzIGxhcmdlIGVub3VnaC4gICovCisgICAgdmVyaWZ5IChU WVBFX01BWElNVU0gKHRpbWVfdCkgLyAyNCAvIDI0IC8gNjAgLyA2MCk7CisgICAgY29uc3Qg dGltZV90IGxpbWl0ID0gMjQgKiAyNCAqIDYwICogNjA7CisgICAgdGltZV90IHNlY29uZHMg PSByZXF1ZXN0ZWRfZGVsYXktPnR2X3NlYzsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgaW50ZXJt ZWRpYXRlOworICAgIGludGVybWVkaWF0ZS50dl9uc2VjID0gcmVxdWVzdGVkX2RlbGF5LT50 dl9uc2VjOworCisgICAgd2hpbGUgKGxpbWl0IDwgc2Vjb25kcykKKyAgICAgIHsKKyAgICAg ICAgaW50IHJlc3VsdDsKKyAgICAgICAgaW50ZXJtZWRpYXRlLnR2X3NlYyA9IGxpbWl0Owor ICAgICAgICByZXN1bHQgPSBuYW5vc2xlZXAgKCZpbnRlcm1lZGlhdGUsIHJlbWFpbmluZ19k ZWxheSk7CisgICAgICAgIHNlY29uZHMgLT0gbGltaXQ7CisgICAgICAgIGlmIChyZXN1bHQp CisgICAgICAgICAgeworICAgICAgICAgICAgaWYgKHJlbWFpbmluZ19kZWxheSkKKyAgICAg ICAgICAgICAgcmVtYWluaW5nX2RlbGF5LT50dl9zZWMgKz0gc2Vjb25kczsKKyAgICAgICAg ICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgfQorICAgICAgICBpbnRlcm1lZGlhdGUu dHZfbnNlYyA9IDA7CisgICAgICB9CisgICAgaW50ZXJtZWRpYXRlLnR2X3NlYyA9IHNlY29u ZHM7CisgICAgcmV0dXJuIG5hbm9zbGVlcCAoJmludGVybWVkaWF0ZSwgcmVtYWluaW5nX2Rl bGF5KTsKKyAgfQorfQorCisjZWxpZiBkZWZpbmVkIF9XSU4zMiAmJiAhIGRlZmluZWQgX19D WUdXSU5fXworLyogTmF0aXZlIFdpbmRvd3MgcGxhdGZvcm1zLiAgKi8KKworIyBkZWZpbmUg V0lOMzJfTEVBTl9BTkRfTUVBTgorIyBpbmNsdWRlIDx3aW5kb3dzLmg+CisKKy8qIFRoZSBX aW5kb3dzIEFQSSBmdW5jdGlvbiBTbGVlcCgpIGhhcyBhIHJlc29sdXRpb24gb2YgYWJvdXQg MTUgbXMgYW5kIHRha2VzCisgICBhdCBsZWFzdCA1IG1zIHRvIGV4ZWN1dGUuICBXZSB1c2Ug dGhpcyBmdW5jdGlvbiBmb3IgbG9uZ2VyIHRpbWUgcGVyaW9kcy4KKyAgIEFkZGl0aW9uYWxs eSwgd2UgdXNlIGJ1c3ktbG9vcGluZyBvdmVyIHNob3J0IHRpbWUgcGVyaW9kcywgdG8gZ2V0 IGEKKyAgIHJlc29sdXRpb24gb2YgYWJvdXQgMC4wMSBtcy4gIEluIG9yZGVyIHRvIG1lYXN1 cmUgc3VjaCBzaG9ydCB0aW1lc3BhbnMsCisgICB3ZSB1c2UgdGhlIFF1ZXJ5UGVyZm9ybWFu Y2VDb3VudGVyKCkgZnVuY3Rpb24uICAqLworCitpbnQKK25hbm9zbGVlcCAoY29uc3Qgc3Ry dWN0IHRpbWVzcGVjICpyZXF1ZXN0ZWRfZGVsYXksCisgICAgICAgICAgIHN0cnVjdCB0aW1l c3BlYyAqcmVtYWluaW5nX2RlbGF5KQoreworICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZDsK KyAgLyogTnVtYmVyIG9mIHBlcmZvcm1hbmNlIGNvdW50ZXIgaW5jcmVtZW50cyBwZXIgbmFu b3NlY29uZCwKKyAgICAgb3IgemVybyBpZiBpdCBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4g ICovCisgIHN0YXRpYyBkb3VibGUgdGlja3NfcGVyX25hbm9zZWNvbmQ7CisKKyAgaWYgKHJl cXVlc3RlZF9kZWxheS0+dHZfbnNlYyA8IDAgfHwgQklMTElPTiA8PSByZXF1ZXN0ZWRfZGVs YXktPnR2X25zZWMpCisgICAgeworICAgICAgZXJybm8gPSBFSU5WQUw7CisgICAgICByZXR1 cm4gLTE7CisgICAgfQorCisgIC8qIEZvciByZXF1ZXN0ZWQgZGVsYXlzIG9mIG9uZSBzZWNv bmQgb3IgbW9yZSwgMTVtcyByZXNvbHV0aW9uIGlzCisgICAgIHN1ZmZpY2llbnQuICAqLwor ICBpZiAocmVxdWVzdGVkX2RlbGF5LT50dl9zZWMgPT0gMCkKKyAgICB7CisgICAgICBpZiAo IWluaXRpYWxpemVkKQorICAgICAgICB7CisgICAgICAgICAgLyogSW5pdGlhbGl6ZSB0aWNr c19wZXJfbmFub3NlY29uZC4gICovCisgICAgICAgICAgTEFSR0VfSU5URUdFUiB0aWNrc19w ZXJfc2Vjb25kOworCisgICAgICAgICAgaWYgKFF1ZXJ5UGVyZm9ybWFuY2VGcmVxdWVuY3kg KCZ0aWNrc19wZXJfc2Vjb25kKSkKKyAgICAgICAgICAgIHRpY2tzX3Blcl9uYW5vc2Vjb25k ID0KKyAgICAgICAgICAgICAgKGRvdWJsZSkgdGlja3NfcGVyX3NlY29uZC5RdWFkUGFydCAv IDEwMDAwMDAwMDAuMDsKKworICAgICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAg ICAgfQorICAgICAgaWYgKHRpY2tzX3Blcl9uYW5vc2Vjb25kKQorICAgICAgICB7CisgICAg ICAgICAgLyogUXVlcnlQZXJmb3JtYW5jZUZyZXF1ZW5jeSB3b3JrZWQuICBXZSBjYW4gdXNl CisgICAgICAgICAgICAgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIuICBVc2UgYSBjb21iaW5h dGlvbiBvZiBTbGVlcCBhbmQKKyAgICAgICAgICAgICBidXN5LWxvb3BpbmcuICAqLworICAg ICAgICAgIC8qIE51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gcGFzcyB0byB0aGUgU2xlZXAg ZnVuY3Rpb24uCisgICAgICAgICAgICAgU2luY2UgU2xlZXAgY2FuIHRha2UgdXAgdG8gOCBt cyBsZXNzIG9yIDggbXMgbW9yZSB0aGFuIHJlcXVlc3RlZAorICAgICAgICAgICAgIChvciBt YXliZSBtb3JlIGlmIHRoZSBzeXN0ZW0gaXMgbG9hZGVkKSwgd2Ugc3VidHJhY3QgMTAgbXMu ICAqLworICAgICAgICAgIGludCBzbGVlcF9taWxsaXMgPSAoaW50KSByZXF1ZXN0ZWRfZGVs YXktPnR2X25zZWMgLyAxMDAwMDAwIC0gMTA7CisgICAgICAgICAgLyogRGV0ZXJtaW5lIGhv dyBtYW55IHRpY2tzIHRvIGRlbGF5LiAgKi8KKyAgICAgICAgICBMT05HTE9ORyB3YWl0X3Rp Y2tzID0gcmVxdWVzdGVkX2RlbGF5LT50dl9uc2VjICogdGlja3NfcGVyX25hbm9zZWNvbmQ7 CisgICAgICAgICAgLyogU3RhcnQuICAqLworICAgICAgICAgIExBUkdFX0lOVEVHRVIgY291 bnRlcl9iZWZvcmU7CisgICAgICAgICAgaWYgKFF1ZXJ5UGVyZm9ybWFuY2VDb3VudGVyICgm Y291bnRlcl9iZWZvcmUpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAvKiBXYWl0 IHVudGlsIHRoZSBwZXJmb3JtYW5jZSBjb3VudGVyIGhhcyByZWFjaGVkIHRoaXMgdmFsdWUu CisgICAgICAgICAgICAgICAgIFdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgb3ZlcmZs b3csIGJlY2F1c2UgdGhlIHBlcmZvcm1hbmNlCisgICAgICAgICAgICAgICAgIGNvdW50ZXIg aXMgcmVzZXQgYXQgcmVib290LCBhbmQgd2l0aCBhIGZyZXF1ZW5jeSBvZiAzLjZFNgorICAg ICAgICAgICAgICAgICB0aWNrcyBwZXIgc2Vjb25kIDYzIGJpdHMgc3VmZmljZSBmb3Igb3Zl ciA4MDAwMCB5ZWFycy4gICovCisgICAgICAgICAgICAgIExPTkdMT05HIHdhaXRfdW50aWwg PSBjb3VudGVyX2JlZm9yZS5RdWFkUGFydCArIHdhaXRfdGlja3M7CisgICAgICAgICAgICAg IC8qIFVzZSBTbGVlcCBmb3IgdGhlIGxvbmdlc3QgcGFydC4gICovCisgICAgICAgICAgICAg IGlmIChzbGVlcF9taWxsaXMgPiAwKQorICAgICAgICAgICAgICAgIFNsZWVwIChzbGVlcF9t aWxsaXMpOworICAgICAgICAgICAgICAvKiBCdXN5LWxvb3AgZm9yIHRoZSByZXN0LiAgKi8K KyAgICAgICAgICAgICAgZm9yICg7OykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICBMQVJHRV9JTlRFR0VSIGNvdW50ZXJfYWZ0ZXI7CisgICAgICAgICAgICAgICAg ICBpZiAoIVF1ZXJ5UGVyZm9ybWFuY2VDb3VudGVyICgmY291bnRlcl9hZnRlcikpCisgICAg ICAgICAgICAgICAgICAgIC8qIFF1ZXJ5UGVyZm9ybWFuY2VDb3VudGVyIGZhaWxlZCwgYnV0 IHN1Y2NlZWRlZCBlYXJsaWVyLgorICAgICAgICAgICAgICAgICAgICAgICBTaG91bGQgbm90 IGhhcHBlbi4gICovCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg ICAgICAgaWYgKGNvdW50ZXJfYWZ0ZXIuUXVhZFBhcnQgPj0gd2FpdF91bnRpbCkKKyAgICAg ICAgICAgICAgICAgICAgLyogVGhlIHJlcXVlc3RlZCB0aW1lIGhhcyBlbGFwc2VkLiAgKi8K KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cisg IC8qIEltcGxlbWVudGF0aW9uIGZvciBsb25nIGRlbGF5cyBhbmQgYXMgZmFsbGJhY2suICAq LworICBTbGVlcCAocmVxdWVzdGVkX2RlbGF5LT50dl9zZWMgKiAxMDAwICsgcmVxdWVzdGVk X2RlbGF5LT50dl9uc2VjIC8gMTAwMDAwMCk7CisKKyBkb25lOgorICAvKiBTbGVlcCBpcyBu b3QgaW50ZXJydXB0aWJsZS4gIFNvIHRoZXJlIGlzIG5vIHJlbWFpbmluZyBkZWxheS4gICov CisgIGlmIChyZW1haW5pbmdfZGVsYXkgIT0gTlVMTCkKKyAgICB7CisgICAgICByZW1haW5p bmdfZGVsYXktPnR2X3NlYyA9IDA7CisgICAgICByZW1haW5pbmdfZGVsYXktPnR2X25zZWMg PSAwOworICAgIH0KKyAgcmV0dXJuIDA7Cit9CisKKyNlbHNlCisvKiBPdGhlciBwbGF0Zm9y bXMgbGFja2luZyBuYW5vc2xlZXAuCisgICBJdCdzIG5vdCBjbGVhciB3aGV0aGVyIHRoZXNl IGFyZSBzdGlsbCBwcmFjdGljYWwgcG9ydGluZyB0YXJnZXRzLgorICAgRm9yIG5vdywganVz dCBmYWxsIGJhY2sgb24gcHNlbGVjdC4gICovCisKKy8qIFN1c3BlbmQgZXhlY3V0aW9uIGZv ciBhdCBsZWFzdCAqUkVRVUVTVEVEX0RFTEFZIHNlY29uZHMuICBUaGUKKyAgICpSRU1BSU5J TkdfREVMQVkgcGFydCBpc24ndCBpbXBsZW1lbnRlZCB5ZXQuICAqLworCitpbnQKK25hbm9z bGVlcCAoY29uc3Qgc3RydWN0IHRpbWVzcGVjICpyZXF1ZXN0ZWRfZGVsYXksCisgICAgICAg ICAgIHN0cnVjdCB0aW1lc3BlYyAqcmVtYWluaW5nX2RlbGF5KQoreworICByZXR1cm4gcHNl bGVjdCAoMCwgTlVMTCwgTlVMTCwgTlVMTCwgcmVxdWVzdGVkX2RlbGF5LCBOVUxMKTsKK30K KyNlbmRpZgpkaWZmIC0tZ2l0IGEvbTQvZ251bGliLWNvbXAubTQgYi9tNC9nbnVsaWItY29t cC5tNAppbmRleCAxZDMxMjM5ZDJkLi5mYjVmMWI1MmE0IDEwMDY0NAotLS0gYS9tNC9nbnVs aWItY29tcC5tNAorKysgYi9tNC9nbnVsaWItY29tcC5tNApAQCAtMTQwLDYgKzE0MCw3IEBA IEFDX0RFRlVOCiAgICMgQ29kZSBmcm9tIG1vZHVsZSBta3RpbWU6CiAgICMgQ29kZSBmcm9t IG1vZHVsZSBta3RpbWUtaW50ZXJuYWw6CiAgICMgQ29kZSBmcm9tIG1vZHVsZSBtdWx0aWFy Y2g6CisgICMgQ29kZSBmcm9tIG1vZHVsZSBuYW5vc2xlZXA6CiAgICMgQ29kZSBmcm9tIG1v ZHVsZSBub2NyYXNoOgogICAjIENvZGUgZnJvbSBtb2R1bGUgbnByb2M6CiAgICMgQ29kZSBm cm9tIG1vZHVsZSBuc3RyZnRpbWU6CkBAIC00MzAsNiArNDMxLDEwIEBAIEFDX0RFRlVOCiAg IGZpCiAgIGdsX1RJTUVfTU9EVUxFX0lORElDQVRPUihbbWt0aW1lXSkKICAgZ2xfTVVMVElB UkNICisgIGdsX0ZVTkNfTkFOT1NMRUVQCisgIGdsX0NPTkRJVElPTkFMKFtHTF9DT05EX09C Sl9OQU5PU0xFRVBdLAorICAgICAgICAgICAgICAgICBbdGVzdCAkSEFWRV9OQU5PU0xFRVAg PSAwIHx8IHRlc3QgJFJFUExBQ0VfTkFOT1NMRUVQID0gMV0pCisgIGdsX1RJTUVfTU9EVUxF X0lORElDQVRPUihbbmFub3NsZWVwXSkKICAgZ2xfTlBST0MKICAgZ2xfRlVOQ19HTlVfU1RS RlRJTUUKICAgZ2xfUEFUSE1BWApAQCAtMTMwNCw2ICsxMzA5LDcgQEAgQUNfREVGVU4KICAg bGliL21rb3N0ZW1wLmMKICAgbGliL21rdGltZS1pbnRlcm5hbC5oCiAgIGxpYi9ta3RpbWUu YworICBsaWIvbmFub3NsZWVwLmMKICAgbGliL25wcm9jLmMKICAgbGliL25wcm9jLmgKICAg bGliL25zdHJmdGltZS5jCkBAIC0xNDU2LDYgKzE0NjIsNyBAQCBBQ19ERUZVTgogICBtNC9t a3RpbWUubTQKICAgbTQvbW9kZV90Lm00CiAgIG00L211bHRpYXJjaC5tNAorICBtNC9uYW5v c2xlZXAubTQKICAgbTQvbm9jcmFzaC5tNAogICBtNC9ucHJvYy5tNAogICBtNC9uc3RyZnRp bWUubTQKZGlmZiAtLWdpdCBhL200L25hbm9zbGVlcC5tNCBiL200L25hbm9zbGVlcC5tNApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xOTY0YjFlYTQ3Ci0tLSAv ZGV2L251bGwKKysrIGIvbTQvbmFub3NsZWVwLm00CkBAIC0wLDAgKzEsMTM5IEBACisjIHNl cmlhbCA0MQorCitkbmwgRnJvbSBKaW0gTWV5ZXJpbmcuCitkbmwgQ2hlY2sgZm9yIHRoZSBu YW5vc2xlZXAgZnVuY3Rpb24uCitkbmwgSWYgbm90IGZvdW5kLCB1c2UgdGhlIHN1cHBsaWVk IHJlcGxhY2VtZW50LgorZG5sCisKKyMgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEsIDIwMDMt MjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworIyBUaGlzIGZpbGUgaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1 bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBp cyBwcmVzZXJ2ZWQuCisKK0FDX0RFRlVOKFtnbF9GVU5DX05BTk9TTEVFUF0sCitbCisgQUNf UkVRVUlSRShbZ2xfVElNRV9IX0RFRkFVTFRTXSkKKyBBQ19SRVFVSVJFKFtBQ19DQU5PTklD QUxfSE9TVF0pIGRubCBmb3IgY3Jvc3MtY29tcGlsZXMKKworIGRubCBQZXJzdWFkZSBnbGli YyBhbmQgU29sYXJpcyA8dGltZS5oPiB0byBkZWNsYXJlIG5hbm9zbGVlcC4KKyBBQ19SRVFV SVJFKFtnbF9VU0VfU1lTVEVNX0VYVEVOU0lPTlNdKQorCisgQUNfQ0hFQ0tfREVDTFNfT05D RShbYWxhcm1dKQorCisgbmFub3NsZWVwX3NhdmVfbGlicz0kTElCUworCisgIyBTb2xhcmlz IDIuNS4xIG5lZWRzIC1scG9zaXg0IHRvIGdldCB0aGUgbmFub3NsZWVwIGZ1bmN0aW9uLgor ICMgU29sYXJpcyA3IHByZWZlcnMgdGhlIGxpYnJhcnkgbmFtZSAtbHJ0IHRvIHRoZSBvYnNv bGVzY2VudCBuYW1lIC1scG9zaXg0LgorIExJQl9OQU5PU0xFRVA9CisgQUNfU1VCU1QoW0xJ Ql9OQU5PU0xFRVBdKQorIEFDX1NFQVJDSF9MSUJTKFtuYW5vc2xlZXBdLCBbcnQgcG9zaXg0 XSwKKyAgICAgICAgICAgICAgICBbdGVzdCAiJGFjX2N2X3NlYXJjaF9uYW5vc2xlZXAiID0g Im5vbmUgcmVxdWlyZWQiIHx8CisgICAgICAgICAgICAgICAgIExJQl9OQU5PU0xFRVA9JGFj X2N2X3NlYXJjaF9uYW5vc2xlZXBdKQorIGlmIHRlc3QgIngkYWNfY3Zfc2VhcmNoX25hbm9z bGVlcCIgIT0geG5vOyB0aGVuCisgICBkbmwgVGhlIHN5c3RlbSBoYXMgYSBuYW5vc2xlZXAg ZnVuY3Rpb24uCisKKyAgIEFDX1JFUVVJUkUoW2dsX01VTFRJQVJDSF0pCisgICBpZiB0ZXN0 ICRBUFBMRV9VTklWRVJTQUxfQlVJTEQgPSAxOyB0aGVuCisgICAgICMgQSB1bml2ZXJzYWwg YnVpbGQgb24gQXBwbGUgTWFjIE9TIFggcGxhdGZvcm1zLgorICAgICAjIFRoZSB0ZXN0IHJl c3VsdCB3b3VsZCBiZSAnbm8gKG1pc2hhbmRsZXMgbGFyZ2UgYXJndW1lbnRzKScgaW4gNjQt Yml0CisgICAgICMgbW9kZSBidXQgJ3llcycgaW4gMzItYml0IG1vZGUuIEJ1dCB3ZSBuZWVk IGEgY29uZmlndXJhdGlvbiByZXN1bHQgdGhhdAorICAgICAjIGlzIHZhbGlkIGluIGJvdGgg bW9kZXMuCisgICAgIGdsX2N2X2Z1bmNfbmFub3NsZWVwPSdubyAobWlzaGFuZGxlcyBsYXJn ZSBhcmd1bWVudHMpJworICAgZmkKKworICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciB3b3JraW5n IG5hbm9zbGVlcF0sCisgICAgW2dsX2N2X2Z1bmNfbmFub3NsZWVwXSwKKyAgICBbCisgICAg IEFDX1JVTl9JRkVMU0UoCisgICAgICAgW0FDX0xBTkdfU09VUkNFKFtbCisgICAgICAgICAg I2luY2x1ZGUgPGVycm5vLmg+CisgICAgICAgICAgI2luY2x1ZGUgPGxpbWl0cy5oPgorICAg ICAgICAgICNpbmNsdWRlIDxzaWduYWwuaD4KKyAgICAgICAgICAjaW5jbHVkZSA8dGltZS5o PgorICAgICAgICAgICNpbmNsdWRlIDx1bmlzdGQuaD4KKyAgICAgICAgICAjZGVmaW5lIFRZ UEVfU0lHTkVEKHQpICghICgodCkgMCA8ICh0KSAtMSkpCisgICAgICAgICAgI2RlZmluZSBU WVBFX01BWElNVU0odCkgXAorICAgICAgICAgICAgKCh0KSAoISBUWVBFX1NJR05FRCAodCkg XAorICAgICAgICAgICAgICAgICAgPyAodCkgLTEgXAorICAgICAgICAgICAgICAgICAgOiAo KCgodCkgMSA8PCAoc2l6ZW9mICh0KSAqIENIQVJfQklUIC0gMikpIC0gMSkgKiAyICsgMSkp KQorCisgICAgICAgICAgI2lmIEhBVkVfREVDTF9BTEFSTQorICAgICAgICAgIHN0YXRpYyB2 b2lkCisgICAgICAgICAgY2hlY2tfZm9yX1NJR0FMUk0gKGludCBzaWcpCisgICAgICAgICAg eworICAgICAgICAgICAgaWYgKHNpZyAhPSBTSUdBTFJNKQorICAgICAgICAgICAgICBfZXhp dCAoMSk7CisgICAgICAgICAgfQorICAgICAgICAgICNlbmRpZgorCisgICAgICAgICAgaW50 CisgICAgICAgICAgbWFpbiAoKQorICAgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXRpYyBz dHJ1Y3QgdGltZXNwZWMgdHNfc2xlZXA7CisgICAgICAgICAgICBzdGF0aWMgc3RydWN0IHRp bWVzcGVjIHRzX3JlbWFpbmluZzsKKyAgICAgICAgICAgIC8qIFRlc3QgZm9yIG1ham9yIHBy b2JsZW1zIGZpcnN0LiAgKi8KKyAgICAgICAgICAgIGlmICghIG5hbm9zbGVlcCkKKyAgICAg ICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICB0c19zbGVlcC50dl9zZWMgPSAwOwor ICAgICAgICAgICAgdHNfc2xlZXAudHZfbnNlYyA9IDE7CisgICAgICAgICAgICAjaWYgSEFW RV9ERUNMX0FMQVJNCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIHN0YXRpYyBzdHJ1 Y3Qgc2lnYWN0aW9uIGFjdDsKKyAgICAgICAgICAgICAgYWN0LnNhX2hhbmRsZXIgPSBjaGVj a19mb3JfU0lHQUxSTTsKKyAgICAgICAgICAgICAgc2lnZW1wdHlzZXQgKCZhY3Quc2FfbWFz ayk7CisgICAgICAgICAgICAgIHNpZ2FjdGlvbiAoU0lHQUxSTSwgJmFjdCwgTlVMTCk7Cisg ICAgICAgICAgICAgIGFsYXJtICgxKTsKKyAgICAgICAgICAgICAgaWYgKG5hbm9zbGVlcCAo JnRzX3NsZWVwLCBOVUxMKSAhPSAwKQorICAgICAgICAgICAgICAgIHJldHVybiAzOworICAg ICAgICAgICAgICAvKiBUZXN0IGZvciBhIG1pbm9yIHByb2JsZW06IHRoZSBoYW5kbGluZyBv ZiBsYXJnZSBhcmd1bWVudHMuICAqLworICAgICAgICAgICAgICB0c19zbGVlcC50dl9zZWMg PSBUWVBFX01BWElNVU0gKHRpbWVfdCk7CisgICAgICAgICAgICAgIHRzX3NsZWVwLnR2X25z ZWMgPSA5OTk5OTk5OTk7CisgICAgICAgICAgICAgIGFsYXJtICgxKTsKKyAgICAgICAgICAg ICAgaWYgKG5hbm9zbGVlcCAoJnRzX3NsZWVwLCAmdHNfcmVtYWluaW5nKSAhPSAtMSkKKyAg ICAgICAgICAgICAgICByZXR1cm4gNDsKKyAgICAgICAgICAgICAgaWYgKGVycm5vICE9IEVJ TlRSKQorICAgICAgICAgICAgICAgIHJldHVybiA1OworICAgICAgICAgICAgICBpZiAodHNf cmVtYWluaW5nLnR2X3NlYyA8PSBUWVBFX01BWElNVU0gKHRpbWVfdCkgLSAxMCkKKyAgICAg ICAgICAgICAgICByZXR1cm4gNjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICNlbHNl IC8qIEEgc2ltcGxlciB0ZXN0IGZvciBuYXRpdmUgV2luZG93cy4gICovCisgICAgICAgICAg ICBpZiAobmFub3NsZWVwICgmdHNfc2xlZXAsICZ0c19yZW1haW5pbmcpIDwgMCkKKyAgICAg ICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgICAgICAjZW5kaWYKKyAgICAgICAgICAgIHJl dHVybiAwOworICAgICAgICAgIH1dXSldLAorICAgICAgIFtnbF9jdl9mdW5jX25hbm9zbGVl cD15ZXNdLAorICAgICAgIFtjYXNlICQ/IGluIGRubCAoCisgICAgICAgIDR8NXw2KSBnbF9j dl9mdW5jX25hbm9zbGVlcD0nbm8gKG1pc2hhbmRsZXMgbGFyZ2UgYXJndW1lbnRzKSc7OyBk bmwgKAorICAgICAgICAqKSAgIGdsX2N2X2Z1bmNfbmFub3NsZWVwPW5vOzsKKyAgICAgICAg ZXNhY10sCisgICAgICAgW2Nhc2UgIiRob3N0X29zIiBpbiBkbmwgKCgKKyAgICAgICAgICBs aW51eCopICMgR3Vlc3MgaXQgaGFsZndheSB3b3JrcyB3aGVuIHRoZSBrZXJuZWwgaXMgTGlu dXguCisgICAgICAgICAgICBnbF9jdl9mdW5jX25hbm9zbGVlcD0nZ3Vlc3Npbmcgbm8gKG1p c2hhbmRsZXMgbGFyZ2UgYXJndW1lbnRzKScgOzsKKyAgICAgICAgICBtaW5ndyopICMgR3Vl c3Mgbm8gb24gbmF0aXZlIFdpbmRvd3MuCisgICAgICAgICAgICBnbF9jdl9mdW5jX25hbm9z bGVlcD0nZ3Vlc3Npbmcgbm8nIDs7CisgICAgICAgICAgKikgICAgICAjIElmIHdlIGRvbid0 IGtub3csIG9iZXkgLS1lbmFibGUtY3Jvc3MtZ3Vlc3Nlcy4KKyAgICAgICAgICAgIGdsX2N2 X2Z1bmNfbmFub3NsZWVwPSIkZ2xfY3Jvc3NfZ3Vlc3Nfbm9ybWFsIiA7OworICAgICAgICBl c2FjCisgICAgICAgXSkKKyAgICBdKQorICAgY2FzZSAiJGdsX2N2X2Z1bmNfbmFub3NsZWVw IiBpbgorICAgICAqeWVzKQorICAgICAgIFJFUExBQ0VfTkFOT1NMRUVQPTAKKyAgICAgICA7 OworICAgICAqKQorICAgICAgIFJFUExBQ0VfTkFOT1NMRUVQPTEKKyAgICAgICBjYXNlICIk Z2xfY3ZfZnVuY19uYW5vc2xlZXAiIGluCisgICAgICAgICAqIm1pc2hhbmRsZXMgbGFyZ2Ug YXJndW1lbnRzIiopCisgICAgICAgICAgIEFDX0RFRklORShbSEFWRV9CVUdfQklHX05BTk9T TEVFUF0sIFsxXSwKKyAgICAgICAgICAgICBbRGVmaW5lIHRvIDEgaWYgbmFub3NsZWVwIG1p c2hhbmRsZXMgbGFyZ2UgYXJndW1lbnRzLl0pCisgICAgICAgICAgIDs7CisgICAgICAgZXNh YworICAgICAgIDs7CisgICBlc2FjCisgZWxzZQorICAgSEFWRV9OQU5PU0xFRVA9MAorIGZp CisgTElCUz0kbmFub3NsZWVwX3NhdmVfbGlicworXSkKLS0gCjIuMzUuMQoK --------------0XE2MiQArtNW9yKcMtvya06G--