From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 29 01:54:49 2012 Received: (at submit) by debbugs.gnu.org; 29 Nov 2012 06:54:49 +0000 Received: from localhost ([127.0.0.1]:44483 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Tdy1H-0006TR-By for submit@debbugs.gnu.org; Thu, 29 Nov 2012 01:54:49 -0500 Received: from eggs.gnu.org ([208.118.235.92]:48646) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Tdy1B-0006TG-FL for submit@debbugs.gnu.org; Thu, 29 Nov 2012 01:54:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TdxzD-0007QC-Vv for submit@debbugs.gnu.org; Thu, 29 Nov 2012 01:52:42 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:60114) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TdxzD-0007Py-SU for submit@debbugs.gnu.org; Thu, 29 Nov 2012 01:52:39 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43977) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TdxzA-0001Gv-M4 for bug-gnu-emacs@gnu.org; Thu, 29 Nov 2012 01:52:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tdxz7-0007Ij-NW for bug-gnu-emacs@gnu.org; Thu, 29 Nov 2012 01:52:36 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:51442) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tdxz7-0007IP-96 for bug-gnu-emacs@gnu.org; Thu, 29 Nov 2012 01:52:33 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 884A139E8105 for ; Wed, 28 Nov 2012 22:52:31 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IufS46udfe65 for ; Wed, 28 Nov 2012 22:52:29 -0800 (PST) Received: from [192.168.1.3] (pool-71-189-154-249.lsanca.fios.verizon.net [71.189.154.249]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 9428639E8008 for ; Wed, 28 Nov 2012 22:52:29 -0800 (PST) Message-ID: <50B7062F.1010901@cs.ucla.edu> Date: Wed, 28 Nov 2012 22:52:31 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: bug-gnu-emacs@gnu.org Subject: Assume POSIX 1003.1-1988 or later for signal.h. Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 208.118.235.17 X-Spam-Score: -6.2 (------) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.2 (------) Tags: patch Attached is a proposed patch to simplify Emacs by assuming POSIX 1003.1-1988 or later for signal.h, which I'd like to install soon. This patch is relative to trunk bzr 111026. Tested on Fedora 17. === modified file 'ChangeLog' --- ChangeLog 2012-11-27 03:10:32 +0000 +++ ChangeLog 2012-11-29 06:46:35 +0000 @@ -1,3 +1,9 @@ +2012-11-29 Paul Eggert + + Assume POSIX 1003.1-1988 or later for signal.h. + * configure.ac (PTY_OPEN, PTY_TTY_NAME_SPRINTF): + Use SIGCHLD rather than SIGCLD. + 2012-11-27 Eli Zaretskii * make-dist (nt): Adjust to changes in names of the *.manifest files. === modified file 'admin/CPP-DEFINES' --- admin/CPP-DEFINES 2012-11-24 17:20:49 +0000 +++ admin/CPP-DEFINES 2012-11-29 06:46:35 +0000 @@ -419,14 +419,7 @@ PURESIZE RUN_TIME_REMAP SETUP_SLAVE_PTY -SIGALRM -SIGCHLD -SIGHUP -SIGKILL SIGNALS_VIA_CHARACTERS -SIGPIPE -SIGQUIT -SIGTRAP STDC_HEADERS SYSTEM_PURESIZE_EXTRA SYSTEM_MALLOC === modified file 'admin/ChangeLog' --- admin/ChangeLog 2012-11-24 17:20:49 +0000 +++ admin/ChangeLog 2012-11-29 06:46:35 +0000 @@ -1,3 +1,10 @@ +2012-11-29 Paul Eggert + + Assume POSIX 1003.1-1988 or later for signal.h. + * CPP-DEFINES (SIGALRM, SIGCHLD, SIGHUP, SIGKILL, SIGPIPE, SIGQUIT): + Remove. + (SIGTRAP): Remove this one too, as config.h no longer defines it. + 2012-11-24 Ken Brown * CPP-DEFINES (HAVE_MOUSE): Remove. === modified file 'configure.ac' --- configure.ac 2012-11-27 03:10:32 +0000 +++ configure.ac 2012-11-29 06:46:35 +0000 @@ -3600,7 +3600,7 @@ AC_DEFINE(PTY_ITERATION, []) dnl Not used, because PTY_ITERATION is defined. AC_DEFINE(FIRST_PTY_LETTER, ['q']) - AC_DEFINE(PTY_OPEN, [ { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); }]) + AC_DEFINE(PTY_OPEN, [ { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCHLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCHLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); }]) dnl No need to get the pty name at all. AC_DEFINE(PTY_NAME_SPRINTF, []) dnl No need to use sprintf to get the tty name--we get that from _getpty. @@ -3611,12 +3611,12 @@ dnl On SysVr4, grantpt(3) forks a subprocess, so keep sigchld_handler() dnl from intercepting that death. If any child but grantpt's should die dnl within, it should be caught after sigrelse(2). - AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); }]) + AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); }]) ;; unixware ) dnl Comments are as per sol2*. - AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, sizeof pty_name, "%s", ptyname); }]) + AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, sizeof pty_name, "%s", ptyname); }]) ;; esac === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2012-11-27 05:17:07 +0000 +++ lib-src/ChangeLog 2012-11-29 06:46:35 +0000 @@ -1,3 +1,8 @@ +2012-11-29 Paul Eggert + + Assume POSIX 1003.1-1988 or later for signal.h. + * emacsclient.c (main): Assume SIGSTOP is defined. + 2012-11-27 Paul Eggert Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968). === modified file 'lib-src/emacsclient.c' --- lib-src/emacsclient.c 2012-11-21 21:06:52 +0000 +++ lib-src/emacsclient.c 2012-11-29 06:46:35 +0000 @@ -1801,7 +1801,6 @@ needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n'; exit_status = EXIT_FAILURE; } -#ifdef SIGSTOP else if (strprefix ("-suspend ", p)) { /* -suspend: Suspend this terminal, i.e., stop the process. */ @@ -1810,7 +1809,6 @@ needlf = 0; kill (0, SIGSTOP); } -#endif else { /* Unknown command. */ === modified file 'src/ChangeLog' --- src/ChangeLog 2012-11-29 06:00:21 +0000 +++ src/ChangeLog 2012-11-29 06:47:50 +0000 @@ -1,3 +1,30 @@ +2012-11-29 Paul Eggert + + Assume POSIX 1003.1-1988 or later for signal.h. + * keyboard.c (stuff_buffered_input, handle_interrupt): + Assume SIGTSTP is defined. + * process.c (deleted_pid_list, Fdelete_process, create_process) + (record_child_status_change, handle_child_signal, deliver_child_signal) + (init_process_emacs, syms_of_process): + Assume SIGCHLD is defined. + (process_send_signal, Fcontinue_process): Assume SIGCONT is defined. + (Fstop_process): Assume SIGTSTP is defined. + (Fsignal_process): Assume SIGUSR1, SIGUSR2, SIGHUP, SIGQUIT, + SIGKILL, SIGPIPE, SIGALRM, SIGSTOP, SIGTSTP, SIGCONT, SIGCHLD, + SIGTTIN and SIGTTOU are defined. + * sysdep.c (stuff_char, sys_suspend): Assume SIGTSTP is defined. + (sys_suspend) [!MSDOS]: Use kill (0, ...) rather than + kill (getpgrp (), ...). + (tcsetpgrp_without_stopping): Assume SIGTTOU is defined. + (emacs_sigaction_init): Assume SIGCHLD is defined. + (init_signals): Assume SIGALRM, SIGCHLD, SIGCONT, SIGHUP, SIGKILL, + SIGPIPE, SIGQUIT, SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU, SIGUSR1 and + SIGUSR2 are defined. Do not worry about SIGCLD any more. + * syssignal.h (EMACS_KILLPG): Remove. All uses replaced by 'kill' + with a negative pid. + (SIGCHLD): Remove definition, as we now assume SIGCHLD. + * w32proc.c (sys_kill): Support negative pids compatibly with POSIX. + 2012-11-29 Dmitry Antipov * xdisp.c (window_outdated): Remove eassert since it hits === modified file 'src/callproc.c' --- src/callproc.c 2012-11-29 00:36:22 +0000 +++ src/callproc.c 2012-11-29 06:46:35 +0000 @@ -97,7 +97,7 @@ CONS_TO_INTEGER (Fcar (fdpid), int, fd); CONS_TO_INTEGER (Fcdr (fdpid), pid_t, pid); emacs_close (fd); - EMACS_KILLPG (pid, SIGKILL); + kill (-pid, SIGKILL); synch_process_alive = 0; return Qnil; } @@ -134,7 +134,7 @@ return Qnil; } - if (EMACS_KILLPG (pid, SIGINT) == 0) + if (kill (-pid, SIGINT) == 0) { ptrdiff_t count = SPECPDL_INDEX (); record_unwind_protect (call_process_kill, fdpid); === modified file 'src/keyboard.c' --- src/keyboard.c 2012-11-27 05:17:07 +0000 +++ src/keyboard.c 2012-11-29 06:46:35 +0000 @@ -10552,8 +10552,7 @@ void stuff_buffered_input (Lisp_Object stuffstring) { -#ifdef SIGTSTP /* stuff_char is defined if SIGTSTP. */ - register unsigned char *p; + unsigned char *p; if (STRINGP (stuffstring)) { @@ -10584,7 +10583,6 @@ } input_pending = 0; -#endif /* SIGTSTP */ } void @@ -10689,22 +10687,13 @@ fflush (stdout); reset_all_sys_modes (); -#ifdef SIGTSTP /* Support possible in later USG versions */ /* - * On systems which can suspend the current process and return to the original - * shell, this command causes the user to end up back at the shell. + * Cause the user to end up back at the shell. * The "Auto-save" and "Abort" questions are not asked until * the user elects to return to emacs, at which point he can save the current * job and either dump core or continue. */ sys_suspend (); -#else - /* Perhaps should really fork an inferior shell? - But that would not provide any way to get back - to the original shell, ever. */ - printf ("No support for stopping a process on this operating system;\n"); - printf ("you can continue or abort.\n"); -#endif /* not SIGTSTP */ #ifdef MSDOS /* We must remain inside the screen area when the internal terminal is used. Note that [Enter] is not echoed by dos. */ === modified file 'src/process.c' --- src/process.c 2012-11-27 05:17:07 +0000 +++ src/process.c 2012-11-29 06:46:35 +0000 @@ -773,13 +773,11 @@ } -#ifdef SIGCHLD /* Fdelete_process promises to immediately forget about the process, but in reality, Emacs needs to remember those processes until they have been treated by the SIGCHLD handler and waitpid has been invoked on them; otherwise they might fill up the kernel's process table. */ static Lisp_Object deleted_pid_list; -#endif DEFUN ("delete-process", Fdelete_process, Sdelete_process, 1, 1, 0, doc: /* Delete PROCESS: kill it and forget about it immediately. @@ -802,7 +800,6 @@ } else if (p->infd >= 0) { -#ifdef SIGCHLD Lisp_Object symbol; pid_t pid = p->pid; @@ -820,7 +817,6 @@ deleted_pid_list = Fdelete (make_fixnum_or_float (pid), deleted_pid_list); else -#endif { Fkill_process (process, Qnil); /* Do this now, since remove_process will make the @@ -1578,9 +1574,7 @@ #ifndef WINDOWSNT int wait_child_setup[2]; #endif -#ifdef SIGCHLD sigset_t blocked; -#endif /* Use volatile to protect variables from being clobbered by vfork. */ volatile int forkin, forkout; volatile int pty_flag = 0; @@ -1680,13 +1674,11 @@ block_input (); -#ifdef SIGCHLD /* Block SIGCHLD until we have a chance to store the new fork's pid in its process structure. */ sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); -#endif #if HAVE_WORKING_VFORK /* child_setup must clobber environ on systems with true vfork. @@ -1800,10 +1792,8 @@ /* Emacs ignores SIGPIPE, but the child should not. */ signal (SIGPIPE, SIG_DFL); -#ifdef SIGCHLD /* Stop blocking signals in the child. */ pthread_sigmask (SIG_SETMASK, &empty_mask, 0); -#endif if (pty_flag) child_setup_tty (xforkout); @@ -1828,9 +1818,7 @@ XPROCESS (process)->alive = 1; /* Stop blocking signals in the parent. */ -#ifdef SIGCHLD pthread_sigmask (SIG_SETMASK, &empty_mask, 0); -#endif unblock_input (); if (pid < 0) @@ -4622,7 +4610,7 @@ yielding EBADF here or at select() call above. So, SIGHUP is ignored (see def of PTY_TTY_NAME_SPRINTF in m/ibmrt-aix.h), and here we just ignore the select error. - Cleanup occurs c/o status_notify after SIGCLD. */ + Cleanup occurs c/o status_notify after SIGCHLD. */ no_avail = 1; /* Cannot depend on values returned */ #else emacs_abort (); @@ -4820,10 +4808,8 @@ #endif /* HAVE_PTYS */ /* If we can detect process termination, don't consider the process gone just because its pipe is closed. */ -#ifdef SIGCHLD else if (nread == 0 && !NETCONN_P (proc) && !SERIALCONN_P (proc)) ; -#endif else { /* Preserve status of processes already terminated. */ @@ -5686,7 +5672,7 @@ If we can, we try to signal PROCESS by sending control characters down the pty. This allows us to signal inferiors who have changed - their uid, for which killpg would return an EPERM error. */ + their uid, for which kill would return an EPERM error. */ static void process_send_signal (Lisp_Object process, int signo, Lisp_Object current_group, @@ -5791,7 +5777,6 @@ switch (signo) { -#ifdef SIGCONT case SIGCONT: p->raw_status_new = 0; pset_status (p, Qrun); @@ -5802,7 +5787,7 @@ redisplay_preserve_echo_area (13); } break; -#endif /* ! defined (SIGCONT) */ + case SIGINT: case SIGQUIT: case SIGKILL: @@ -5824,7 +5809,7 @@ if (!NILP (current_group)) { if (ioctl (p->infd, TIOCSIGSEND, signo) == -1) - EMACS_KILLPG (gid, signo); + kill (-gid, signo); } else { @@ -5832,7 +5817,7 @@ kill (gid, signo); } #else /* ! defined (TIOCSIGSEND) */ - EMACS_KILLPG (gid, signo); + kill (-gid, signo); #endif /* ! defined (TIOCSIGSEND) */ } @@ -5893,11 +5878,8 @@ pset_command (p, Qt); return process; } -#ifndef SIGTSTP - error ("No SIGTSTP support"); -#else + process_send_signal (process, SIGTSTP, current_group, 0); -#endif return process; } @@ -5929,11 +5911,8 @@ pset_command (p, Qnil); return process; } -#ifdef SIGCONT - process_send_signal (process, SIGCONT, current_group, 0); -#else - error ("No SIGCONT support"); -#endif + + process_send_signal (process, SIGCONT, current_group, 0); return process; } @@ -5994,28 +5973,18 @@ if (0) ; -#ifdef SIGUSR1 parse_signal ("usr1", SIGUSR1); -#endif -#ifdef SIGUSR2 parse_signal ("usr2", SIGUSR2); -#endif parse_signal ("term", SIGTERM); -#ifdef SIGHUP parse_signal ("hup", SIGHUP); -#endif parse_signal ("int", SIGINT); -#ifdef SIGQUIT parse_signal ("quit", SIGQUIT); -#endif parse_signal ("ill", SIGILL); parse_signal ("abrt", SIGABRT); #ifdef SIGEMT parse_signal ("emt", SIGEMT); #endif -#ifdef SIGKILL parse_signal ("kill", SIGKILL); -#endif parse_signal ("fpe", SIGFPE); #ifdef SIGBUS parse_signal ("bus", SIGBUS); @@ -6024,33 +5993,17 @@ #ifdef SIGSYS parse_signal ("sys", SIGSYS); #endif -#ifdef SIGPIPE parse_signal ("pipe", SIGPIPE); -#endif -#ifdef SIGALRM parse_signal ("alrm", SIGALRM); -#endif #ifdef SIGURG parse_signal ("urg", SIGURG); #endif -#ifdef SIGSTOP parse_signal ("stop", SIGSTOP); -#endif -#ifdef SIGTSTP parse_signal ("tstp", SIGTSTP); -#endif -#ifdef SIGCONT parse_signal ("cont", SIGCONT); -#endif -#ifdef SIGCHLD parse_signal ("chld", SIGCHLD); -#endif -#ifdef SIGTTIN parse_signal ("ttin", SIGTTIN); -#endif -#ifdef SIGTTOU parse_signal ("ttou", SIGTTOU); -#endif #ifdef SIGIO parse_signal ("io", SIGIO); #endif @@ -6214,7 +6167,6 @@ void record_child_status_change (pid_t pid, int w) { -#ifdef SIGCHLD /* Record at most one child only if we already know one child that has exited. */ @@ -6303,11 +6255,8 @@ if (input_available_clear_time) *input_available_clear_time = make_emacs_time (0, 0); } -#endif } -#ifdef SIGCHLD - static void handle_child_signal (int sig) { @@ -6319,8 +6268,6 @@ { deliver_process_signal (sig, handle_child_signal); } - -#endif /* SIGCHLD */ static Lisp_Object @@ -7169,7 +7116,6 @@ inhibit_sentinels = 0; -#ifdef SIGCHLD #ifndef CANNOT_DUMP if (! noninteractive || initialized) #endif @@ -7178,7 +7124,6 @@ emacs_sigaction_init (&action, deliver_child_signal); sigaction (SIGCHLD, &action, 0); } -#endif FD_ZERO (&input_wait_mask); FD_ZERO (&non_keyboard_wait_mask); @@ -7205,9 +7150,7 @@ #endif Vprocess_alist = Qnil; -#ifdef SIGCHLD deleted_pid_list = Qnil; -#endif for (i = 0; i < MAXDESC; i++) { chan_process[i] = Qnil; @@ -7334,9 +7277,7 @@ DEFSYM (Qlast_nonmenu_event, "last-nonmenu-event"); staticpro (&Vprocess_alist); -#ifdef SIGCHLD staticpro (&deleted_pid_list); -#endif #endif /* subprocesses */ === modified file 'src/sysdep.c' --- src/sysdep.c 2012-11-27 03:10:32 +0000 +++ src/sysdep.c 2012-11-29 06:46:35 +0000 @@ -213,8 +213,6 @@ } -#ifdef SIGTSTP - /* Arrange for character C to be read as the next input from the terminal. XXX What if we have multiple ttys? @@ -233,8 +231,6 @@ error ("Cannot stuff terminal input characters in this version of Unix"); #endif /* no TIOCSTI */ } - -#endif /* SIGTSTP */ void init_baud_rate (int fd) @@ -428,20 +424,15 @@ void sys_suspend (void) { -#if defined (SIGTSTP) && !defined (MSDOS) - - { - pid_t pgrp = getpgrp (); - EMACS_KILLPG (pgrp, SIGTSTP); - } - -#else /* No SIGTSTP */ +#ifndef MSDOS + kill (0, SIGTSTP); +#else /* On a system where suspending is not implemented, instead fork a subshell and let it talk directly to the terminal while we wait. */ sys_subshell (); -#endif /* no SIGTSTP */ +#endif } /* Fork a subshell. */ @@ -702,14 +693,12 @@ static void tcsetpgrp_without_stopping (int fd, pid_t pgid) { -#ifdef SIGTTOU signal_handler_t handler; block_input (); handler = signal (SIGTTOU, SIG_IGN); tcsetpgrp (fd, pgid); signal (SIGTTOU, handler); unblock_input (); -#endif } /* Split off the foreground process group to Emacs alone. When we are @@ -1491,9 +1480,7 @@ /* When handling a signal, block nonfatal system signals that are caught by Emacs. This makes race conditions less likely. */ sigaddset (&action->sa_mask, SIGALRM); -#ifdef SIGCHLD sigaddset (&action->sa_mask, SIGCHLD); -#endif #ifdef SIGDANGER sigaddset (&action->sa_mask, SIGDANGER); #endif @@ -1673,21 +1660,12 @@ # ifdef SIGAIO sys_siglist[SIGAIO] = "LAN I/O interrupt"; # endif -# ifdef SIGALRM sys_siglist[SIGALRM] = "Alarm clock"; -# endif # ifdef SIGBUS sys_siglist[SIGBUS] = "Bus error"; # endif -# ifdef SIGCLD - sys_siglist[SIGCLD] = "Child status changed"; -# endif -# ifdef SIGCHLD sys_siglist[SIGCHLD] = "Child status changed"; -# endif -# ifdef SIGCONT sys_siglist[SIGCONT] = "Continued"; -# endif # ifdef SIGDANGER sys_siglist[SIGDANGER] = "Swap space dangerously low"; # endif @@ -1704,9 +1682,7 @@ # ifdef SIGGRANT sys_siglist[SIGGRANT] = "Monitor mode granted"; # endif -# ifdef SIGHUP sys_siglist[SIGHUP] = "Hangup"; -# endif sys_siglist[SIGILL] = "Illegal instruction"; sys_siglist[SIGINT] = "Interrupt"; # ifdef SIGIO @@ -1718,9 +1694,7 @@ # ifdef SIGIOT sys_siglist[SIGIOT] = "IOT trap"; # endif -# ifdef SIGKILL sys_siglist[SIGKILL] = "Killed"; -# endif # ifdef SIGLOST sys_siglist[SIGLOST] = "Resource lost"; # endif @@ -1733,9 +1707,7 @@ # ifdef SIGPHONE sys_siglist[SIGWIND] = "SIGPHONE"; # endif -# ifdef SIGPIPE sys_siglist[SIGPIPE] = "Broken pipe"; -# endif # ifdef SIGPOLL sys_siglist[SIGPOLL] = "Pollable event occurred"; # endif @@ -1748,9 +1720,7 @@ # ifdef SIGPWR sys_siglist[SIGPWR] = "Power-fail restart"; # endif -# ifdef SIGQUIT sys_siglist[SIGQUIT] = "Quit"; -# endif # ifdef SIGRETRACT sys_siglist[SIGRETRACT] = "Need to relinquish monitor mode"; # endif @@ -1761,9 +1731,7 @@ # ifdef SIGSOUND sys_siglist[SIGSOUND] = "Sound completed"; # endif -# ifdef SIGSTOP sys_siglist[SIGSTOP] = "Stopped (signal)"; -# endif # ifdef SIGSTP sys_siglist[SIGSTP] = "Stopped (user)"; # endif @@ -1777,24 +1745,14 @@ # ifdef SIGTRAP sys_siglist[SIGTRAP] = "Trace/breakpoint trap"; # endif -# ifdef SIGTSTP sys_siglist[SIGTSTP] = "Stopped (user)"; -# endif -# ifdef SIGTTIN sys_siglist[SIGTTIN] = "Stopped (tty input)"; -# endif -# ifdef SIGTTOU sys_siglist[SIGTTOU] = "Stopped (tty output)"; -# endif # ifdef SIGURG sys_siglist[SIGURG] = "Urgent I/O condition"; # endif -# ifdef SIGUSR1 sys_siglist[SIGUSR1] = "User defined signal 1"; -# endif -# ifdef SIGUSR2 sys_siglist[SIGUSR2] = "User defined signal 2"; -# endif # ifdef SIGVTALRM sys_siglist[SIGVTALRM] = "Virtual timer expired"; # endif @@ -1861,12 +1819,8 @@ sigaction (SIGFPE, &action, 0); } -#ifdef SIGUSR1 add_user_signal (SIGUSR1, "sigusr1"); -#endif -#ifdef SIGUSR2 add_user_signal (SIGUSR2, "sigusr2"); -#endif sigaction (SIGABRT, &thread_fatal_action, 0); #ifdef SIGPRE sigaction (SIGPRE, &thread_fatal_action, 0); === modified file 'src/syssignal.h' --- src/syssignal.h 2012-10-07 02:26:03 +0000 +++ src/syssignal.h 2012-11-29 06:46:35 +0000 @@ -54,26 +54,6 @@ # define emacs_raise(sig) raise (sig) #endif -/* On bsd, [man says] kill does not accept a negative number to kill a pgrp. - Must do that using the killpg call. */ -#ifdef BSD_SYSTEM -#define EMACS_KILLPG(gid, signo) (killpg ( (gid), (signo))) -#else -#ifdef WINDOWSNT -#define EMACS_KILLPG(gid, signo) (kill (gid, signo)) -#else -#define EMACS_KILLPG(gid, signo) (kill (-(gid), (signo))) -#endif -#endif - -/* Define SIGCHLD as an alias for SIGCLD. There are many conditionals - testing SIGCHLD. */ -#ifdef SIGCLD -#ifndef SIGCHLD -#define SIGCHLD SIGCLD -#endif /* SIGCHLD */ -#endif /* ! defined (SIGCLD) */ - #ifndef HAVE_STRSIGNAL # define strsignal(sig) safe_strsignal (sig) #endif === modified file 'src/w32proc.c' --- src/w32proc.c 2012-11-27 03:10:32 +0000 +++ src/w32proc.c 2012-11-29 06:46:35 +0000 @@ -2139,6 +2139,10 @@ int need_to_free = 0; int rc = 0; + /* Each process is in its own process group. */ + if (pid < 0) + pid = -pid; + /* Only handle signals that will result in the process dying */ if (sig != SIGINT && sig != SIGKILL && sig != SIGQUIT && sig != SIGHUP) { From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 29 12:35:53 2012 Received: (at 13026) by debbugs.gnu.org; 29 Nov 2012 17:35:53 +0000 Received: from localhost ([127.0.0.1]:45459 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Te81g-0005R5-FU for submit@debbugs.gnu.org; Thu, 29 Nov 2012 12:35:53 -0500 Received: from mtaout20.012.net.il ([80.179.55.166]:45998) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Te81e-0005Qx-37 for 13026@debbugs.gnu.org; Thu, 29 Nov 2012 12:35:51 -0500 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0ME900700FEOEH00@a-mtaout20.012.net.il> for 13026@debbugs.gnu.org; Thu, 29 Nov 2012 19:33:36 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0ME9007LDFFZ9P30@a-mtaout20.012.net.il>; Thu, 29 Nov 2012 19:33:36 +0200 (IST) Date: Thu, 29 Nov 2012 19:33:56 +0200 From: Eli Zaretskii Subject: Re: bug#13026: Assume POSIX 1003.1-1988 or later for signal.h. In-reply-to: <50B7062F.1010901@cs.ucla.edu> X-012-Sender: halo1@inter.net.il To: Paul Eggert Message-id: <83sj7suxdn.fsf@gnu.org> References: <50B7062F.1010901@cs.ucla.edu> X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 13026 Cc: 13026@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > Date: Wed, 28 Nov 2012 22:52:31 -0800 > From: Paul Eggert > > Attached is a proposed patch to simplify Emacs by assuming > POSIX 1003.1-1988 or later for signal.h, which I'd > like to install soon. This patch is relative to > trunk bzr 111026. Tested on Fedora 17. This will break the Windows build in more than one way, unless accompanied by suitable Windows-only changes. Is this the entire changeset, or did you omit some more changes? Here are the problems I found: > === modified file 'lib-src/emacsclient.c' > --- lib-src/emacsclient.c 2012-11-21 21:06:52 +0000 > +++ lib-src/emacsclient.c 2012-11-29 06:46:35 +0000 > @@ -1801,7 +1801,6 @@ > needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n'; > exit_status = EXIT_FAILURE; > } > -#ifdef SIGSTOP > else if (strprefix ("-suspend ", p)) > { > /* -suspend: Suspend this terminal, i.e., stop the process. */ > @@ -1810,7 +1809,6 @@ > needlf = 0; > kill (0, SIGSTOP); > } > -#endif > else > { > /* Unknown command. */ This will break compilation of emacsclient.c, because SIGSTOP is not defined on MS-Windows, and therefore the -suspend option cannot be supported. And even if we define SIGSTOP to some value, having "-suspend" pretend to work, but do nothing is not a good idea. (We could emulate this option, but that would be a non-trivial change, certainly not belonging in this changeset.) Also, there's no 'kill' on Windows, and the emulation in w32proc.c is only compiled into Emacs itself, not into lib-src programs. > --- src/keyboard.c 2012-11-27 05:17:07 +0000 > +++ src/keyboard.c 2012-11-29 06:46:35 +0000 > @@ -10552,8 +10552,7 @@ > void > stuff_buffered_input (Lisp_Object stuffstring) > { > -#ifdef SIGTSTP /* stuff_char is defined if SIGTSTP. */ > - register unsigned char *p; > + unsigned char *p; > > if (STRINGP (stuffstring)) > { > @@ -10584,7 +10583,6 @@ > } > > input_pending = 0; > -#endif /* SIGTSTP */ > } This will break suspend-emacs on MS-Windows (which does work now by launching a sub-shell), because stuff_char, called by stuff_buffered_input, will now signal an error. > -#ifdef SIGTSTP /* Support possible in later USG versions */ > /* > - * On systems which can suspend the current process and return to the original > - * shell, this command causes the user to end up back at the shell. > + * Cause the user to end up back at the shell. > * The "Auto-save" and "Abort" questions are not asked until > * the user elects to return to emacs, at which point he can save the current > * job and either dump core or continue. > */ > sys_suspend (); > -#else > - /* Perhaps should really fork an inferior shell? > - But that would not provide any way to get back > - to the original shell, ever. */ > - printf ("No support for stopping a process on this operating system;\n"); > - printf ("you can continue or abort.\n"); > -#endif /* not SIGTSTP */ > #ifdef MSDOS > /* We must remain inside the screen area when the internal terminal > is used. Note that [Enter] is not echoed by dos. */ This will also break Windows, because it cannot_suspend, so calling sys_suspend for it does nothing useful (the Windows 'kill' emulation only works on processes other than Emacs, and again SIGTSTP is not going to suspend anything). > @@ -5791,7 +5777,6 @@ > > switch (signo) > { > -#ifdef SIGCONT > case SIGCONT: > p->raw_status_new = 0; > pset_status (p, Qrun); > @@ -5802,7 +5787,7 @@ > redisplay_preserve_echo_area (13); > } > break; > -#endif /* ! defined (SIGCONT) */ This won't compile, since SIGCONT is not defined on Windows. > @@ -5929,11 +5911,8 @@ > pset_command (p, Qnil); > return process; > } > -#ifdef SIGCONT > - process_send_signal (process, SIGCONT, current_group, 0); > -#else > - error ("No SIGCONT support"); > -#endif > + > + process_send_signal (process, SIGCONT, current_group, 0); > return process; > } Likewise. > @@ -5994,28 +5973,18 @@ > > if (0) > ; > -#ifdef SIGUSR1 > parse_signal ("usr1", SIGUSR1); > -#endif > -#ifdef SIGUSR2 > parse_signal ("usr2", SIGUSR2); > -#endif Likewise: SIGUSR1 and SIGUSR2 are not defined. > -#ifdef SIGSTOP > parse_signal ("stop", SIGSTOP); > -#endif > -#ifdef SIGTSTP > parse_signal ("tstp", SIGTSTP); > -#endif > -#ifdef SIGCONT > parse_signal ("cont", SIGCONT); > -#endif > -#ifdef SIGCHLD > parse_signal ("chld", SIGCHLD); > -#endif > -#ifdef SIGTTIN > parse_signal ("ttin", SIGTTIN); > -#endif > -#ifdef SIGTTOU > parse_signal ("ttou", SIGTTOU); > -#endif And the same for all these, except SIGCHLD. > --- src/sysdep.c 2012-11-27 03:10:32 +0000 > +++ src/sysdep.c 2012-11-29 06:46:35 +0000 > @@ -213,8 +213,6 @@ > } > > > -#ifdef SIGTSTP > - > /* Arrange for character C to be read as the next input from > the terminal. > XXX What if we have multiple ttys? > @@ -233,8 +231,6 @@ > error ("Cannot stuff terminal input characters in this version of Unix"); > #endif /* no TIOCSTI */ > } > - > -#endif /* SIGTSTP */ See above: this will now signal an error on Windows. > @@ -428,20 +424,15 @@ > void > sys_suspend (void) > { > -#if defined (SIGTSTP) && !defined (MSDOS) > - > - { > - pid_t pgrp = getpgrp (); > - EMACS_KILLPG (pgrp, SIGTSTP); > - } > - > -#else /* No SIGTSTP */ > +#ifndef MSDOS > + kill (0, SIGTSTP); > +#else > /* On a system where suspending is not implemented, > instead fork a subshell and let it talk directly to the terminal > while we wait. */ > sys_subshell (); > > -#endif /* no SIGTSTP */ > +#endif > } Windows should also call sys_subshell here. > @@ -702,14 +693,12 @@ > static void > tcsetpgrp_without_stopping (int fd, pid_t pgid) > { > -#ifdef SIGTTOU > signal_handler_t handler; > block_input (); > handler = signal (SIGTTOU, SIG_IGN); > tcsetpgrp (fd, pgid); > signal (SIGTTOU, handler); > unblock_input (); > -#endif > } This won't compile because SIGTTOU is not defined. Also, there's no tcsetpgrp on Windows, so this won't link unless we provide an emulation. > -# ifdef SIGCONT > sys_siglist[SIGCONT] = "Continued"; > -# endif Won't compile. > -# ifdef SIGSTOP > sys_siglist[SIGSTOP] = "Stopped (signal)"; > -# endif Likewise. > -# ifdef SIGTSTP > sys_siglist[SIGTSTP] = "Stopped (user)"; > -# endif > -# ifdef SIGTTIN > sys_siglist[SIGTTIN] = "Stopped (tty input)"; > -# endif > -# ifdef SIGTTOU > sys_siglist[SIGTTOU] = "Stopped (tty output)"; > -# endif Likewise. > -# ifdef SIGUSR1 > sys_siglist[SIGUSR1] = "User defined signal 1"; > -# endif > -# ifdef SIGUSR2 > sys_siglist[SIGUSR2] = "User defined signal 2"; > -# endif Likewise. Please also note that NSIG is 23 on Windows, so the sys_siglist array cannot be much larger than it already is (I think most of the 23 slots are already used up). > @@ -1861,12 +1819,8 @@ > sigaction (SIGFPE, &action, 0); > } > > -#ifdef SIGUSR1 > add_user_signal (SIGUSR1, "sigusr1"); > -#endif > -#ifdef SIGUSR2 > add_user_signal (SIGUSR2, "sigusr2"); > -#endif Won't compile. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 29 16:40:36 2012 Received: (at 13026) by debbugs.gnu.org; 29 Nov 2012 21:40:36 +0000 Received: from localhost ([127.0.0.1]:45655 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TeBqT-0003mb-LP for submit@debbugs.gnu.org; Thu, 29 Nov 2012 16:40:35 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:46922) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TeBqK-0003mL-I0 for 13026@debbugs.gnu.org; Thu, 29 Nov 2012 16:40:29 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id AE520A60006; Thu, 29 Nov 2012 13:38:21 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tYhXSu7QgHsK; Thu, 29 Nov 2012 13:38:19 -0800 (PST) Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 23AF0A6000D; Thu, 29 Nov 2012 13:38:18 -0800 (PST) Message-ID: <50B7D5BC.5060606@cs.ucla.edu> Date: Thu, 29 Nov 2012 13:38:04 -0800 From: Paul Eggert User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#13026: Assume POSIX 1003.1-1988 or later for signal.h. References: <50B7062F.1010901@cs.ucla.edu> <83sj7suxdn.fsf@gnu.org> In-Reply-To: <83sj7suxdn.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------080305050905000104080306" X-Spam-Score: -4.6 (----) X-Debbugs-Envelope-To: 13026 Cc: 13026@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.6 (----) This is a multi-part message in MIME format. --------------080305050905000104080306 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 11/29/12 09:33, Eli Zaretskii wrote: > This will break the Windows build in more than one way, unless > accompanied by suitable Windows-only changes. Is this the entire > changeset, or did you omit some more changes? That was the entire changeset. I didn't know about the problems on MS-Windows. I trimmed down the patch, to avoid the issues you raised, and am attaching a proposed revised patch. Thanks for the review. --------------080305050905000104080306 Content-Type: text/plain; charset=us-ascii; name="signal.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="signal.txt" PT09IG1vZGlmaWVkIGZpbGUgJ0NoYW5nZUxvZycKLS0tIENoYW5nZUxvZwkyMDEyLTExLTI3 IDAzOjEwOjMyICswMDAwCisrKyBDaGFuZ2VMb2cJMjAxMi0xMS0yOSAwNjo1NTowMiArMDAw MApAQCAtMSwzICsxLDkgQEAKKzIwMTItMTEtMjkgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNz LnVjbGEuZWR1PgorCisJQXNzdW1lIFBPU0lYIDEwMDMuMS0xOTg4IG9yIGxhdGVyIGZvciBz aWduYWwuaCAoQnVnIzEzMDI2KS4KKwkqIGNvbmZpZ3VyZS5hYyAoUFRZX09QRU4sIFBUWV9U VFlfTkFNRV9TUFJJTlRGKToKKwlVc2UgU0lHQ0hMRCByYXRoZXIgdGhhbiBTSUdDTEQuCisK IDIwMTItMTEtMjcgIEVsaSBaYXJldHNraWkgIDxlbGl6QGdudS5vcmc+CiAKIAkqIG1ha2Ut ZGlzdCAobnQpOiBBZGp1c3QgdG8gY2hhbmdlcyBpbiBuYW1lcyBvZiB0aGUgKi5tYW5pZmVz dCBmaWxlcy4KCj09PSBtb2RpZmllZCBmaWxlICdhZG1pbi9DUFAtREVGSU5FUycKLS0tIGFk bWluL0NQUC1ERUZJTkVTCTIwMTItMTEtMjQgMTc6MjA6NDkgKzAwMDAKKysrIGFkbWluL0NQ UC1ERUZJTkVTCTIwMTItMTEtMjkgMDY6NDY6MzUgKzAwMDAKQEAgLTQxOSwxNCArNDE5LDcg QEAKIFBVUkVTSVpFCiBSVU5fVElNRV9SRU1BUAogU0VUVVBfU0xBVkVfUFRZCi1TSUdBTFJN Ci1TSUdDSExECi1TSUdIVVAKLVNJR0tJTEwKIFNJR05BTFNfVklBX0NIQVJBQ1RFUlMKLVNJ R1BJUEUKLVNJR1FVSVQKLVNJR1RSQVAKIFNURENfSEVBREVSUwogU1lTVEVNX1BVUkVTSVpF X0VYVFJBCiBTWVNURU1fTUFMTE9DCgo9PT0gbW9kaWZpZWQgZmlsZSAnYWRtaW4vQ2hhbmdl TG9nJwotLS0gYWRtaW4vQ2hhbmdlTG9nCTIwMTItMTEtMjQgMTc6MjA6NDkgKzAwMDAKKysr IGFkbWluL0NoYW5nZUxvZwkyMDEyLTExLTI5IDA2OjU1OjAyICswMDAwCkBAIC0xLDMgKzEs MTAgQEAKKzIwMTItMTEtMjkgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1Pgor CisJQXNzdW1lIFBPU0lYIDEwMDMuMS0xOTg4IG9yIGxhdGVyIGZvciBzaWduYWwuaCAoQnVn IzEzMDI2KS4KKwkqIENQUC1ERUZJTkVTIChTSUdBTFJNLCBTSUdDSExELCBTSUdIVVAsIFNJ R0tJTEwsIFNJR1BJUEUsIFNJR1FVSVQpOgorCVJlbW92ZS4KKwkoU0lHVFJBUCk6IFJlbW92 ZSB0aGlzIG9uZSB0b28sIGFzIGNvbmZpZy5oIG5vIGxvbmdlciBkZWZpbmVzIGl0LgorCiAy MDEyLTExLTI0ICBLZW4gQnJvd24gIDxrYnJvd25AY29ybmVsbC5lZHU+CiAKIAkqIENQUC1E RUZJTkVTIChIQVZFX01PVVNFKTogUmVtb3ZlLgoKPT09IG1vZGlmaWVkIGZpbGUgJ2NvbmZp Z3VyZS5hYycKLS0tIGNvbmZpZ3VyZS5hYwkyMDEyLTExLTI3IDAzOjEwOjMyICswMDAwCisr KyBjb25maWd1cmUuYWMJMjAxMi0xMS0yOSAwNjo0NjozNSArMDAwMApAQCAtMzYwMCw3ICsz NjAwLDcgQEAKICAgICBBQ19ERUZJTkUoUFRZX0lURVJBVElPTiwgW10pCiAgICAgZG5sIE5v dCB1c2VkLCBiZWNhdXNlIFBUWV9JVEVSQVRJT04gaXMgZGVmaW5lZC4KICAgICBBQ19ERUZJ TkUoRklSU1RfUFRZX0xFVFRFUiwgWydxJ10pCi0gICAgQUNfREVGSU5FKFBUWV9PUEVOLCBb IHsgc3RydWN0IHNpZ2FjdGlvbiBvY3N0YXQsIGNzdGF0OyBzdHJ1Y3Qgc3RhdCBzdGI7IGNo YXIgKiBuYW1lOyBzaWdlbXB0eXNldCgmY3N0YXQuc2FfbWFzayk7IGNzdGF0LnNhX2hhbmRs ZXIgPSBTSUdfREZMOyBjc3RhdC5zYV9mbGFncyA9IDA7IHNpZ2FjdGlvbihTSUdDTEQsICZj c3RhdCwgJm9jc3RhdCk7IG5hbWUgPSBfZ2V0cHR5ICgmZmQsIE9fUkRXUiB8IE9fTkRFTEFZ LCAwNjAwLCAwKTsgc2lnYWN0aW9uKFNJR0NMRCwgJm9jc3RhdCwgKHN0cnVjdCBzaWdhY3Rp b24gKikwKTsgaWYgKG5hbWUgPT0gMCkgcmV0dXJuIC0xOyBpZiAoZmQgPCAwKSByZXR1cm4g LTE7IGlmIChmc3RhdCAoZmQsICZzdGIpIDwgMCkgcmV0dXJuIC0xOyBzdHJjcHkgKHB0eV9u YW1lLCBuYW1lKTsgfV0pCisgICAgQUNfREVGSU5FKFBUWV9PUEVOLCBbIHsgc3RydWN0IHNp Z2FjdGlvbiBvY3N0YXQsIGNzdGF0OyBzdHJ1Y3Qgc3RhdCBzdGI7IGNoYXIgKiBuYW1lOyBz aWdlbXB0eXNldCgmY3N0YXQuc2FfbWFzayk7IGNzdGF0LnNhX2hhbmRsZXIgPSBTSUdfREZM OyBjc3RhdC5zYV9mbGFncyA9IDA7IHNpZ2FjdGlvbihTSUdDSExELCAmY3N0YXQsICZvY3N0 YXQpOyBuYW1lID0gX2dldHB0eSAoJmZkLCBPX1JEV1IgfCBPX05ERUxBWSwgMDYwMCwgMCk7 IHNpZ2FjdGlvbihTSUdDSExELCAmb2NzdGF0LCAoc3RydWN0IHNpZ2FjdGlvbiAqKTApOyBp ZiAobmFtZSA9PSAwKSByZXR1cm4gLTE7IGlmIChmZCA8IDApIHJldHVybiAtMTsgaWYgKGZz dGF0IChmZCwgJnN0YikgPCAwKSByZXR1cm4gLTE7IHN0cmNweSAocHR5X25hbWUsIG5hbWUp OyB9XSkKICAgICBkbmwgTm8gbmVlZCB0byBnZXQgdGhlIHB0eSBuYW1lIGF0IGFsbC4KICAg ICBBQ19ERUZJTkUoUFRZX05BTUVfU1BSSU5URiwgW10pCiAgICAgZG5sIE5vIG5lZWQgdG8g dXNlIHNwcmludGYgdG8gZ2V0IHRoZSB0dHkgbmFtZS0td2UgZ2V0IHRoYXQgZnJvbSBfZ2V0 cHR5LgpAQCAtMzYxMSwxMiArMzYxMSwxMiBAQAogICAgIGRubCBPbiBTeXNWcjQsIGdyYW50 cHQoMykgZm9ya3MgYSBzdWJwcm9jZXNzLCBzbyBrZWVwIHNpZ2NobGRfaGFuZGxlcigpCiAg ICAgZG5sIGZyb20gaW50ZXJjZXB0aW5nIHRoYXQgZGVhdGguICBJZiBhbnkgY2hpbGQgYnV0 IGdyYW50cHQncyBzaG91bGQgZGllCiAgICAgZG5sIHdpdGhpbiwgaXQgc2hvdWxkIGJlIGNh dWdodCBhZnRlciBzaWdyZWxzZSgyKS4KLSAgICBBQ19ERUZJTkUoUFRZX1RUWV9OQU1FX1NQ UklOVEYsIFt7IGNoYXIgKnB0c25hbWUgKGludCksICpwdHluYW1lOyBpbnQgZ3JhbnRwdF9y ZXN1bHQ7IHNpZ3NldF90IGJsb2NrZWQ7IHNpZ2VtcHR5c2V0ICgmYmxvY2tlZCk7IHNpZ2Fk ZHNldCAoJmJsb2NrZWQsIFNJR0NMRCk7IHB0aHJlYWRfc2lnbWFzayAoU0lHX0JMT0NLLCAm YmxvY2tlZCwgMCk7IGdyYW50cHRfcmVzdWx0ID0gZ3JhbnRwdCAoZmQpOyBwdGhyZWFkX3Np Z21hc2sgKFNJR19VTkJMT0NLLCAmYmxvY2tlZCwgMCk7IGlmIChncmFudHB0X3Jlc3VsdCA9 PSAtMSB8fCB1bmxvY2twdCAoZmQpID09IC0xIHx8ICEocHR5bmFtZSA9IHB0c25hbWUgKGZk KSkpIHsgZW1hY3NfY2xvc2UgKGZkKTsgcmV0dXJuIC0xOyB9IHNucHJpbnRmIChwdHlfbmFt ZSwgc2l6ZW9mIHB0eV9uYW1lLCAiJXMiLCBwdHluYW1lKTsgfV0pCisgICAgQUNfREVGSU5F KFBUWV9UVFlfTkFNRV9TUFJJTlRGLCBbeyBjaGFyICpwdHNuYW1lIChpbnQpLCAqcHR5bmFt ZTsgaW50IGdyYW50cHRfcmVzdWx0OyBzaWdzZXRfdCBibG9ja2VkOyBzaWdlbXB0eXNldCAo JmJsb2NrZWQpOyBzaWdhZGRzZXQgKCZibG9ja2VkLCBTSUdDSExEKTsgcHRocmVhZF9zaWdt YXNrIChTSUdfQkxPQ0ssICZibG9ja2VkLCAwKTsgZ3JhbnRwdF9yZXN1bHQgPSBncmFudHB0 IChmZCk7IHB0aHJlYWRfc2lnbWFzayAoU0lHX1VOQkxPQ0ssICZibG9ja2VkLCAwKTsgaWYg KGdyYW50cHRfcmVzdWx0ID09IC0xIHx8IHVubG9ja3B0IChmZCkgPT0gLTEgfHwgIShwdHlu YW1lID0gcHRzbmFtZSAoZmQpKSkgeyBlbWFjc19jbG9zZSAoZmQpOyByZXR1cm4gLTE7IH0g c25wcmludGYgKHB0eV9uYW1lLCBzaXplb2YgcHR5X25hbWUsICIlcyIsIHB0eW5hbWUpOyB9 XSkKICAgICA7OwogCiAgIHVuaXh3YXJlICkKICAgICBkbmwgQ29tbWVudHMgYXJlIGFzIHBl ciBzb2wyKi4KLSAgICBBQ19ERUZJTkUoUFRZX1RUWV9OQU1FX1NQUklOVEYsIFt7IGNoYXIg KnB0c25hbWUgKGludCksICpwdHluYW1lOyBpbnQgZ3JhbnRwdF9yZXN1bHQ7IHNpZ3NldF90 IGJsb2NrZWQ7IHNpZ2VtcHR5c2V0ICgmYmxvY2tlZCk7IHNpZ2FkZHNldCAoJmJsb2NrZWQs IFNJR0NMRCk7IHB0aHJlYWRfc2lnbWFzayAoU0lHX0JMT0NLLCAmYmxvY2tlZCwgMCk7IGdy YW50cHRfcmVzdWx0ID0gZ3JhbnRwdCAoZmQpOyBwdGhyZWFkX3NpZ21hc2sgKFNJR19VTkJM T0NLLCAmYmxvY2tlZCwgMCk7IGlmIChncmFudHB0X3Jlc3VsdCA9PSAtMSkgZmF0YWwoImNv dWxkIG5vdCBncmFudCBzbGF2ZSBwdHkiKTsgaWYgKHVubG9ja3B0KGZkKSA9PSAtMSkgZmF0 YWwoImNvdWxkIG5vdCB1bmxvY2sgc2xhdmUgcHR5Iik7IGlmICghKHB0eW5hbWUgPSBwdHNu YW1lKGZkKSkpIGZhdGFsICgiY291bGQgbm90IGVuYWJsZSBzbGF2ZSBwdHkiKTsgc25wcmlu dGYgKHB0eV9uYW1lLCBzaXplb2YgcHR5X25hbWUsICIlcyIsIHB0eW5hbWUpOyB9XSkKKyAg ICBBQ19ERUZJTkUoUFRZX1RUWV9OQU1FX1NQUklOVEYsIFt7IGNoYXIgKnB0c25hbWUgKGlu dCksICpwdHluYW1lOyBpbnQgZ3JhbnRwdF9yZXN1bHQ7IHNpZ3NldF90IGJsb2NrZWQ7IHNp Z2VtcHR5c2V0ICgmYmxvY2tlZCk7IHNpZ2FkZHNldCAoJmJsb2NrZWQsIFNJR0NITEQpOyBw dGhyZWFkX3NpZ21hc2sgKFNJR19CTE9DSywgJmJsb2NrZWQsIDApOyBncmFudHB0X3Jlc3Vs dCA9IGdyYW50cHQgKGZkKTsgcHRocmVhZF9zaWdtYXNrIChTSUdfVU5CTE9DSywgJmJsb2Nr ZWQsIDApOyBpZiAoZ3JhbnRwdF9yZXN1bHQgPT0gLTEpIGZhdGFsKCJjb3VsZCBub3QgZ3Jh bnQgc2xhdmUgcHR5Iik7IGlmICh1bmxvY2twdChmZCkgPT0gLTEpIGZhdGFsKCJjb3VsZCBu b3QgdW5sb2NrIHNsYXZlIHB0eSIpOyBpZiAoIShwdHluYW1lID0gcHRzbmFtZShmZCkpKSBm YXRhbCAoImNvdWxkIG5vdCBlbmFibGUgc2xhdmUgcHR5Iik7IHNucHJpbnRmIChwdHlfbmFt ZSwgc2l6ZW9mIHB0eV9uYW1lLCAiJXMiLCBwdHluYW1lKTsgfV0pCiAgICAgOzsKIGVzYWMK IAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9DaGFuZ2VMb2cnCi0tLSBzcmMvQ2hhbmdlTG9n CTIwMTItMTEtMjkgMDY6MDA6MjEgKzAwMDAKKysrIHNyYy9DaGFuZ2VMb2cJMjAxMi0xMS0y OSAyMTozMzo1MiArMDAwMApAQCAtMSwzICsxLDI0IEBACisyMDEyLTExLTI5ICBQYXVsIEVn Z2VydCAgPGVnZ2VydEBjcy51Y2xhLmVkdT4KKworCUFzc3VtZSBQT1NJWCAxMDAzLjEtMTk4 OCBvciBsYXRlciBmb3Igc2lnbmFsLmggKEJ1ZyMxMzAyNikuCisJRXhjZXB0aW9uczogZG8g bm90IGFzc3VtZSBTSUdDT05ULCBTSUdTVE9QLCBTSUdUU1RQLCBTSUdUVElOLAorCVNJR1RU T1UsIFNJR1VTUjEsIFNJR1VTUjIsIGFzIE1pY3Jvc29mdCBwbGF0Zm9ybXMgbGFjayB0aGVz ZS4KKwkqIHByb2Nlc3MuYyAoZGVsZXRlZF9waWRfbGlzdCwgRmRlbGV0ZV9wcm9jZXNzLCBj cmVhdGVfcHJvY2VzcykKKwkocmVjb3JkX2NoaWxkX3N0YXR1c19jaGFuZ2UsIGhhbmRsZV9j aGlsZF9zaWduYWwsIGRlbGl2ZXJfY2hpbGRfc2lnbmFsKQorCShpbml0X3Byb2Nlc3NfZW1h Y3MsIHN5bXNfb2ZfcHJvY2Vzcyk6CisJQXNzdW1lIFNJR0NITEQgaXMgZGVmaW5lZC4KKwko RnNpZ25hbF9wcm9jZXNzKTogQXNzdW1lIFNJR0hVUCwgU0lHUVVJVCwgU0lHS0lMTCwgU0lH UElQRSwKKwlTSUdBTFJNIGFuZCBTSUdDSExEIGFyZSBkZWZpbmVkLgorCSogc3lzZGVwLmMg KHN5c19zdXNwZW5kKSBbIURPU19OVF06IFVzZSBraWxsICgwLCAuLi4pIHJhdGhlciB0aGFu CisJa2lsbCAoZ2V0cGdycCAoKSwgLi4uKS4KKwkoZW1hY3Nfc2lnYWN0aW9uX2luaXQpOiBB c3N1bWUgU0lHQ0hMRCBpcyBkZWZpbmVkLgorCShpbml0X3NpZ25hbHMpOiBBc3N1bWUgU0lH QUxSTSwgU0lHQ0hMRCwgU0lHSFVQLCBTSUdLSUxMLAorCVNJR1BJUEUsIGFuZCBTSUdRVUlU IGFyZSBkZWZpbmVkLiAgRG8gbm90IHdvcnJ5IGFib3V0IFNJR0NMRCBhbnkgbW9yZS4KKwkq IHN5c3NpZ25hbC5oIChFTUFDU19LSUxMUEcpOiBSZW1vdmUuICBBbGwgdXNlcyByZXBsYWNl ZCBieSAna2lsbCcKKwl3aXRoIGEgbmVnYXRpdmUgcGlkLgorCShTSUdDSExEKTogUmVtb3Zl IGRlZmluaXRpb24sIGFzIHdlIG5vdyBhc3N1bWUgU0lHQ0hMRC4KKwkqIHczMnByb2MuYyAo c3lzX2tpbGwpOiBTdXBwb3J0IG5lZ2F0aXZlIHBpZHMgY29tcGF0aWJseSB3aXRoIFBPU0lY LgorCiAyMDEyLTExLTI5ICBEbWl0cnkgQW50aXBvdiAgPGRtYW50aXBvdkB5YW5kZXgucnU+ CiAKIAkqIHhkaXNwLmMgKHdpbmRvd19vdXRkYXRlZCk6IFJlbW92ZSBlYXNzZXJ0IHNpbmNl IGl0IGhpdHMKCj09PSBtb2RpZmllZCBmaWxlICdzcmMvY2FsbHByb2MuYycKLS0tIHNyYy9j YWxscHJvYy5jCTIwMTItMTEtMjkgMDA6MzY6MjIgKzAwMDAKKysrIHNyYy9jYWxscHJvYy5j CTIwMTItMTEtMjkgMDY6NDY6MzUgKzAwMDAKQEAgLTk3LDcgKzk3LDcgQEAKICAgQ09OU19U T19JTlRFR0VSIChGY2FyIChmZHBpZCksIGludCwgZmQpOwogICBDT05TX1RPX0lOVEVHRVIg KEZjZHIgKGZkcGlkKSwgcGlkX3QsIHBpZCk7CiAgIGVtYWNzX2Nsb3NlIChmZCk7Ci0gIEVN QUNTX0tJTExQRyAocGlkLCBTSUdLSUxMKTsKKyAga2lsbCAoLXBpZCwgU0lHS0lMTCk7CiAg IHN5bmNoX3Byb2Nlc3NfYWxpdmUgPSAwOwogICByZXR1cm4gUW5pbDsKIH0KQEAgLTEzNCw3 ICsxMzQsNyBAQAogICAgICAgcmV0dXJuIFFuaWw7CiAgICAgfQogCi0gIGlmIChFTUFDU19L SUxMUEcgKHBpZCwgU0lHSU5UKSA9PSAwKQorICBpZiAoa2lsbCAoLXBpZCwgU0lHSU5UKSA9 PSAwKQogICAgIHsKICAgICAgIHB0cmRpZmZfdCBjb3VudCA9IFNQRUNQRExfSU5ERVggKCk7 CiAgICAgICByZWNvcmRfdW53aW5kX3Byb3RlY3QgKGNhbGxfcHJvY2Vzc19raWxsLCBmZHBp ZCk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL2tleWJvYXJkLmMnCi0tLSBzcmMva2V5Ym9h cmQuYwkyMDEyLTExLTI3IDA1OjE3OjA3ICswMDAwCisrKyBzcmMva2V5Ym9hcmQuYwkyMDEy LTExLTI5IDIxOjMzOjUyICswMDAwCkBAIC0xMDY4OSw3ICsxMDY4OSw3IEBACiAgICAgICBm Zmx1c2ggKHN0ZG91dCk7CiAgICAgICByZXNldF9hbGxfc3lzX21vZGVzICgpOwogCi0jaWZk ZWYgU0lHVFNUUAkJCS8qIFN1cHBvcnQgcG9zc2libGUgaW4gbGF0ZXIgVVNHIHZlcnNpb25z ICovCisjaWZkZWYgU0lHVFNUUAogLyoKICAqIE9uIHN5c3RlbXMgd2hpY2ggY2FuIHN1c3Bl bmQgdGhlIGN1cnJlbnQgcHJvY2VzcyBhbmQgcmV0dXJuIHRvIHRoZSBvcmlnaW5hbAogICog c2hlbGwsIHRoaXMgY29tbWFuZCBjYXVzZXMgdGhlIHVzZXIgdG8gZW5kIHVwIGJhY2sgYXQg dGhlIHNoZWxsLgoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9wcm9jZXNzLmMnCi0tLSBzcmMv cHJvY2Vzcy5jCTIwMTItMTEtMjcgMDU6MTc6MDcgKzAwMDAKKysrIHNyYy9wcm9jZXNzLmMJ MjAxMi0xMS0yOSAyMTozMzo1MiArMDAwMApAQCAtNzczLDEzICs3NzMsMTEgQEAKIH0KIAog Ci0jaWZkZWYgU0lHQ0hMRAogLyogRmRlbGV0ZV9wcm9jZXNzIHByb21pc2VzIHRvIGltbWVk aWF0ZWx5IGZvcmdldCBhYm91dCB0aGUgcHJvY2VzcywgYnV0IGluCiAgICByZWFsaXR5LCBF bWFjcyBuZWVkcyB0byByZW1lbWJlciB0aG9zZSBwcm9jZXNzZXMgdW50aWwgdGhleSBoYXZl IGJlZW4KICAgIHRyZWF0ZWQgYnkgdGhlIFNJR0NITEQgaGFuZGxlciBhbmQgd2FpdHBpZCBo YXMgYmVlbiBpbnZva2VkIG9uIHRoZW07CiAgICBvdGhlcndpc2UgdGhleSBtaWdodCBmaWxs IHVwIHRoZSBrZXJuZWwncyBwcm9jZXNzIHRhYmxlLiAgKi8KIHN0YXRpYyBMaXNwX09iamVj dCBkZWxldGVkX3BpZF9saXN0OwotI2VuZGlmCiAKIERFRlVOICgiZGVsZXRlLXByb2Nlc3Mi LCBGZGVsZXRlX3Byb2Nlc3MsIFNkZWxldGVfcHJvY2VzcywgMSwgMSwgMCwKICAgICAgICBk b2M6IC8qIERlbGV0ZSBQUk9DRVNTOiBraWxsIGl0IGFuZCBmb3JnZXQgYWJvdXQgaXQgaW1t ZWRpYXRlbHkuCkBAIC04MDIsNyArODAwLDYgQEAKICAgICB9CiAgIGVsc2UgaWYgKHAtPmlu ZmQgPj0gMCkKICAgICB7Ci0jaWZkZWYgU0lHQ0hMRAogICAgICAgTGlzcF9PYmplY3Qgc3lt Ym9sOwogICAgICAgcGlkX3QgcGlkID0gcC0+cGlkOwogCkBAIC04MjAsNyArODE3LDYgQEAK IAlkZWxldGVkX3BpZF9saXN0CiAJICA9IEZkZWxldGUgKG1ha2VfZml4bnVtX29yX2Zsb2F0 IChwaWQpLCBkZWxldGVkX3BpZF9saXN0KTsKICAgICAgIGVsc2UKLSNlbmRpZgogCXsKIAkg IEZraWxsX3Byb2Nlc3MgKHByb2Nlc3MsIFFuaWwpOwogCSAgLyogRG8gdGhpcyBub3csIHNp bmNlIHJlbW92ZV9wcm9jZXNzIHdpbGwgbWFrZSB0aGUKQEAgLTE1NzgsOSArMTU3NCw3IEBA CiAjaWZuZGVmIFdJTkRPV1NOVAogICBpbnQgd2FpdF9jaGlsZF9zZXR1cFsyXTsKICNlbmRp ZgotI2lmZGVmIFNJR0NITEQKICAgc2lnc2V0X3QgYmxvY2tlZDsKLSNlbmRpZgogICAvKiBV c2Ugdm9sYXRpbGUgdG8gcHJvdGVjdCB2YXJpYWJsZXMgZnJvbSBiZWluZyBjbG9iYmVyZWQg YnkgdmZvcmsuICAqLwogICB2b2xhdGlsZSBpbnQgZm9ya2luLCBmb3Jrb3V0OwogICB2b2xh dGlsZSBpbnQgcHR5X2ZsYWcgPSAwOwpAQCAtMTY4MCwxMyArMTY3NCwxMSBAQAogCiAgIGJs b2NrX2lucHV0ICgpOwogCi0jaWZkZWYgU0lHQ0hMRAogICAvKiBCbG9jayBTSUdDSExEIHVu dGlsIHdlIGhhdmUgYSBjaGFuY2UgdG8gc3RvcmUgdGhlIG5ldyBmb3JrJ3MKICAgICAgcGlk IGluIGl0cyBwcm9jZXNzIHN0cnVjdHVyZS4gICovCiAgIHNpZ2VtcHR5c2V0ICgmYmxvY2tl ZCk7CiAgIHNpZ2FkZHNldCAoJmJsb2NrZWQsIFNJR0NITEQpOwogICBwdGhyZWFkX3NpZ21h c2sgKFNJR19CTE9DSywgJmJsb2NrZWQsIDApOwotI2VuZGlmCiAKICNpZiBIQVZFX1dPUktJ TkdfVkZPUksKICAgLyogY2hpbGRfc2V0dXAgbXVzdCBjbG9iYmVyIGVudmlyb24gb24gc3lz dGVtcyB3aXRoIHRydWUgdmZvcmsuCkBAIC0xODAwLDEwICsxNzkyLDggQEAKICAgICAgIC8q IEVtYWNzIGlnbm9yZXMgU0lHUElQRSwgYnV0IHRoZSBjaGlsZCBzaG91bGQgbm90LiAgKi8K ICAgICAgIHNpZ25hbCAoU0lHUElQRSwgU0lHX0RGTCk7CiAKLSNpZmRlZiBTSUdDSExECiAJ LyogU3RvcCBibG9ja2luZyBzaWduYWxzIGluIHRoZSBjaGlsZC4gICovCiAgICAgICBwdGhy ZWFkX3NpZ21hc2sgKFNJR19TRVRNQVNLLCAmZW1wdHlfbWFzaywgMCk7Ci0jZW5kaWYKIAog ICAgICAgaWYgKHB0eV9mbGFnKQogCWNoaWxkX3NldHVwX3R0eSAoeGZvcmtvdXQpOwpAQCAt MTgyOCw5ICsxODE4LDcgQEAKICAgICBYUFJPQ0VTUyAocHJvY2VzcyktPmFsaXZlID0gMTsK IAogICAvKiBTdG9wIGJsb2NraW5nIHNpZ25hbHMgaW4gdGhlIHBhcmVudC4gICovCi0jaWZk ZWYgU0lHQ0hMRAogICBwdGhyZWFkX3NpZ21hc2sgKFNJR19TRVRNQVNLLCAmZW1wdHlfbWFz aywgMCk7Ci0jZW5kaWYKICAgdW5ibG9ja19pbnB1dCAoKTsKIAogICBpZiAocGlkIDwgMCkK QEAgLTQ2MjIsNyArNDYxMCw3IEBACiAJCSB5aWVsZGluZyBFQkFERiBoZXJlIG9yIGF0IHNl bGVjdCgpIGNhbGwgYWJvdmUuCiAJCSBTbywgU0lHSFVQIGlzIGlnbm9yZWQgKHNlZSBkZWYg b2YgUFRZX1RUWV9OQU1FX1NQUklOVEYKIAkJIGluIG0vaWJtcnQtYWl4LmgpLCBhbmQgaGVy ZSB3ZSBqdXN0IGlnbm9yZSB0aGUgc2VsZWN0IGVycm9yLgotCQkgQ2xlYW51cCBvY2N1cnMg Yy9vIHN0YXR1c19ub3RpZnkgYWZ0ZXIgU0lHQ0xELiAqLworCQkgQ2xlYW51cCBvY2N1cnMg Yy9vIHN0YXR1c19ub3RpZnkgYWZ0ZXIgU0lHQ0hMRC4gKi8KIAkgICAgICBub19hdmFpbCA9 IDE7IC8qIENhbm5vdCBkZXBlbmQgb24gdmFsdWVzIHJldHVybmVkICovCiAjZWxzZQogCSAg ICAgIGVtYWNzX2Fib3J0ICgpOwpAQCAtNDgyMCwxMCArNDgwOCw4IEBACiAjZW5kaWYgLyog SEFWRV9QVFlTICovCiAJICAgICAgLyogSWYgd2UgY2FuIGRldGVjdCBwcm9jZXNzIHRlcm1p bmF0aW9uLCBkb24ndCBjb25zaWRlciB0aGUKIAkJIHByb2Nlc3MgZ29uZSBqdXN0IGJlY2F1 c2UgaXRzIHBpcGUgaXMgY2xvc2VkLiAgKi8KLSNpZmRlZiBTSUdDSExECiAJICAgICAgZWxz ZSBpZiAobnJlYWQgPT0gMCAmJiAhTkVUQ09OTl9QIChwcm9jKSAmJiAhU0VSSUFMQ09OTl9Q IChwcm9jKSkKIAkJOwotI2VuZGlmCiAJICAgICAgZWxzZQogCQl7CiAJCSAgLyogUHJlc2Vy dmUgc3RhdHVzIG9mIHByb2Nlc3NlcyBhbHJlYWR5IHRlcm1pbmF0ZWQuICAqLwpAQCAtNTY4 Niw3ICs1NjcyLDcgQEAKIAogICAgSWYgd2UgY2FuLCB3ZSB0cnkgdG8gc2lnbmFsIFBST0NF U1MgYnkgc2VuZGluZyBjb250cm9sIGNoYXJhY3RlcnMKICAgIGRvd24gdGhlIHB0eS4gIFRo aXMgYWxsb3dzIHVzIHRvIHNpZ25hbCBpbmZlcmlvcnMgd2hvIGhhdmUgY2hhbmdlZAotICAg dGhlaXIgdWlkLCBmb3Igd2hpY2gga2lsbHBnIHdvdWxkIHJldHVybiBhbiBFUEVSTSBlcnJv ci4gICovCisgICB0aGVpciB1aWQsIGZvciB3aGljaCBraWxsIHdvdWxkIHJldHVybiBhbiBF UEVSTSBlcnJvci4gICovCiAKIHN0YXRpYyB2b2lkCiBwcm9jZXNzX3NlbmRfc2lnbmFsIChM aXNwX09iamVjdCBwcm9jZXNzLCBpbnQgc2lnbm8sIExpc3BfT2JqZWN0IGN1cnJlbnRfZ3Jv dXAsCkBAIC01ODI0LDcgKzU4MTAsNyBAQAogICBpZiAoIU5JTFAgKGN1cnJlbnRfZ3JvdXAp KQogICAgIHsKICAgICAgIGlmIChpb2N0bCAocC0+aW5mZCwgVElPQ1NJR1NFTkQsIHNpZ25v KSA9PSAtMSkKLQlFTUFDU19LSUxMUEcgKGdpZCwgc2lnbm8pOworCWtpbGwgKC1naWQsIHNp Z25vKTsKICAgICB9CiAgIGVsc2UKICAgICB7CkBAIC01ODMyLDcgKzU4MTgsNyBAQAogICAg ICAga2lsbCAoZ2lkLCBzaWdubyk7CiAgICAgfQogI2Vsc2UgLyogISBkZWZpbmVkIChUSU9D U0lHU0VORCkgKi8KLSAgRU1BQ1NfS0lMTFBHIChnaWQsIHNpZ25vKTsKKyAga2lsbCAoLWdp ZCwgc2lnbm8pOwogI2VuZGlmIC8qICEgZGVmaW5lZCAoVElPQ1NJR1NFTkQpICovCiB9CiAK QEAgLTU5OTIsOCArNTk3OCw2IEBACiAgICAgICBpZiAoIXN0cm5jbXAgKG5hbWUsICJTSUci LCAzKSB8fCAhc3RybmNtcCAobmFtZSwgInNpZyIsIDMpKQogCW5hbWUgKz0gMzsKIAotICAg ICAgaWYgKDApCi0JOwogI2lmZGVmIFNJR1VTUjEKICAgICAgIHBhcnNlX3NpZ25hbCAoInVz cjEiLCBTSUdVU1IxKTsKICNlbmRpZgpAQCAtNjAwMSwyMSArNTk4NSwxNSBAQAogICAgICAg cGFyc2Vfc2lnbmFsICgidXNyMiIsIFNJR1VTUjIpOwogI2VuZGlmCiAgICAgICBwYXJzZV9z aWduYWwgKCJ0ZXJtIiwgU0lHVEVSTSk7Ci0jaWZkZWYgU0lHSFVQCiAgICAgICBwYXJzZV9z aWduYWwgKCJodXAiLCBTSUdIVVApOwotI2VuZGlmCiAgICAgICBwYXJzZV9zaWduYWwgKCJp bnQiLCBTSUdJTlQpOwotI2lmZGVmIFNJR1FVSVQKICAgICAgIHBhcnNlX3NpZ25hbCAoInF1 aXQiLCBTSUdRVUlUKTsKLSNlbmRpZgogICAgICAgcGFyc2Vfc2lnbmFsICgiaWxsIiwgU0lH SUxMKTsKICAgICAgIHBhcnNlX3NpZ25hbCAoImFicnQiLCBTSUdBQlJUKTsKICNpZmRlZiBT SUdFTVQKICAgICAgIHBhcnNlX3NpZ25hbCAoImVtdCIsIFNJR0VNVCk7CiAjZW5kaWYKLSNp ZmRlZiBTSUdLSUxMCiAgICAgICBwYXJzZV9zaWduYWwgKCJraWxsIiwgU0lHS0lMTCk7Ci0j ZW5kaWYKICAgICAgIHBhcnNlX3NpZ25hbCAoImZwZSIsIFNJR0ZQRSk7CiAjaWZkZWYgU0lH QlVTCiAgICAgICBwYXJzZV9zaWduYWwgKCJidXMiLCBTSUdCVVMpOwpAQCAtNjAyNCwxMiAr NjAwMiw4IEBACiAjaWZkZWYgU0lHU1lTCiAgICAgICBwYXJzZV9zaWduYWwgKCJzeXMiLCBT SUdTWVMpOwogI2VuZGlmCi0jaWZkZWYgU0lHUElQRQogICAgICAgcGFyc2Vfc2lnbmFsICgi cGlwZSIsIFNJR1BJUEUpOwotI2VuZGlmCi0jaWZkZWYgU0lHQUxSTQogICAgICAgcGFyc2Vf c2lnbmFsICgiYWxybSIsIFNJR0FMUk0pOwotI2VuZGlmCiAjaWZkZWYgU0lHVVJHCiAgICAg ICBwYXJzZV9zaWduYWwgKCJ1cmciLCBTSUdVUkcpOwogI2VuZGlmCkBAIC02MDQyLDkgKzYw MTYsNyBAQAogI2lmZGVmIFNJR0NPTlQKICAgICAgIHBhcnNlX3NpZ25hbCAoImNvbnQiLCBT SUdDT05UKTsKICNlbmRpZgotI2lmZGVmIFNJR0NITEQKICAgICAgIHBhcnNlX3NpZ25hbCAo ImNobGQiLCBTSUdDSExEKTsKLSNlbmRpZgogI2lmZGVmIFNJR1RUSU4KICAgICAgIHBhcnNl X3NpZ25hbCAoInR0aW4iLCBTSUdUVElOKTsKICNlbmRpZgpAQCAtNjIxNCw3ICs2MTg2LDYg QEAKIHZvaWQKIHJlY29yZF9jaGlsZF9zdGF0dXNfY2hhbmdlIChwaWRfdCBwaWQsIGludCB3 KQogewotI2lmZGVmIFNJR0NITEQKIAogICAvKiBSZWNvcmQgYXQgbW9zdCBvbmUgY2hpbGQg b25seSBpZiB3ZSBhbHJlYWR5IGtub3cgb25lIGNoaWxkIHRoYXQKICAgICAgaGFzIGV4aXRl ZC4gICovCkBAIC02MzAzLDExICs2Mjc0LDggQEAKICAgICAgIGlmIChpbnB1dF9hdmFpbGFi bGVfY2xlYXJfdGltZSkKIAkqaW5wdXRfYXZhaWxhYmxlX2NsZWFyX3RpbWUgPSBtYWtlX2Vt YWNzX3RpbWUgKDAsIDApOwogICAgIH0KLSNlbmRpZgogfQogCi0jaWZkZWYgU0lHQ0hMRAot CiBzdGF0aWMgdm9pZAogaGFuZGxlX2NoaWxkX3NpZ25hbCAoaW50IHNpZykKIHsKQEAgLTYz MTksOCArNjI4Nyw2IEBACiB7CiAgIGRlbGl2ZXJfcHJvY2Vzc19zaWduYWwgKHNpZywgaGFu ZGxlX2NoaWxkX3NpZ25hbCk7CiB9Ci0KLSNlbmRpZiAvKiBTSUdDSExEICovCiAMCiAKIHN0 YXRpYyBMaXNwX09iamVjdApAQCAtNzE2OSw3ICs3MTM1LDYgQEAKIAogICBpbmhpYml0X3Nl bnRpbmVscyA9IDA7CiAKLSNpZmRlZiBTSUdDSExECiAjaWZuZGVmIENBTk5PVF9EVU1QCiAg IGlmICghIG5vbmludGVyYWN0aXZlIHx8IGluaXRpYWxpemVkKQogI2VuZGlmCkBAIC03MTc4 LDcgKzcxNDMsNiBAQAogICAgICAgZW1hY3Nfc2lnYWN0aW9uX2luaXQgKCZhY3Rpb24sIGRl bGl2ZXJfY2hpbGRfc2lnbmFsKTsKICAgICAgIHNpZ2FjdGlvbiAoU0lHQ0hMRCwgJmFjdGlv biwgMCk7CiAgICAgfQotI2VuZGlmCiAKICAgRkRfWkVSTyAoJmlucHV0X3dhaXRfbWFzayk7 CiAgIEZEX1pFUk8gKCZub25fa2V5Ym9hcmRfd2FpdF9tYXNrKTsKQEAgLTcyMDUsOSArNzE2 OSw3IEBACiAjZW5kaWYKIAogICBWcHJvY2Vzc19hbGlzdCA9IFFuaWw7Ci0jaWZkZWYgU0lH Q0hMRAogICBkZWxldGVkX3BpZF9saXN0ID0gUW5pbDsKLSNlbmRpZgogICBmb3IgKGkgPSAw OyBpIDwgTUFYREVTQzsgaSsrKQogICAgIHsKICAgICAgIGNoYW5fcHJvY2Vzc1tpXSA9IFFu aWw7CkBAIC03MzM0LDkgKzcyOTYsNyBAQAogICBERUZTWU0gKFFsYXN0X25vbm1lbnVfZXZl bnQsICJsYXN0LW5vbm1lbnUtZXZlbnQiKTsKIAogICBzdGF0aWNwcm8gKCZWcHJvY2Vzc19h bGlzdCk7Ci0jaWZkZWYgU0lHQ0hMRAogICBzdGF0aWNwcm8gKCZkZWxldGVkX3BpZF9saXN0 KTsKLSNlbmRpZgogCiAjZW5kaWYJLyogc3VicHJvY2Vzc2VzICovCiAKCj09PSBtb2RpZmll ZCBmaWxlICdzcmMvc3lzZGVwLmMnCi0tLSBzcmMvc3lzZGVwLmMJMjAxMi0xMS0yNyAwMzox MDozMiArMDAwMAorKysgc3JjL3N5c2RlcC5jCTIwMTItMTEtMjkgMjE6MzM6NTIgKzAwMDAK QEAgLTQyOCwyMCArNDI4LDE1IEBACiB2b2lkCiBzeXNfc3VzcGVuZCAodm9pZCkKIHsKLSNp ZiBkZWZpbmVkIChTSUdUU1RQKSAmJiAhZGVmaW5lZCAoTVNET1MpCi0KLSAgewotICAgIHBp ZF90IHBncnAgPSBnZXRwZ3JwICgpOwotICAgIEVNQUNTX0tJTExQRyAocGdycCwgU0lHVFNU UCk7Ci0gIH0KLQotI2Vsc2UgLyogTm8gU0lHVFNUUCAqLworI2lmbmRlZiBET1NfTlQKKyAg a2lsbCAoMCwgU0lHVFNUUCk7CisjZWxzZQogLyogT24gYSBzeXN0ZW0gd2hlcmUgc3VzcGVu ZGluZyBpcyBub3QgaW1wbGVtZW50ZWQsCiAgICBpbnN0ZWFkIGZvcmsgYSBzdWJzaGVsbCBh bmQgbGV0IGl0IHRhbGsgZGlyZWN0bHkgdG8gdGhlIHRlcm1pbmFsCiAgICB3aGlsZSB3ZSB3 YWl0LiAgKi8KICAgc3lzX3N1YnNoZWxsICgpOwogCi0jZW5kaWYgLyogbm8gU0lHVFNUUCAq LworI2VuZGlmCiB9CiAKIC8qIEZvcmsgYSBzdWJzaGVsbC4gICovCkBAIC0xNDkxLDkgKzE0 ODYsNyBAQAogICAvKiBXaGVuIGhhbmRsaW5nIGEgc2lnbmFsLCBibG9jayBub25mYXRhbCBz eXN0ZW0gc2lnbmFscyB0aGF0IGFyZSBjYXVnaHQKICAgICAgYnkgRW1hY3MuICBUaGlzIG1h a2VzIHJhY2UgY29uZGl0aW9ucyBsZXNzIGxpa2VseS4gICovCiAgIHNpZ2FkZHNldCAoJmFj dGlvbi0+c2FfbWFzaywgU0lHQUxSTSk7Ci0jaWZkZWYgU0lHQ0hMRAogICBzaWdhZGRzZXQg KCZhY3Rpb24tPnNhX21hc2ssIFNJR0NITEQpOwotI2VuZGlmCiAjaWZkZWYgU0lHREFOR0VS CiAgIHNpZ2FkZHNldCAoJmFjdGlvbi0+c2FfbWFzaywgU0lHREFOR0VSKTsKICNlbmRpZgpA QCAtMTY3MywxOCArMTY2NiwxMSBAQAogIyBpZmRlZiBTSUdBSU8KICAgICAgIHN5c19zaWds aXN0W1NJR0FJT10gPSAiTEFOIEkvTyBpbnRlcnJ1cHQiOwogIyBlbmRpZgotIyBpZmRlZiBT SUdBTFJNCiAgICAgICBzeXNfc2lnbGlzdFtTSUdBTFJNXSA9ICJBbGFybSBjbG9jayI7Ci0j IGVuZGlmCiAjIGlmZGVmIFNJR0JVUwogICAgICAgc3lzX3NpZ2xpc3RbU0lHQlVTXSA9ICJC dXMgZXJyb3IiOwogIyBlbmRpZgotIyBpZmRlZiBTSUdDTEQKLSAgICAgIHN5c19zaWdsaXN0 W1NJR0NMRF0gPSAiQ2hpbGQgc3RhdHVzIGNoYW5nZWQiOwotIyBlbmRpZgotIyBpZmRlZiBT SUdDSExECiAgICAgICBzeXNfc2lnbGlzdFtTSUdDSExEXSA9ICJDaGlsZCBzdGF0dXMgY2hh bmdlZCI7Ci0jIGVuZGlmCiAjIGlmZGVmIFNJR0NPTlQKICAgICAgIHN5c19zaWdsaXN0W1NJ R0NPTlRdID0gIkNvbnRpbnVlZCI7CiAjIGVuZGlmCkBAIC0xNzA0LDkgKzE2OTAsNyBAQAog IyBpZmRlZiBTSUdHUkFOVAogICAgICAgc3lzX3NpZ2xpc3RbU0lHR1JBTlRdID0gIk1vbml0 b3IgbW9kZSBncmFudGVkIjsKICMgZW5kaWYKLSMgaWZkZWYgU0lHSFVQCiAgICAgICBzeXNf c2lnbGlzdFtTSUdIVVBdID0gIkhhbmd1cCI7Ci0jIGVuZGlmCiAgICAgICBzeXNfc2lnbGlz dFtTSUdJTExdID0gIklsbGVnYWwgaW5zdHJ1Y3Rpb24iOwogICAgICAgc3lzX3NpZ2xpc3Rb U0lHSU5UXSA9ICJJbnRlcnJ1cHQiOwogIyBpZmRlZiBTSUdJTwpAQCAtMTcxOCw5ICsxNzAy LDcgQEAKICMgaWZkZWYgU0lHSU9UCiAgICAgICBzeXNfc2lnbGlzdFtTSUdJT1RdID0gIklP VCB0cmFwIjsKICMgZW5kaWYKLSMgaWZkZWYgU0lHS0lMTAogICAgICAgc3lzX3NpZ2xpc3Rb U0lHS0lMTF0gPSAiS2lsbGVkIjsKLSMgZW5kaWYKICMgaWZkZWYgU0lHTE9TVAogICAgICAg c3lzX3NpZ2xpc3RbU0lHTE9TVF0gPSAiUmVzb3VyY2UgbG9zdCI7CiAjIGVuZGlmCkBAIC0x NzMzLDkgKzE3MTUsNyBAQAogIyBpZmRlZiBTSUdQSE9ORQogICAgICAgc3lzX3NpZ2xpc3Rb U0lHV0lORF0gPSAiU0lHUEhPTkUiOwogIyBlbmRpZgotIyBpZmRlZiBTSUdQSVBFCiAgICAg ICBzeXNfc2lnbGlzdFtTSUdQSVBFXSA9ICJCcm9rZW4gcGlwZSI7Ci0jIGVuZGlmCiAjIGlm ZGVmIFNJR1BPTEwKICAgICAgIHN5c19zaWdsaXN0W1NJR1BPTExdID0gIlBvbGxhYmxlIGV2 ZW50IG9jY3VycmVkIjsKICMgZW5kaWYKQEAgLTE3NDgsOSArMTcyOCw3IEBACiAjIGlmZGVm IFNJR1BXUgogICAgICAgc3lzX3NpZ2xpc3RbU0lHUFdSXSA9ICJQb3dlci1mYWlsIHJlc3Rh cnQiOwogIyBlbmRpZgotIyBpZmRlZiBTSUdRVUlUCiAgICAgICBzeXNfc2lnbGlzdFtTSUdR VUlUXSA9ICJRdWl0IjsKLSMgZW5kaWYKICMgaWZkZWYgU0lHUkVUUkFDVAogICAgICAgc3lz X3NpZ2xpc3RbU0lHUkVUUkFDVF0gPSAiTmVlZCB0byByZWxpbnF1aXNoIG1vbml0b3IgbW9k ZSI7CiAjIGVuZGlmCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL3N5c3NpZ25hbC5oJwotLS0g c3JjL3N5c3NpZ25hbC5oCTIwMTItMTAtMDcgMDI6MjY6MDMgKzAwMDAKKysrIHNyYy9zeXNz aWduYWwuaAkyMDEyLTExLTI5IDA2OjQ2OjM1ICswMDAwCkBAIC01NCwyNiArNTQsNiBAQAog IyBkZWZpbmUgZW1hY3NfcmFpc2Uoc2lnKSByYWlzZSAoc2lnKQogI2VuZGlmCiAKLS8qIE9u IGJzZCwgW21hbiBzYXlzXSBraWxsIGRvZXMgbm90IGFjY2VwdCBhIG5lZ2F0aXZlIG51bWJl ciB0byBraWxsIGEgcGdycC4KLSAgIE11c3QgZG8gdGhhdCB1c2luZyB0aGUga2lsbHBnIGNh bGwuICAqLwotI2lmZGVmIEJTRF9TWVNURU0KLSNkZWZpbmUgRU1BQ1NfS0lMTFBHKGdpZCwg c2lnbm8pIChraWxscGcgKCAoZ2lkKSwgKHNpZ25vKSkpCi0jZWxzZQotI2lmZGVmIFdJTkRP V1NOVAotI2RlZmluZSBFTUFDU19LSUxMUEcoZ2lkLCBzaWdubykgKGtpbGwgKGdpZCwgc2ln bm8pKQotI2Vsc2UKLSNkZWZpbmUgRU1BQ1NfS0lMTFBHKGdpZCwgc2lnbm8pIChraWxsICAg KC0oZ2lkKSwgKHNpZ25vKSkpCi0jZW5kaWYKLSNlbmRpZgotCi0vKiBEZWZpbmUgU0lHQ0hM RCBhcyBhbiBhbGlhcyBmb3IgU0lHQ0xELiAgVGhlcmUgYXJlIG1hbnkgY29uZGl0aW9uYWxz Ci0gICB0ZXN0aW5nIFNJR0NITEQuICAqLwotI2lmZGVmIFNJR0NMRAotI2lmbmRlZiBTSUdD SExECi0jZGVmaW5lIFNJR0NITEQgU0lHQ0xECi0jZW5kaWYgLyogU0lHQ0hMRCAqLwotI2Vu ZGlmIC8qICEgZGVmaW5lZCAoU0lHQ0xEKSAqLwotCiAjaWZuZGVmIEhBVkVfU1RSU0lHTkFM CiAjIGRlZmluZSBzdHJzaWduYWwoc2lnKSBzYWZlX3N0cnNpZ25hbCAoc2lnKQogI2VuZGlm Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL3czMnByb2MuYycKLS0tIHNyYy93MzJwcm9jLmMJ MjAxMi0xMS0yNyAwMzoxMDozMiArMDAwMAorKysgc3JjL3czMnByb2MuYwkyMDEyLTExLTI5 IDA2OjQ2OjM1ICswMDAwCkBAIC0yMTM5LDYgKzIxMzksMTAgQEAKICAgaW50IG5lZWRfdG9f ZnJlZSA9IDA7CiAgIGludCByYyA9IDA7CiAKKyAgLyogRWFjaCBwcm9jZXNzIGlzIGluIGl0 cyBvd24gcHJvY2VzcyBncm91cC4gICovCisgIGlmIChwaWQgPCAwKQorICAgIHBpZCA9IC1w aWQ7CisKICAgLyogT25seSBoYW5kbGUgc2lnbmFscyB0aGF0IHdpbGwgcmVzdWx0IGluIHRo ZSBwcm9jZXNzIGR5aW5nICovCiAgIGlmIChzaWcgIT0gU0lHSU5UICYmIHNpZyAhPSBTSUdL SUxMICYmIHNpZyAhPSBTSUdRVUlUICYmIHNpZyAhPSBTSUdIVVApCiAgICAgewoK --------------080305050905000104080306-- From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 30 03:56:33 2012 Received: (at 13026) by debbugs.gnu.org; 30 Nov 2012 08:56:33 +0000 Received: from localhost ([127.0.0.1]:46175 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TeMOf-0005En-Ht for submit@debbugs.gnu.org; Fri, 30 Nov 2012 03:56:33 -0500 Received: from mtaout20.012.net.il ([80.179.55.166]:40772) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TeMOd-0005Eg-Pv for 13026@debbugs.gnu.org; Fri, 30 Nov 2012 03:56:33 -0500 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0MEA00F00M1VK300@a-mtaout20.012.net.il> for 13026@debbugs.gnu.org; Fri, 30 Nov 2012 10:54:26 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MEA00FIWM2P42A0@a-mtaout20.012.net.il>; Fri, 30 Nov 2012 10:54:26 +0200 (IST) Date: Fri, 30 Nov 2012 10:54:11 +0200 From: Eli Zaretskii Subject: Re: bug#13026: Assume POSIX 1003.1-1988 or later for signal.h. In-reply-to: <50B7D5BC.5060606@cs.ucla.edu> X-012-Sender: halo1@inter.net.il To: Paul Eggert Message-id: <83ehjbv5cc.fsf@gnu.org> References: <50B7062F.1010901@cs.ucla.edu> <83sj7suxdn.fsf@gnu.org> <50B7D5BC.5060606@cs.ucla.edu> X-Spam-Score: 1.5 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > Date: Thu, 29 Nov 2012 13:38:04 -0800 > From: Paul Eggert > CC: 13026@debbugs.gnu.org > > > This will break the Windows build in more than one way, unless > > accompanied by suitable Windows-only changes. Is this the entire > > changeset, or did you omit some more changes? > > That was the entire changeset. I didn't know about the problems > on MS-Windows. I trimmed down the patch, to avoid the issues you > raised, and am attaching a proposed revised patch. Thanks for > the review. [...] Content analysis details: (1.5 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [80.179.55.166 listed in list.dnswl.org] 0.7 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% [score: 0.4995] X-Debbugs-Envelope-To: 13026 Cc: 13026@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: 0.7 (/) > Date: Thu, 29 Nov 2012 13:38:04 -0800 > From: Paul Eggert > CC: 13026@debbugs.gnu.org > > > This will break the Windows build in more than one way, unless > > accompanied by suitable Windows-only changes. Is this the entire > > changeset, or did you omit some more changes? > > That was the entire changeset. I didn't know about the problems > on MS-Windows. I trimmed down the patch, to avoid the issues you > raised, and am attaching a proposed revised patch. Thanks for > the review. Thanks, this looks fine, except for this part: > @@ -5992,8 +5978,6 @@ > if (!strncmp (name, "SIG", 3) || !strncmp (name, "sig", 3)) > name += 3; > > - if (0) > - ; > #ifdef SIGUSR1 > parse_signal ("usr1", SIGUSR1); > #endif The expansion of parse_signal starts with "else if", so it looks like removing that ugly "if (0)" will break something like M-: (signal-process 'SIGINT) RET because the unrelated 'if' before it will then be used to do nothing useful with such signal specs. Maybe a better fix there would be to have an array of data (name and value of each signal), and loop through it, instead of using if-elseif. By the way, an alternative way of dealing with the lack of Posix signals on Windows is to condition the related fragments on WINDOWSNT, and remove the "#ifdef SIGFOO" conditions for Posix signals. That would tell more clearly why the code is being excluded, I think. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 02 20:34:04 2012 Received: (at 13026) by debbugs.gnu.org; 3 Dec 2012 01:34:04 +0000 Received: from localhost ([127.0.0.1]:50607 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TfKv3-0003d8-N4 for submit@debbugs.gnu.org; Sun, 02 Dec 2012 20:34:04 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:53374) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TfKuy-0003cx-By for 13026@debbugs.gnu.org; Sun, 02 Dec 2012 20:34:00 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 51D1839E8106; Sun, 2 Dec 2012 17:31:36 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id j1ftYoZbWObL; Sun, 2 Dec 2012 17:31:34 -0800 (PST) Received: from [192.168.1.3] (pool-71-189-154-249.lsanca.fios.verizon.net [71.189.154.249]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 3538C39E8008; Sun, 2 Dec 2012 17:31:34 -0800 (PST) Message-ID: <50BC0104.3070303@cs.ucla.edu> Date: Sun, 02 Dec 2012 17:31:48 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#13026: Assume POSIX 1003.1-1988 or later for signal.h. References: <50B7062F.1010901@cs.ucla.edu> <83sj7suxdn.fsf@gnu.org> <50B7D5BC.5060606@cs.ucla.edu> <83ehjbv5cc.fsf@gnu.org> In-Reply-To: <83ehjbv5cc.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------070501050002050304000305" X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: 13026 Cc: 13026@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.2 (----) This is a multi-part message in MIME format. --------------070501050002050304000305 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 11/30/2012 12:54 AM, Eli Zaretskii wrote: > Maybe a better fix there would be to > have an array of data (name and value of each signal), and loop > through it, instead of using if-elseif. Sure, that's easy enough. Gnulib already has a module to do that. Revised patch attached (most of the new stuff is just code copied from Gnulib). As a bonus, this fixes signal-process to handle several signal names that it currently doesn't support, such as those of the real-time signals. > By the way, an alternative way of dealing with the lack of Posix > signals on Windows is to condition the related fragments on WINDOWSNT, > and remove the "#ifdef SIGFOO" conditions for Posix signals. I'd rather use the Autoconf style, which is to test for individual features rather than test for operating systems, as that tends to make maintenance easier when operating systems or the emulations mutate. --------------070501050002050304000305 Content-Type: text/plain; charset=UTF-8; name="signal.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="signal.txt" PT09IG1vZGlmaWVkIGZpbGUgJ0NoYW5nZUxvZycKLS0tIENoYW5nZUxvZwkyMDEyLTExLTMw IDE4OjI1OjU5ICswMDAwCisrKyBDaGFuZ2VMb2cJMjAxMi0xMi0wMyAwMToyNDoyNSArMDAw MApAQCAtMSwzICsxLDExIEBACisyMDEyLTEyLTAzICBQYXVsIEVnZ2VydCAgPGVnZ2VydEBj cy51Y2xhLmVkdT4KKworCUFzc3VtZSBQT1NJWCAxMDAzLjEtMTk4OCBvciBsYXRlciBmb3Ig c2lnbmFsLmggKEJ1ZyMxMzAyNikuCisJKiBjb25maWd1cmUuYWMgKFBUWV9PUEVOLCBQVFlf VFRZX05BTUVfU1BSSU5URik6CisJVXNlIFNJR0NITEQgcmF0aGVyIHRoYW4gU0lHQ0xELgor CSogbGliL3NpZzJzdHIuYywgbGliL3NpZzJzdHIuaCwgbTQvc2lnMnN0ci5tNDogTmV3IGZp bGVzLCBmcm9tIGdudWxpYi4KKwkqIGxpYi9nbnVsaWIubWssIG00L2dudWxpYi1jb21wLm00 OiBSZWdlbmVyYXRlLgorCiAyMDEyLTExLTMwICBQYXVsIEVnZ2VydCAgPGVnZ2VydEBjcy51 Y2xhLmVkdT4KIAogCU1lcmdlIGZyb20gZ251bGliIGZvciAnaW5saW5lJyAoQnVnIzEzMDQw KSwgaW5jb3Jwb3JhdGluZzoKCj09PSBtb2RpZmllZCBmaWxlICdhZG1pbi9DUFAtREVGSU5F UycKLS0tIGFkbWluL0NQUC1ERUZJTkVTCTIwMTItMTEtMjQgMTc6MjA6NDkgKzAwMDAKKysr IGFkbWluL0NQUC1ERUZJTkVTCTIwMTItMTEtMjkgMDY6NDY6MzUgKzAwMDAKQEAgLTQxOSwx NCArNDE5LDcgQEAKIFBVUkVTSVpFCiBSVU5fVElNRV9SRU1BUAogU0VUVVBfU0xBVkVfUFRZ Ci1TSUdBTFJNCi1TSUdDSExECi1TSUdIVVAKLVNJR0tJTEwKIFNJR05BTFNfVklBX0NIQVJB Q1RFUlMKLVNJR1BJUEUKLVNJR1FVSVQKLVNJR1RSQVAKIFNURENfSEVBREVSUwogU1lTVEVN X1BVUkVTSVpFX0VYVFJBCiBTWVNURU1fTUFMTE9DCgo9PT0gbW9kaWZpZWQgZmlsZSAnYWRt aW4vQ2hhbmdlTG9nJwotLS0gYWRtaW4vQ2hhbmdlTG9nCTIwMTItMTEtMjQgMTc6MjA6NDkg KzAwMDAKKysrIGFkbWluL0NoYW5nZUxvZwkyMDEyLTEyLTAzIDAxOjI0OjI1ICswMDAwCkBA IC0xLDMgKzEsMTEgQEAKKzIwMTItMTItMDMgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVj bGEuZWR1PgorCisJQXNzdW1lIFBPU0lYIDEwMDMuMS0xOTg4IG9yIGxhdGVyIGZvciBzaWdu YWwuaCAoQnVnIzEzMDI2KS4KKwkqIENQUC1ERUZJTkVTIChTSUdBTFJNLCBTSUdDSExELCBT SUdIVVAsIFNJR0tJTEwsIFNJR1BJUEUsIFNJR1FVSVQpOgorCVJlbW92ZS4KKwkoU0lHVFJB UCk6IFJlbW92ZSB0aGlzIG9uZSB0b28sIGFzIGNvbmZpZy5oIG5vIGxvbmdlciBkZWZpbmVz IGl0LgorCSogbWVyZ2UtZ251bGliIChHTlVMSUJfTU9EVUxFUyk6IEFkZCBzaWcyc3RyLgor CiAyMDEyLTExLTI0ICBLZW4gQnJvd24gIDxrYnJvd25AY29ybmVsbC5lZHU+CiAKIAkqIENQ UC1ERUZJTkVTIChIQVZFX01PVVNFKTogUmVtb3ZlLgoKPT09IG1vZGlmaWVkIGZpbGUgJ2Fk bWluL21lcmdlLWdudWxpYicKLS0tIGFkbWluL21lcmdlLWdudWxpYgkyMDEyLTExLTE3IDIy OjEyOjQ3ICswMDAwCisrKyBhZG1pbi9tZXJnZS1nbnVsaWIJMjAxMi0xMi0wMyAwMToyNDoy NSArMDAwMApAQCAtMzIsNyArMzIsNyBAQAogICBmY250bC1oIGZpbGVtb2RlIGdldGxvYWRh dmcgZ2V0b3B0LWdudSBnZXR0aW1lIGdldHRpbWVvZmRheQogICBpZ25vcmUtdmFsdWUgaW50 cHJvcHMgbGFyZ2VmaWxlIGxzdGF0CiAgIG1hbnl3YXJuaW5ncyBta3RpbWUgcHNlbGVjdCBw dGhyZWFkX3NpZ21hc2sgcmVhZGxpbmsKLSAgc29ja2xlbiBzdGF0LXRpbWUgc3RkYWxpZ24g c3RkYXJnIHN0ZGJvb2wgc3RkaW8KKyAgc2lnMnN0ciBzb2NrbGVuIHN0YXQtdGltZSBzdGRh bGlnbiBzdGRhcmcgc3RkYm9vbCBzdGRpbwogICBzdHJmdGltZSBzdHJ0b2ltYXggc3RydG91 bWF4IHN5bWxpbmsgc3lzX3N0YXQKICAgc3lzX3RpbWUgdGltZSB0aW1lci10aW1lIHRpbWVz cGVjLWFkZCB0aW1lc3BlYy1zdWIgdXRpbWVucwogICB3YXJuaW5ncwoKPT09IG1vZGlmaWVk IGZpbGUgJ2NvbmZpZ3VyZS5hYycKLS0tIGNvbmZpZ3VyZS5hYwkyMDEyLTExLTI3IDAzOjEw OjMyICswMDAwCisrKyBjb25maWd1cmUuYWMJMjAxMi0xMS0yOSAwNjo0NjozNSArMDAwMApA QCAtMzYwMCw3ICszNjAwLDcgQEAKICAgICBBQ19ERUZJTkUoUFRZX0lURVJBVElPTiwgW10p CiAgICAgZG5sIE5vdCB1c2VkLCBiZWNhdXNlIFBUWV9JVEVSQVRJT04gaXMgZGVmaW5lZC4K ICAgICBBQ19ERUZJTkUoRklSU1RfUFRZX0xFVFRFUiwgWydxJ10pCi0gICAgQUNfREVGSU5F KFBUWV9PUEVOLCBbIHsgc3RydWN0IHNpZ2FjdGlvbiBvY3N0YXQsIGNzdGF0OyBzdHJ1Y3Qg c3RhdCBzdGI7IGNoYXIgKiBuYW1lOyBzaWdlbXB0eXNldCgmY3N0YXQuc2FfbWFzayk7IGNz dGF0LnNhX2hhbmRsZXIgPSBTSUdfREZMOyBjc3RhdC5zYV9mbGFncyA9IDA7IHNpZ2FjdGlv bihTSUdDTEQsICZjc3RhdCwgJm9jc3RhdCk7IG5hbWUgPSBfZ2V0cHR5ICgmZmQsIE9fUkRX UiB8IE9fTkRFTEFZLCAwNjAwLCAwKTsgc2lnYWN0aW9uKFNJR0NMRCwgJm9jc3RhdCwgKHN0 cnVjdCBzaWdhY3Rpb24gKikwKTsgaWYgKG5hbWUgPT0gMCkgcmV0dXJuIC0xOyBpZiAoZmQg PCAwKSByZXR1cm4gLTE7IGlmIChmc3RhdCAoZmQsICZzdGIpIDwgMCkgcmV0dXJuIC0xOyBz dHJjcHkgKHB0eV9uYW1lLCBuYW1lKTsgfV0pCisgICAgQUNfREVGSU5FKFBUWV9PUEVOLCBb IHsgc3RydWN0IHNpZ2FjdGlvbiBvY3N0YXQsIGNzdGF0OyBzdHJ1Y3Qgc3RhdCBzdGI7IGNo YXIgKiBuYW1lOyBzaWdlbXB0eXNldCgmY3N0YXQuc2FfbWFzayk7IGNzdGF0LnNhX2hhbmRs ZXIgPSBTSUdfREZMOyBjc3RhdC5zYV9mbGFncyA9IDA7IHNpZ2FjdGlvbihTSUdDSExELCAm Y3N0YXQsICZvY3N0YXQpOyBuYW1lID0gX2dldHB0eSAoJmZkLCBPX1JEV1IgfCBPX05ERUxB WSwgMDYwMCwgMCk7IHNpZ2FjdGlvbihTSUdDSExELCAmb2NzdGF0LCAoc3RydWN0IHNpZ2Fj dGlvbiAqKTApOyBpZiAobmFtZSA9PSAwKSByZXR1cm4gLTE7IGlmIChmZCA8IDApIHJldHVy biAtMTsgaWYgKGZzdGF0IChmZCwgJnN0YikgPCAwKSByZXR1cm4gLTE7IHN0cmNweSAocHR5 X25hbWUsIG5hbWUpOyB9XSkKICAgICBkbmwgTm8gbmVlZCB0byBnZXQgdGhlIHB0eSBuYW1l IGF0IGFsbC4KICAgICBBQ19ERUZJTkUoUFRZX05BTUVfU1BSSU5URiwgW10pCiAgICAgZG5s IE5vIG5lZWQgdG8gdXNlIHNwcmludGYgdG8gZ2V0IHRoZSB0dHkgbmFtZS0td2UgZ2V0IHRo YXQgZnJvbSBfZ2V0cHR5LgpAQCAtMzYxMSwxMiArMzYxMSwxMiBAQAogICAgIGRubCBPbiBT eXNWcjQsIGdyYW50cHQoMykgZm9ya3MgYSBzdWJwcm9jZXNzLCBzbyBrZWVwIHNpZ2NobGRf aGFuZGxlcigpCiAgICAgZG5sIGZyb20gaW50ZXJjZXB0aW5nIHRoYXQgZGVhdGguICBJZiBh bnkgY2hpbGQgYnV0IGdyYW50cHQncyBzaG91bGQgZGllCiAgICAgZG5sIHdpdGhpbiwgaXQg c2hvdWxkIGJlIGNhdWdodCBhZnRlciBzaWdyZWxzZSgyKS4KLSAgICBBQ19ERUZJTkUoUFRZ X1RUWV9OQU1FX1NQUklOVEYsIFt7IGNoYXIgKnB0c25hbWUgKGludCksICpwdHluYW1lOyBp bnQgZ3JhbnRwdF9yZXN1bHQ7IHNpZ3NldF90IGJsb2NrZWQ7IHNpZ2VtcHR5c2V0ICgmYmxv Y2tlZCk7IHNpZ2FkZHNldCAoJmJsb2NrZWQsIFNJR0NMRCk7IHB0aHJlYWRfc2lnbWFzayAo U0lHX0JMT0NLLCAmYmxvY2tlZCwgMCk7IGdyYW50cHRfcmVzdWx0ID0gZ3JhbnRwdCAoZmQp OyBwdGhyZWFkX3NpZ21hc2sgKFNJR19VTkJMT0NLLCAmYmxvY2tlZCwgMCk7IGlmIChncmFu dHB0X3Jlc3VsdCA9PSAtMSB8fCB1bmxvY2twdCAoZmQpID09IC0xIHx8ICEocHR5bmFtZSA9 IHB0c25hbWUgKGZkKSkpIHsgZW1hY3NfY2xvc2UgKGZkKTsgcmV0dXJuIC0xOyB9IHNucHJp bnRmIChwdHlfbmFtZSwgc2l6ZW9mIHB0eV9uYW1lLCAiJXMiLCBwdHluYW1lKTsgfV0pCisg ICAgQUNfREVGSU5FKFBUWV9UVFlfTkFNRV9TUFJJTlRGLCBbeyBjaGFyICpwdHNuYW1lIChp bnQpLCAqcHR5bmFtZTsgaW50IGdyYW50cHRfcmVzdWx0OyBzaWdzZXRfdCBibG9ja2VkOyBz aWdlbXB0eXNldCAoJmJsb2NrZWQpOyBzaWdhZGRzZXQgKCZibG9ja2VkLCBTSUdDSExEKTsg cHRocmVhZF9zaWdtYXNrIChTSUdfQkxPQ0ssICZibG9ja2VkLCAwKTsgZ3JhbnRwdF9yZXN1 bHQgPSBncmFudHB0IChmZCk7IHB0aHJlYWRfc2lnbWFzayAoU0lHX1VOQkxPQ0ssICZibG9j a2VkLCAwKTsgaWYgKGdyYW50cHRfcmVzdWx0ID09IC0xIHx8IHVubG9ja3B0IChmZCkgPT0g LTEgfHwgIShwdHluYW1lID0gcHRzbmFtZSAoZmQpKSkgeyBlbWFjc19jbG9zZSAoZmQpOyBy ZXR1cm4gLTE7IH0gc25wcmludGYgKHB0eV9uYW1lLCBzaXplb2YgcHR5X25hbWUsICIlcyIs IHB0eW5hbWUpOyB9XSkKICAgICA7OwogCiAgIHVuaXh3YXJlICkKICAgICBkbmwgQ29tbWVu dHMgYXJlIGFzIHBlciBzb2wyKi4KLSAgICBBQ19ERUZJTkUoUFRZX1RUWV9OQU1FX1NQUklO VEYsIFt7IGNoYXIgKnB0c25hbWUgKGludCksICpwdHluYW1lOyBpbnQgZ3JhbnRwdF9yZXN1 bHQ7IHNpZ3NldF90IGJsb2NrZWQ7IHNpZ2VtcHR5c2V0ICgmYmxvY2tlZCk7IHNpZ2FkZHNl dCAoJmJsb2NrZWQsIFNJR0NMRCk7IHB0aHJlYWRfc2lnbWFzayAoU0lHX0JMT0NLLCAmYmxv Y2tlZCwgMCk7IGdyYW50cHRfcmVzdWx0ID0gZ3JhbnRwdCAoZmQpOyBwdGhyZWFkX3NpZ21h c2sgKFNJR19VTkJMT0NLLCAmYmxvY2tlZCwgMCk7IGlmIChncmFudHB0X3Jlc3VsdCA9PSAt MSkgZmF0YWwoImNvdWxkIG5vdCBncmFudCBzbGF2ZSBwdHkiKTsgaWYgKHVubG9ja3B0KGZk KSA9PSAtMSkgZmF0YWwoImNvdWxkIG5vdCB1bmxvY2sgc2xhdmUgcHR5Iik7IGlmICghKHB0 eW5hbWUgPSBwdHNuYW1lKGZkKSkpIGZhdGFsICgiY291bGQgbm90IGVuYWJsZSBzbGF2ZSBw dHkiKTsgc25wcmludGYgKHB0eV9uYW1lLCBzaXplb2YgcHR5X25hbWUsICIlcyIsIHB0eW5h bWUpOyB9XSkKKyAgICBBQ19ERUZJTkUoUFRZX1RUWV9OQU1FX1NQUklOVEYsIFt7IGNoYXIg KnB0c25hbWUgKGludCksICpwdHluYW1lOyBpbnQgZ3JhbnRwdF9yZXN1bHQ7IHNpZ3NldF90 IGJsb2NrZWQ7IHNpZ2VtcHR5c2V0ICgmYmxvY2tlZCk7IHNpZ2FkZHNldCAoJmJsb2NrZWQs IFNJR0NITEQpOyBwdGhyZWFkX3NpZ21hc2sgKFNJR19CTE9DSywgJmJsb2NrZWQsIDApOyBn cmFudHB0X3Jlc3VsdCA9IGdyYW50cHQgKGZkKTsgcHRocmVhZF9zaWdtYXNrIChTSUdfVU5C TE9DSywgJmJsb2NrZWQsIDApOyBpZiAoZ3JhbnRwdF9yZXN1bHQgPT0gLTEpIGZhdGFsKCJj b3VsZCBub3QgZ3JhbnQgc2xhdmUgcHR5Iik7IGlmICh1bmxvY2twdChmZCkgPT0gLTEpIGZh dGFsKCJjb3VsZCBub3QgdW5sb2NrIHNsYXZlIHB0eSIpOyBpZiAoIShwdHluYW1lID0gcHRz bmFtZShmZCkpKSBmYXRhbCAoImNvdWxkIG5vdCBlbmFibGUgc2xhdmUgcHR5Iik7IHNucHJp bnRmIChwdHlfbmFtZSwgc2l6ZW9mIHB0eV9uYW1lLCAiJXMiLCBwdHluYW1lKTsgfV0pCiAg ICAgOzsKIGVzYWMKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ2xpYi9nbnVsaWIubWsnCi0tLSBs aWIvZ251bGliLm1rCTIwMTItMTEtMzAgMTg6MjU6NTkgKzAwMDAKKysrIGxpYi9nbnVsaWIu bWsJMjAxMi0xMi0wMyAwMToyNDoyNSArMDAwMApAQCAtMjEsNyArMjEsNyBAQAogIyB0aGUg c2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgog IwogIyBHZW5lcmF0ZWQgYnkgZ251bGliLXRvb2wuCi0jIFJlcHJvZHVjZSBieTogZ251bGli LXRvb2wgLS1pbXBvcnQgLS1kaXI9LiAtLWxpYj1saWJnbnUgLS1zb3VyY2UtYmFzZT1saWIg LS1tNC1iYXNlPW00IC0tZG9jLWJhc2U9ZG9jIC0tdGVzdHMtYmFzZT10ZXN0cyAtLWF1eC1k aXI9YnVpbGQtYXV4IC0tYXZvaWQ9YXQtaW50ZXJuYWwgLS1hdm9pZD1lcnJubyAtLWF2b2lk PWZjaGRpciAtLWF2b2lkPWZjbnRsIC0tYXZvaWQ9ZnN0YXQgLS1hdm9pZD1tYWxsb2MtcG9z aXggLS1hdm9pZD1tc3ZjLWludmFsIC0tYXZvaWQ9bXN2Yy1ub3Rocm93IC0tYXZvaWQ9b3Bl bmF0LWRpZSAtLWF2b2lkPW9wZW5hdC1oIC0tYXZvaWQ9cmFpc2UgLS1hdm9pZD1zYXZlLWN3 ZCAtLWF2b2lkPXNlbGVjdCAtLWF2b2lkPXNpZ3Byb2NtYXNrIC0tYXZvaWQ9c3lzX3R5cGVz IC0tYXZvaWQ9dGhyZWFkbGliIC0tbWFrZWZpbGUtbmFtZT1nbnVsaWIubWsgLS1jb25kaXRp b25hbC1kZXBlbmRlbmNpZXMgLS1uby1saWJ0b29sIC0tbWFjcm8tcHJlZml4PWdsIC0tbm8t dmMtZmlsZXMgYWxsb2NhLW9wdCBjLWN0eXBlIGMtc3RyY2FzZSBjYXJlYWRsaW5rYXQgY2xv c2Utc3RyZWFtIGNyeXB0by9tZDUgY3J5cHRvL3NoYTEgY3J5cHRvL3NoYTI1NiBjcnlwdG8v c2hhNTEyIGR0b2FzdHIgZHRvdGltZXNwZWMgZHVwMiBlbnZpcm9uIGV4ZWNpbmZvIGZhY2Nl c3NhdCBmY250bC1oIGZpbGVtb2RlIGdldGxvYWRhdmcgZ2V0b3B0LWdudSBnZXR0aW1lIGdl dHRpbWVvZmRheSBpZ25vcmUtdmFsdWUgaW50cHJvcHMgbGFyZ2VmaWxlIGxzdGF0IG1hbnl3 YXJuaW5ncyBta3RpbWUgcHNlbGVjdCBwdGhyZWFkX3NpZ21hc2sgcmVhZGxpbmsgc29ja2xl biBzdGF0LXRpbWUgc3RkYWxpZ24gc3RkYXJnIHN0ZGJvb2wgc3RkaW8gc3RyZnRpbWUgc3Ry dG9pbWF4IHN0cnRvdW1heCBzeW1saW5rIHN5c19zdGF0IHN5c190aW1lIHRpbWUgdGltZXIt dGltZSB0aW1lc3BlYy1hZGQgdGltZXNwZWMtc3ViIHV0aW1lbnMgd2FybmluZ3MKKyMgUmVw cm9kdWNlIGJ5OiBnbnVsaWItdG9vbCAtLWltcG9ydCAtLWRpcj0uIC0tbGliPWxpYmdudSAt LXNvdXJjZS1iYXNlPWxpYiAtLW00LWJhc2U9bTQgLS1kb2MtYmFzZT1kb2MgLS10ZXN0cy1i YXNlPXRlc3RzIC0tYXV4LWRpcj1idWlsZC1hdXggLS1hdm9pZD1hdC1pbnRlcm5hbCAtLWF2 b2lkPWVycm5vIC0tYXZvaWQ9ZmNoZGlyIC0tYXZvaWQ9ZmNudGwgLS1hdm9pZD1mc3RhdCAt LWF2b2lkPW1hbGxvYy1wb3NpeCAtLWF2b2lkPW1zdmMtaW52YWwgLS1hdm9pZD1tc3ZjLW5v dGhyb3cgLS1hdm9pZD1vcGVuYXQtZGllIC0tYXZvaWQ9b3BlbmF0LWggLS1hdm9pZD1yYWlz ZSAtLWF2b2lkPXNhdmUtY3dkIC0tYXZvaWQ9c2VsZWN0IC0tYXZvaWQ9c2lncHJvY21hc2sg LS1hdm9pZD1zeXNfdHlwZXMgLS1hdm9pZD10aHJlYWRsaWIgLS1tYWtlZmlsZS1uYW1lPWdu dWxpYi5tayAtLWNvbmRpdGlvbmFsLWRlcGVuZGVuY2llcyAtLW5vLWxpYnRvb2wgLS1tYWNy by1wcmVmaXg9Z2wgLS1uby12Yy1maWxlcyBhbGxvY2Etb3B0IGMtY3R5cGUgYy1zdHJjYXNl IGNhcmVhZGxpbmthdCBjbG9zZS1zdHJlYW0gY3J5cHRvL21kNSBjcnlwdG8vc2hhMSBjcnlw dG8vc2hhMjU2IGNyeXB0by9zaGE1MTIgZHRvYXN0ciBkdG90aW1lc3BlYyBkdXAyIGVudmly b24gZXhlY2luZm8gZmFjY2Vzc2F0IGZjbnRsLWggZmlsZW1vZGUgZ2V0bG9hZGF2ZyBnZXRv cHQtZ251IGdldHRpbWUgZ2V0dGltZW9mZGF5IGlnbm9yZS12YWx1ZSBpbnRwcm9wcyBsYXJn ZWZpbGUgbHN0YXQgbWFueXdhcm5pbmdzIG1rdGltZSBwc2VsZWN0IHB0aHJlYWRfc2lnbWFz ayByZWFkbGluayBzaWcyc3RyIHNvY2tsZW4gc3RhdC10aW1lIHN0ZGFsaWduIHN0ZGFyZyBz dGRib29sIHN0ZGlvIHN0cmZ0aW1lIHN0cnRvaW1heCBzdHJ0b3VtYXggc3ltbGluayBzeXNf c3RhdCBzeXNfdGltZSB0aW1lIHRpbWVyLXRpbWUgdGltZXNwZWMtYWRkIHRpbWVzcGVjLXN1 YiB1dGltZW5zIHdhcm5pbmdzCiAKIAogTU9TVExZQ0xFQU5GSUxFUyArPSBjb3JlICouc3Rh Y2tkdW1wCkBAIC00NTcsNiArNDU3LDE1IEBACiAKICMjIGVuZCAgIGdudWxpYiBtb2R1bGUg cm9vdC11aWQKIAorIyMgYmVnaW4gZ251bGliIG1vZHVsZSBzaWcyc3RyCisKKworRVhUUkFf RElTVCArPSBzaWcyc3RyLmMgc2lnMnN0ci5oCisKK0VYVFJBX2xpYmdudV9hX1NPVVJDRVMg Kz0gc2lnMnN0ci5jCisKKyMjIGVuZCAgIGdudWxpYiBtb2R1bGUgc2lnMnN0cgorCiAjIyBi ZWdpbiBnbnVsaWIgbW9kdWxlIHNpZ25hbC1oCiAKIEJVSUxUX1NPVVJDRVMgKz0gc2lnbmFs LmgKCj09PSBhZGRlZCBmaWxlICdsaWIvc2lnMnN0ci5jJwotLS0gbGliL3NpZzJzdHIuYwkx OTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBsaWIvc2lnMnN0ci5jCTIwMTItMTItMDMg MDE6MjQ6MjUgKzAwMDAKQEAgLTAsMCArMSwzNDUgQEAKKy8qIHNpZzJzdHIuYyAtLSBjb252 ZXJ0IGJldHdlZW4gc2lnbmFsIG5hbWVzIGFuZCBudW1iZXJzCisKKyAgIENvcHlyaWdodCAo QykgMjAwMiwgMjAwNCwgMjAwNiwgMjAwOS0yMDEyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg ICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworCisvKiBXcml0dGVuIGJ5IFBhdWwgRWdnZXJ0LiAgKi8K KworI2luY2x1ZGUgPGNvbmZpZy5oPgorCisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVk ZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4K KyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgInNpZzJzdHIuaCIKKworI2lmbmRl ZiBTSUdSVE1JTgorIyBkZWZpbmUgU0lHUlRNSU4gMAorIyB1bmRlZiBTSUdSVE1BWAorI2Vu ZGlmCisjaWZuZGVmIFNJR1JUTUFYCisjIGRlZmluZSBTSUdSVE1BWCAoU0lHUlRNSU4gLSAx KQorI2VuZGlmCisKKyNkZWZpbmUgTlVNTkFNRShuYW1lKSB7IFNJRyMjbmFtZSwgI25hbWUg fQorCisvKiBTaWduYWwgbmFtZXMgYW5kIG51bWJlcnMuICBQdXQgdGhlIHByZWZlcnJlZCBu YW1lIGZpcnN0LiAgKi8KK3N0YXRpYyBzdHJ1Y3QgbnVtbmFtZSB7IGludCBudW07IGNoYXIg Y29uc3QgbmFtZVs4XTsgfSBudW1uYW1lX3RhYmxlW10gPQorICB7CisgICAgLyogU2lnbmFs cyByZXF1aXJlZCBieSBQT1NJWCAxMDAzLjEtMjAwMSBiYXNlLCBsaXN0ZWQgaW4KKyAgICAg ICB0cmFkaXRpb25hbCBudW1lcmljIG9yZGVyIHdoZXJlIHBvc3NpYmxlLiAgKi8KKyNpZmRl ZiBTSUdIVVAKKyAgICBOVU1OQU1FIChIVVApLAorI2VuZGlmCisjaWZkZWYgU0lHSU5UCisg ICAgTlVNTkFNRSAoSU5UKSwKKyNlbmRpZgorI2lmZGVmIFNJR1FVSVQKKyAgICBOVU1OQU1F IChRVUlUKSwKKyNlbmRpZgorI2lmZGVmIFNJR0lMTAorICAgIE5VTU5BTUUgKElMTCksCisj ZW5kaWYKKyNpZmRlZiBTSUdUUkFQCisgICAgTlVNTkFNRSAoVFJBUCksCisjZW5kaWYKKyNp ZmRlZiBTSUdBQlJUCisgICAgTlVNTkFNRSAoQUJSVCksCisjZW5kaWYKKyNpZmRlZiBTSUdG UEUKKyAgICBOVU1OQU1FIChGUEUpLAorI2VuZGlmCisjaWZkZWYgU0lHS0lMTAorICAgIE5V TU5BTUUgKEtJTEwpLAorI2VuZGlmCisjaWZkZWYgU0lHU0VHVgorICAgIE5VTU5BTUUgKFNF R1YpLAorI2VuZGlmCisgICAgLyogT24gSGFpa3UsIFNJR1NFR1YgPT0gU0lHQlVTLCBidXQg d2UgcHJlZmVyIFNJR1NFR1YgdG8gbWF0Y2gKKyAgICAgICBzdHJzaWduYWwuYyBvdXRwdXQs IHNvIFNJR0JVUyBtdXN0IGJlIGxpc3RlZCBzZWNvbmQuICAqLworI2lmZGVmIFNJR0JVUwor ICAgIE5VTU5BTUUgKEJVUyksCisjZW5kaWYKKyNpZmRlZiBTSUdQSVBFCisgICAgTlVNTkFN RSAoUElQRSksCisjZW5kaWYKKyNpZmRlZiBTSUdBTFJNCisgICAgTlVNTkFNRSAoQUxSTSks CisjZW5kaWYKKyNpZmRlZiBTSUdURVJNCisgICAgTlVNTkFNRSAoVEVSTSksCisjZW5kaWYK KyNpZmRlZiBTSUdVU1IxCisgICAgTlVNTkFNRSAoVVNSMSksCisjZW5kaWYKKyNpZmRlZiBT SUdVU1IyCisgICAgTlVNTkFNRSAoVVNSMiksCisjZW5kaWYKKyNpZmRlZiBTSUdDSExECisg ICAgTlVNTkFNRSAoQ0hMRCksCisjZW5kaWYKKyNpZmRlZiBTSUdVUkcKKyAgICBOVU1OQU1F IChVUkcpLAorI2VuZGlmCisjaWZkZWYgU0lHU1RPUAorICAgIE5VTU5BTUUgKFNUT1ApLAor I2VuZGlmCisjaWZkZWYgU0lHVFNUUAorICAgIE5VTU5BTUUgKFRTVFApLAorI2VuZGlmCisj aWZkZWYgU0lHQ09OVAorICAgIE5VTU5BTUUgKENPTlQpLAorI2VuZGlmCisjaWZkZWYgU0lH VFRJTgorICAgIE5VTU5BTUUgKFRUSU4pLAorI2VuZGlmCisjaWZkZWYgU0lHVFRPVQorICAg IE5VTU5BTUUgKFRUT1UpLAorI2VuZGlmCisKKyAgICAvKiBTaWduYWxzIHJlcXVpcmVkIGJ5 IFBPU0lYIDEwMDMuMS0yMDAxIHdpdGggdGhlIFhTSSBleHRlbnNpb24uICAqLworI2lmZGVm IFNJR1NZUworICAgIE5VTU5BTUUgKFNZUyksCisjZW5kaWYKKyNpZmRlZiBTSUdQT0xMCisg ICAgTlVNTkFNRSAoUE9MTCksCisjZW5kaWYKKyNpZmRlZiBTSUdWVEFMUk0KKyAgICBOVU1O QU1FIChWVEFMUk0pLAorI2VuZGlmCisjaWZkZWYgU0lHUFJPRgorICAgIE5VTU5BTUUgKFBS T0YpLAorI2VuZGlmCisjaWZkZWYgU0lHWENQVQorICAgIE5VTU5BTUUgKFhDUFUpLAorI2Vu ZGlmCisjaWZkZWYgU0lHWEZTWgorICAgIE5VTU5BTUUgKFhGU1opLAorI2VuZGlmCisKKyAg ICAvKiBVbml4IFZlcnNpb24gNy4gICovCisjaWZkZWYgU0lHSU9UCisgICAgTlVNTkFNRSAo SU9UKSwgICAgICAvKiBPbGRlciBuYW1lIGZvciBBQlJULiAgKi8KKyNlbmRpZgorI2lmZGVm IFNJR0VNVAorICAgIE5VTU5BTUUgKEVNVCksCisjZW5kaWYKKworICAgIC8qIFVTRyBVbml4 LiAgKi8KKyNpZmRlZiBTSUdQSE9ORQorICAgIE5VTU5BTUUgKFBIT05FKSwKKyNlbmRpZgor I2lmZGVmIFNJR1dJTkQKKyAgICBOVU1OQU1FIChXSU5EKSwKKyNlbmRpZgorCisgICAgLyog VW5peCBTeXN0ZW0gVi4gICovCisjaWZkZWYgU0lHQ0xECisgICAgTlVNTkFNRSAoQ0xEKSwK KyNlbmRpZgorI2lmZGVmIFNJR1BXUgorICAgIE5VTU5BTUUgKFBXUiksCisjZW5kaWYKKwor ICAgIC8qIEdOVS9MaW51eCAyLjIgYW5kIFNvbGFyaXMgOC4gICovCisjaWZkZWYgU0lHQ0FO Q0VMCisgICAgTlVNTkFNRSAoQ0FOQ0VMKSwKKyNlbmRpZgorI2lmZGVmIFNJR0xXUAorICAg IE5VTU5BTUUgKExXUCksCisjZW5kaWYKKyNpZmRlZiBTSUdXQUlUSU5HCisgICAgTlVNTkFN RSAoV0FJVElORyksCisjZW5kaWYKKyNpZmRlZiBTSUdGUkVFWkUKKyAgICBOVU1OQU1FIChG UkVFWkUpLAorI2VuZGlmCisjaWZkZWYgU0lHVEhBVworICAgIE5VTU5BTUUgKFRIQVcpLAor I2VuZGlmCisjaWZkZWYgU0lHTE9TVAorICAgIE5VTU5BTUUgKExPU1QpLAorI2VuZGlmCisj aWZkZWYgU0lHV0lOQ0gKKyAgICBOVU1OQU1FIChXSU5DSCksCisjZW5kaWYKKworICAgIC8q IEdOVS9MaW51eCAyLjIuICAqLworI2lmZGVmIFNJR0lORk8KKyAgICBOVU1OQU1FIChJTkZP KSwKKyNlbmRpZgorI2lmZGVmIFNJR0lPCisgICAgTlVNTkFNRSAoSU8pLAorI2VuZGlmCisj aWZkZWYgU0lHU1RLRkxUCisgICAgTlVNTkFNRSAoU1RLRkxUKSwKKyNlbmRpZgorCisgICAg LyogQUlYIDVMLiAgKi8KKyNpZmRlZiBTSUdEQU5HRVIKKyAgICBOVU1OQU1FIChEQU5HRVIp LAorI2VuZGlmCisjaWZkZWYgU0lHR1JBTlQKKyAgICBOVU1OQU1FIChHUkFOVCksCisjZW5k aWYKKyNpZmRlZiBTSUdNSUdSQVRFCisgICAgTlVNTkFNRSAoTUlHUkFURSksCisjZW5kaWYK KyNpZmRlZiBTSUdNU0cKKyAgICBOVU1OQU1FIChNU0cpLAorI2VuZGlmCisjaWZkZWYgU0lH UFJFCisgICAgTlVNTkFNRSAoUFJFKSwKKyNlbmRpZgorI2lmZGVmIFNJR1JFVFJBQ1QKKyAg ICBOVU1OQU1FIChSRVRSQUNUKSwKKyNlbmRpZgorI2lmZGVmIFNJR1NBSworICAgIE5VTU5B TUUgKFNBSyksCisjZW5kaWYKKyNpZmRlZiBTSUdTT1VORAorICAgIE5VTU5BTUUgKFNPVU5E KSwKKyNlbmRpZgorCisgICAgLyogT2xkZXIgQUlYIHZlcnNpb25zLiAgKi8KKyNpZmRlZiBT SUdBTFJNMQorICAgIE5VTU5BTUUgKEFMUk0xKSwgICAgLyogdW5rbm93bjsgdGFrZW4gZnJv bSBCYXNoIDIuMDUgKi8KKyNlbmRpZgorI2lmZGVmIFNJR0tBUAorICAgIE5VTU5BTUUgKEtB UCksICAgICAgLyogT2xkZXIgbmFtZSBmb3IgU0lHR1JBTlQuICAqLworI2VuZGlmCisjaWZk ZWYgU0lHVklSVAorICAgIE5VTU5BTUUgKFZJUlQpLCAgICAgLyogdW5rbm93bjsgdGFrZW4g ZnJvbSBCYXNoIDIuMDUgKi8KKyNlbmRpZgorI2lmZGVmIFNJR1dJTkRPVworICAgIE5VTU5B TUUgKFdJTkRPVyksICAgLyogT2xkZXIgbmFtZSBmb3IgU0lHV0lOQ0guICAqLworI2VuZGlm CisKKyAgICAvKiBCZU9TICovCisjaWZkZWYgU0lHS0lMTFRIUgorICAgIE5VTU5BTUUgKEtJ TExUSFIpLAorI2VuZGlmCisKKyAgICAvKiBPbGRlciBIUC1VWCB2ZXJzaW9ucy4gICovCisj aWZkZWYgU0lHRElMCisgICAgTlVNTkFNRSAoRElMKSwKKyNlbmRpZgorCisgICAgLyogS29y biBzaGVsbCBhbmQgQmFzaCwgb2YgdW5jZXJ0YWluIHZpbnRhZ2UuICAqLworICAgIHsgMCwg IkVYSVQiIH0KKyAgfTsKKworI2RlZmluZSBOVU1OQU1FX0VOVFJJRVMgKHNpemVvZiBudW1u YW1lX3RhYmxlIC8gc2l6ZW9mIG51bW5hbWVfdGFibGVbMF0pCisKKy8qIElTRElHSVQgZGlm ZmVycyBmcm9tIGlzZGlnaXQsIGFzIGZvbGxvd3M6CisgICAtIEl0cyBhcmcgbWF5IGJlIGFu eSBpbnQgb3IgdW5zaWduZWQgaW50OyBpdCBuZWVkIG5vdCBiZSBhbiB1bnNpZ25lZCBjaGFy CisgICAgIG9yIEVPRi4KKyAgIC0gSXQncyB0eXBpY2FsbHkgZmFzdGVyLgorICAgUE9TSVgg c2F5cyB0aGF0IG9ubHkgJzAnIHRocm91Z2ggJzknIGFyZSBkaWdpdHMuICBQcmVmZXIgSVNE SUdJVCB0bworICAgaXNkaWdpdCB1bmxlc3MgaXQncyBpbXBvcnRhbnQgdG8gdXNlIHRoZSBs b2NhbGUncyBkZWZpbml0aW9uCisgICBvZiAiZGlnaXQiIGV2ZW4gd2hlbiB0aGUgaG9zdCBk b2VzIG5vdCBjb25mb3JtIHRvIFBPU0lYLiAgKi8KKyNkZWZpbmUgSVNESUdJVChjKSAoKHVu c2lnbmVkIGludCkgKGMpIC0gJzAnIDw9IDkpCisKKy8qIENvbnZlcnQgdGhlIHNpZ25hbCBu YW1lIFNJR05BTUUgdG8gYSBzaWduYWwgbnVtYmVyLiAgUmV0dXJuIHRoZQorICAgc2lnbmFs IG51bWJlciBpZiBzdWNjZXNzZnVsLCAtMSBvdGhlcndpc2UuICAqLworCitzdGF0aWMgaW50 CitzdHIyc2lnbnVtIChjaGFyIGNvbnN0ICpzaWduYW1lKQoreworICBpZiAoSVNESUdJVCAo KnNpZ25hbWUpKQorICAgIHsKKyAgICAgIGNoYXIgKmVuZHA7CisgICAgICBsb25nIGludCBu ID0gc3RydG9sIChzaWduYW1lLCAmZW5kcCwgMTApOworICAgICAgaWYgKCEgKmVuZHAgJiYg biA8PSBTSUdOVU1fQk9VTkQpCisgICAgICAgIHJldHVybiBuOworICAgIH0KKyAgZWxzZQor ICAgIHsKKyAgICAgIHVuc2lnbmVkIGludCBpOworICAgICAgZm9yIChpID0gMDsgaSA8IE5V TU5BTUVfRU5UUklFUzsgaSsrKQorICAgICAgICBpZiAoc3RyY21wIChudW1uYW1lX3RhYmxl W2ldLm5hbWUsIHNpZ25hbWUpID09IDApCisgICAgICAgICAgcmV0dXJuIG51bW5hbWVfdGFi bGVbaV0ubnVtOworCisgICAgICB7CisgICAgICAgIGNoYXIgKmVuZHA7CisgICAgICAgIGlu dCBydG1pbiA9IFNJR1JUTUlOOworICAgICAgICBpbnQgcnRtYXggPSBTSUdSVE1BWDsKKwor ICAgICAgICBpZiAoMCA8IHJ0bWluICYmIHN0cm5jbXAgKHNpZ25hbWUsICJSVE1JTiIsIDUp ID09IDApCisgICAgICAgICAgeworICAgICAgICAgICAgbG9uZyBpbnQgbiA9IHN0cnRvbCAo c2lnbmFtZSArIDUsICZlbmRwLCAxMCk7CisgICAgICAgICAgICBpZiAoISAqZW5kcCAmJiAw IDw9IG4gJiYgbiA8PSBydG1heCAtIHJ0bWluKQorICAgICAgICAgICAgICByZXR1cm4gcnRt aW4gKyBuOworICAgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoMCA8IHJ0bWF4ICYmIHN0 cm5jbXAgKHNpZ25hbWUsICJSVE1BWCIsIDUpID09IDApCisgICAgICAgICAgeworICAgICAg ICAgICAgbG9uZyBpbnQgbiA9IHN0cnRvbCAoc2lnbmFtZSArIDUsICZlbmRwLCAxMCk7Cisg ICAgICAgICAgICBpZiAoISAqZW5kcCAmJiBydG1pbiAtIHJ0bWF4IDw9IG4gJiYgbiA8PSAw KQorICAgICAgICAgICAgICByZXR1cm4gcnRtYXggKyBuOworICAgICAgICAgIH0KKyAgICAg IH0KKyAgICB9CisKKyAgcmV0dXJuIC0xOworfQorCisvKiBDb252ZXJ0IHRoZSBzaWduYWwg bmFtZSBTSUdOQU1FIHRvIHRoZSBzaWduYWwgbnVtYmVyICpTSUdOVU0uCisgICBSZXR1cm4g MCBpZiBzdWNjZXNzZnVsLCAtMSBvdGhlcndpc2UuICAqLworCitpbnQKK3N0cjJzaWcgKGNo YXIgY29uc3QgKnNpZ25hbWUsIGludCAqc2lnbnVtKQoreworICAqc2lnbnVtID0gc3RyMnNp Z251bSAoc2lnbmFtZSk7CisgIHJldHVybiAqc2lnbnVtIDwgMCA/IC0xIDogMDsKK30KKwor LyogQ29udmVydCBTSUdOVU0gdG8gYSBzaWduYWwgbmFtZSBpbiBTSUdOQU1FLiAgU0lHTkFN RSBtdXN0IHBvaW50IHRvCisgICBhIGJ1ZmZlciBvZiBhdCBsZWFzdCBTSUcyU1RSX01BWCBi eXRlcy4gIFJldHVybiAwIGlmIHN1Y2Nlc3NmdWwsIC0xCisgICBvdGhlcndpc2UuICAqLwor CitpbnQKK3NpZzJzdHIgKGludCBzaWdudW0sIGNoYXIgKnNpZ25hbWUpCit7CisgIHVuc2ln bmVkIGludCBpOworICBmb3IgKGkgPSAwOyBpIDwgTlVNTkFNRV9FTlRSSUVTOyBpKyspCisg ICAgaWYgKG51bW5hbWVfdGFibGVbaV0ubnVtID09IHNpZ251bSkKKyAgICAgIHsKKyAgICAg ICAgc3RyY3B5IChzaWduYW1lLCBudW1uYW1lX3RhYmxlW2ldLm5hbWUpOworICAgICAgICBy ZXR1cm4gMDsKKyAgICAgIH0KKworICB7CisgICAgaW50IHJ0bWluID0gU0lHUlRNSU47Cisg ICAgaW50IHJ0bWF4ID0gU0lHUlRNQVg7CisKKyAgICBpZiAoISAocnRtaW4gPD0gc2lnbnVt ICYmIHNpZ251bSA8PSBydG1heCkpCisgICAgICByZXR1cm4gLTE7CisKKyAgICBpZiAoc2ln bnVtIDw9IHJ0bWluICsgKHJ0bWF4IC0gcnRtaW4pIC8gMikKKyAgICAgIHsKKyAgICAgICAg aW50IGRlbHRhID0gc2lnbnVtIC0gcnRtaW47CisgICAgICAgIHNwcmludGYgKHNpZ25hbWUs IGRlbHRhID8gIlJUTUlOKyVkIiA6ICJSVE1JTiIsIGRlbHRhKTsKKyAgICAgIH0KKyAgICBl bHNlCisgICAgICB7CisgICAgICAgIGludCBkZWx0YSA9IHJ0bWF4IC0gc2lnbnVtOworICAg ICAgICBzcHJpbnRmIChzaWduYW1lLCBkZWx0YSA/ICJSVE1BWC0lZCIgOiAiUlRNQVgiLCBk ZWx0YSk7CisgICAgICB9CisKKyAgICByZXR1cm4gMDsKKyAgfQorfQoKPT09IGFkZGVkIGZp bGUgJ2xpYi9zaWcyc3RyLmgnCi0tLSBsaWIvc2lnMnN0ci5oCTE5NzAtMDEtMDEgMDA6MDA6 MDAgKzAwMDAKKysrIGxpYi9zaWcyc3RyLmgJMjAxMi0xMi0wMyAwMToyNDoyNSArMDAwMApA QCAtMCwwICsxLDQzIEBACisvKiBzaWcyc3RyLmggLS0gY29udmVydCBiZXR3ZWVuIHNpZ25h bCBuYW1lcyBhbmQgbnVtYmVycworCisgICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIw MDktMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKwor LyogV3JpdHRlbiBieSBQYXVsIEVnZ2VydC4gICovCisKKyNpbmNsdWRlIDxzaWduYWwuaD4K KworLyogRG9uJ3Qgb3ZlcnJpZGUgc3lzdGVtIGRlY2xhcmF0aW9ucyBvZiBTSUcyU1RSX01B WCwgc2lnMnN0ciwgc3RyMnNpZy4gICovCisjaWZuZGVmIFNJRzJTVFJfTUFYCisKKyMgaW5j bHVkZSAiaW50cHJvcHMuaCIKKworLyogU2l6ZSBvZiBhIGJ1ZmZlciBuZWVkZWQgdG8gaG9s ZCBhIHNpZ25hbCBuYW1lIGxpa2UgIkhVUCIuICAqLworIyBkZWZpbmUgU0lHMlNUUl9NQVgg KHNpemVvZiAiU0lHUlRNQVgiICsgSU5UX1NUUkxFTl9CT1VORCAoaW50KSAtIDEpCisKK2lu dCBzaWcyc3RyIChpbnQsIGNoYXIgKik7CitpbnQgc3RyMnNpZyAoY2hhciBjb25zdCAqLCBp bnQgKik7CisKKyNlbmRpZgorCisvKiBBbiB1cHBlciBib3VuZCBvbiBzaWduYWwgbnVtYmVy cyBhbGxvd2VkIGJ5IHRoZSBzeXN0ZW0uICAqLworCisjaWYgZGVmaW5lZCBfc3lzX25zaWcK KyMgZGVmaW5lIFNJR05VTV9CT1VORCAoX3N5c19uc2lnIC0gMSkKKyNlbGlmIGRlZmluZWQg TlNJRworIyBkZWZpbmUgU0lHTlVNX0JPVU5EIChOU0lHIC0gMSkKKyNlbHNlCisjIGRlZmlu ZSBTSUdOVU1fQk9VTkQgNjQKKyNlbmRpZgoKPT09IG1vZGlmaWVkIGZpbGUgJ200L2dudWxp Yi1jb21wLm00JwotLS0gbTQvZ251bGliLWNvbXAubTQJMjAxMi0xMS0zMCAxODoyNTo1OSAr MDAwMAorKysgbTQvZ251bGliLWNvbXAubTQJMjAxMi0xMi0wMyAwMToyNDoyNSArMDAwMApA QCAtODcsNiArODcsNyBAQAogICAjIENvZGUgZnJvbSBtb2R1bGUgcHRocmVhZF9zaWdtYXNr OgogICAjIENvZGUgZnJvbSBtb2R1bGUgcmVhZGxpbms6CiAgICMgQ29kZSBmcm9tIG1vZHVs ZSByb290LXVpZDoKKyAgIyBDb2RlIGZyb20gbW9kdWxlIHNpZzJzdHI6CiAgICMgQ29kZSBm cm9tIG1vZHVsZSBzaWduYWwtaDoKICAgIyBDb2RlIGZyb20gbW9kdWxlIHNuaXBwZXQvX05v cmV0dXJuOgogICAjIENvZGUgZnJvbSBtb2R1bGUgc25pcHBldC9hcmctbm9ubnVsbDoKQEAg LTI0NSw2ICsyNDYsMTEgQEAKICAgICBnbF9QUkVSRVFfUkVBRExJTksKICAgZmkKICAgZ2xf VU5JU1REX01PRFVMRV9JTkRJQ0FUT1IoW3JlYWRsaW5rXSkKKyAgZ2xfRlVOQ19TSUcyU1RS CisgIGlmIHRlc3QgJGFjX2N2X2Z1bmNfc2lnMnN0ciA9IG5vOyB0aGVuCisgICAgQUNfTElC T0JKKFtzaWcyc3RyXSkKKyAgICBnbF9QUkVSRVFfU0lHMlNUUgorICBmaQogICBnbF9TSUdO QUxfSAogICBnbF9UWVBFX1NPQ0tMRU5fVAogICBndF9UWVBFX1NTSVpFX1QKQEAgLTY4MSw2 ICs2ODcsOCBAQAogICBsaWIvc2hhMjU2LmgKICAgbGliL3NoYTUxMi5jCiAgIGxpYi9zaGE1 MTIuaAorICBsaWIvc2lnMnN0ci5jCisgIGxpYi9zaWcyc3RyLmgKICAgbGliL3NpZ25hbC5p bi5oCiAgIGxpYi9zdGF0LXRpbWUuYwogICBsaWIvc3RhdC10aW1lLmgKQEAgLTc2MCw2ICs3 NjgsNyBAQAogICBtNC9zaGExLm00CiAgIG00L3NoYTI1Ni5tNAogICBtNC9zaGE1MTIubTQK KyAgbTQvc2lnMnN0ci5tNAogICBtNC9zaWduYWxfaC5tNAogICBtNC9zb2NrbGVuLm00CiAg IG00L3NzaXplX3QubTQKCj09PSBhZGRlZCBmaWxlICdtNC9zaWcyc3RyLm00JwotLS0gbTQv c2lnMnN0ci5tNAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBtNC9zaWcyc3RyLm00 CTIwMTItMTItMDMgMDE6MjQ6MjUgKzAwMDAKQEAgLTAsMCArMSwxNSBAQAorIyBzZXJpYWwg NworZG5sIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNS0yMDA2LCAyMDA5LTIwMTIgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdh cmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KK2RubCBnaXZlcyB1bmxpbWl0ZWQg cGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorZG5sIHdpdGggb3Ig d2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KKworQUNfREVGVU4oW2dsX0ZVTkNfU0lHMlNUUl0sCitbCisgIEFDX0NIRUNLX0ZV TkNTKFtzaWcyc3RyXSkKK10pCisKKyMgUHJlcmVxdWlzaXRlcyBvZiBsaWIvc2lnMnN0ci5j LgorQUNfREVGVU4oW2dsX1BSRVJFUV9TSUcyU1RSXSwgWworICA6CitdKQoKPT09IG1vZGlm aWVkIGZpbGUgJ3NyYy9DaGFuZ2VMb2cnCi0tLSBzcmMvQ2hhbmdlTG9nCTIwMTItMTItMDMg MDE6MDg6MzEgKzAwMDAKKysrIHNyYy9DaGFuZ2VMb2cJMjAxMi0xMi0wMyAwMToyNDoyNSAr MDAwMApAQCAtMSwzICsxLDI2IEBACisyMDEyLTEyLTAzICBQYXVsIEVnZ2VydCAgPGVnZ2Vy dEBjcy51Y2xhLmVkdT4KKworCUFzc3VtZSBQT1NJWCAxMDAzLjEtMTk4OCBvciBsYXRlciBm b3Igc2lnbmFsLmggKEJ1ZyMxMzAyNikuCisJRXhjZXB0aW9uczogZG8gbm90IGFzc3VtZSBT SUdDT05ULCBTSUdTVE9QLCBTSUdUU1RQLCBTSUdUVElOLAorCVNJR1RUT1UsIFNJR1VTUjEs IFNJR1VTUjIsIGFzIE1pY3Jvc29mdCBwbGF0Zm9ybXMgbGFjayB0aGVzZS4KKwkqIHByb2Nl c3MuYyAoZGVsZXRlZF9waWRfbGlzdCwgRmRlbGV0ZV9wcm9jZXNzLCBjcmVhdGVfcHJvY2Vz cykKKwkocmVjb3JkX2NoaWxkX3N0YXR1c19jaGFuZ2UsIGhhbmRsZV9jaGlsZF9zaWduYWws IGRlbGl2ZXJfY2hpbGRfc2lnbmFsKQorCShpbml0X3Byb2Nlc3NfZW1hY3MsIHN5bXNfb2Zf cHJvY2Vzcyk6CisJQXNzdW1lIFNJR0NITEQgaXMgZGVmaW5lZC4KKwkocGFyc2Vfc2lnbmFs KTogUmVtb3ZlLiAgQWxsIHVzZXMgcmVtb3ZlZC4KKwkoRnNpZ25hbF9wcm9jZXNzKTogVXNl IGFiYnJfdG9fc2lnbmFsIHRvIGNvbnZlcnQgc2lnbmFsIG5hbWVzIHRvIGludHMuCisJKiBz eXNkZXAuYzogSW5jbHVkZSA8c2lnMnN0ci5oPi4KKwkoc3lzX3N1c3BlbmQpIFshRE9TX05U XTogVXNlIGtpbGwgKDAsIC4uLikgcmF0aGVyIHRoYW4KKwlraWxsIChnZXRwZ3JwICgpLCAu Li4pLgorCShlbWFjc19zaWdhY3Rpb25faW5pdCk6IEFzc3VtZSBTSUdDSExEIGlzIGRlZmlu ZWQuCisJKGFiYnJfdG9fc2lnbmFsKTogTmV3IGZ1bmN0aW9uLgorCShpbml0X3NpZ25hbHMp OiBBc3N1bWUgU0lHQUxSTSwgU0lHQ0hMRCwgU0lHSFVQLCBTSUdLSUxMLAorCVNJR1BJUEUs IGFuZCBTSUdRVUlUIGFyZSBkZWZpbmVkLiAgRG8gbm90IHdvcnJ5IGFib3V0IFNJR0NMRCBh bnkgbW9yZS4KKwkqIHN5c3NpZ25hbC5oIChhYmJyX3RvX3NpZ25hbCk6IE5ldyBkZWNsLgor CShFTUFDU19LSUxMUEcpOiBSZW1vdmUuICBBbGwgdXNlcyByZXBsYWNlZCBieSAna2lsbCcg d2l0aCBhIG5lZ2F0aXZlIHBpZC4KKwkoU0lHQ0hMRCk6IFJlbW92ZSBkZWZpbml0aW9uLCBh cyB3ZSBub3cgYXNzdW1lIFNJR0NITEQuCisJKiB3MzJwcm9jLmMgKHN5c19raWxsKTogU3Vw cG9ydCBuZWdhdGl2ZSBwaWRzIGNvbXBhdGlibHkgd2l0aCBQT1NJWC4KKwogMjAxMi0xMi0w MyAgQ2hvbmcgWWlkb25nICA8Y3lkQGdudS5vcmc+CiAKIAkqIGZpbGVpby5jIChWYXV0b19z YXZlX2xpc3RfZmlsZV9uYW1lKTogRG9jIGZpeC4KCj09PSBtb2RpZmllZCBmaWxlICdzcmMv Y2FsbHByb2MuYycKLS0tIHNyYy9jYWxscHJvYy5jCTIwMTItMTItMDIgMTk6MTY6NDUgKzAw MDAKKysrIHNyYy9jYWxscHJvYy5jCTIwMTItMTItMDMgMDE6MTc6NTkgKzAwMDAKQEAgLTk3 LDcgKzk3LDcgQEAKICAgQ09OU19UT19JTlRFR0VSIChGY2FyIChmZHBpZCksIGludCwgZmQp OwogICBDT05TX1RPX0lOVEVHRVIgKEZjZHIgKGZkcGlkKSwgcGlkX3QsIHBpZCk7CiAgIGVt YWNzX2Nsb3NlIChmZCk7Ci0gIEVNQUNTX0tJTExQRyAocGlkLCBTSUdLSUxMKTsKKyAga2ls bCAoLXBpZCwgU0lHS0lMTCk7CiAgIHN5bmNoX3Byb2Nlc3NfYWxpdmUgPSAwOwogICByZXR1 cm4gUW5pbDsKIH0KQEAgLTEzNCw3ICsxMzQsNyBAQAogICAgICAgcmV0dXJuIFFuaWw7CiAg ICAgfQogCi0gIGlmIChFTUFDU19LSUxMUEcgKHBpZCwgU0lHSU5UKSA9PSAwKQorICBpZiAo a2lsbCAoLXBpZCwgU0lHSU5UKSA9PSAwKQogICAgIHsKICAgICAgIHB0cmRpZmZfdCBjb3Vu dCA9IFNQRUNQRExfSU5ERVggKCk7CiAgICAgICByZWNvcmRfdW53aW5kX3Byb3RlY3QgKGNh bGxfcHJvY2Vzc19raWxsLCBmZHBpZCk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL2tleWJv YXJkLmMnCi0tLSBzcmMva2V5Ym9hcmQuYwkyMDEyLTExLTI3IDA1OjE3OjA3ICswMDAwCisr KyBzcmMva2V5Ym9hcmQuYwkyMDEyLTExLTI5IDIxOjMzOjUyICswMDAwCkBAIC0xMDY4OSw3 ICsxMDY4OSw3IEBACiAgICAgICBmZmx1c2ggKHN0ZG91dCk7CiAgICAgICByZXNldF9hbGxf c3lzX21vZGVzICgpOwogCi0jaWZkZWYgU0lHVFNUUAkJCS8qIFN1cHBvcnQgcG9zc2libGUg aW4gbGF0ZXIgVVNHIHZlcnNpb25zICovCisjaWZkZWYgU0lHVFNUUAogLyoKICAqIE9uIHN5 c3RlbXMgd2hpY2ggY2FuIHN1c3BlbmQgdGhlIGN1cnJlbnQgcHJvY2VzcyBhbmQgcmV0dXJu IHRvIHRoZSBvcmlnaW5hbAogICogc2hlbGwsIHRoaXMgY29tbWFuZCBjYXVzZXMgdGhlIHVz ZXIgdG8gZW5kIHVwIGJhY2sgYXQgdGhlIHNoZWxsLgoKPT09IG1vZGlmaWVkIGZpbGUgJ3Ny Yy9wcm9jZXNzLmMnCi0tLSBzcmMvcHJvY2Vzcy5jCTIwMTItMTItMDIgMTk6MTY6NDUgKzAw MDAKKysrIHNyYy9wcm9jZXNzLmMJMjAxMi0xMi0wMyAwMToyNDoyNSArMDAwMApAQCAtNzcz LDEzICs3NzMsMTEgQEAKIH0KIAogCi0jaWZkZWYgU0lHQ0hMRAogLyogRmRlbGV0ZV9wcm9j ZXNzIHByb21pc2VzIHRvIGltbWVkaWF0ZWx5IGZvcmdldCBhYm91dCB0aGUgcHJvY2Vzcywg YnV0IGluCiAgICByZWFsaXR5LCBFbWFjcyBuZWVkcyB0byByZW1lbWJlciB0aG9zZSBwcm9j ZXNzZXMgdW50aWwgdGhleSBoYXZlIGJlZW4KICAgIHRyZWF0ZWQgYnkgdGhlIFNJR0NITEQg aGFuZGxlciBhbmQgd2FpdHBpZCBoYXMgYmVlbiBpbnZva2VkIG9uIHRoZW07CiAgICBvdGhl cndpc2UgdGhleSBtaWdodCBmaWxsIHVwIHRoZSBrZXJuZWwncyBwcm9jZXNzIHRhYmxlLiAg Ki8KIHN0YXRpYyBMaXNwX09iamVjdCBkZWxldGVkX3BpZF9saXN0OwotI2VuZGlmCiAKIERF RlVOICgiZGVsZXRlLXByb2Nlc3MiLCBGZGVsZXRlX3Byb2Nlc3MsIFNkZWxldGVfcHJvY2Vz cywgMSwgMSwgMCwKICAgICAgICBkb2M6IC8qIERlbGV0ZSBQUk9DRVNTOiBraWxsIGl0IGFu ZCBmb3JnZXQgYWJvdXQgaXQgaW1tZWRpYXRlbHkuCkBAIC04MDIsNyArODAwLDYgQEAKICAg ICB9CiAgIGVsc2UgaWYgKHAtPmluZmQgPj0gMCkKICAgICB7Ci0jaWZkZWYgU0lHQ0hMRAog ICAgICAgTGlzcF9PYmplY3Qgc3ltYm9sOwogICAgICAgcGlkX3QgcGlkID0gcC0+cGlkOwog CkBAIC04MjAsNyArODE3LDYgQEAKIAlkZWxldGVkX3BpZF9saXN0CiAJICA9IEZkZWxldGUg KG1ha2VfZml4bnVtX29yX2Zsb2F0IChwaWQpLCBkZWxldGVkX3BpZF9saXN0KTsKICAgICAg IGVsc2UKLSNlbmRpZgogCXsKIAkgIEZraWxsX3Byb2Nlc3MgKHByb2Nlc3MsIFFuaWwpOwog CSAgLyogRG8gdGhpcyBub3csIHNpbmNlIHJlbW92ZV9wcm9jZXNzIHdpbGwgbWFrZSB0aGUK QEAgLTE1NzgsOSArMTU3NCw3IEBACiAjaWZuZGVmIFdJTkRPV1NOVAogICBpbnQgd2FpdF9j aGlsZF9zZXR1cFsyXTsKICNlbmRpZgotI2lmZGVmIFNJR0NITEQKICAgc2lnc2V0X3QgYmxv Y2tlZDsKLSNlbmRpZgogICAvKiBVc2Ugdm9sYXRpbGUgdG8gcHJvdGVjdCB2YXJpYWJsZXMg ZnJvbSBiZWluZyBjbG9iYmVyZWQgYnkgdmZvcmsuICAqLwogICB2b2xhdGlsZSBpbnQgZm9y a2luLCBmb3Jrb3V0OwogICB2b2xhdGlsZSBpbnQgcHR5X2ZsYWcgPSAwOwpAQCAtMTY3Nywx MyArMTY3MSwxMSBAQAogCiAgIGJsb2NrX2lucHV0ICgpOwogCi0jaWZkZWYgU0lHQ0hMRAog ICAvKiBCbG9jayBTSUdDSExEIHVudGlsIHdlIGhhdmUgYSBjaGFuY2UgdG8gc3RvcmUgdGhl IG5ldyBmb3JrJ3MKICAgICAgcGlkIGluIGl0cyBwcm9jZXNzIHN0cnVjdHVyZS4gICovCiAg IHNpZ2VtcHR5c2V0ICgmYmxvY2tlZCk7CiAgIHNpZ2FkZHNldCAoJmJsb2NrZWQsIFNJR0NI TEQpOwogICBwdGhyZWFkX3NpZ21hc2sgKFNJR19CTE9DSywgJmJsb2NrZWQsIDApOwotI2Vu ZGlmCiAKICNpZm5kZWYgV0lORE9XU05UCiAgIHBpZCA9IHZmb3JrICgpOwpAQCAtMTc5MSwx MCArMTc4Myw4IEBACiAgICAgICAvKiBFbWFjcyBpZ25vcmVzIFNJR1BJUEUsIGJ1dCB0aGUg Y2hpbGQgc2hvdWxkIG5vdC4gICovCiAgICAgICBzaWduYWwgKFNJR1BJUEUsIFNJR19ERkwp OwogCi0jaWZkZWYgU0lHQ0hMRAogCS8qIFN0b3AgYmxvY2tpbmcgc2lnbmFscyBpbiB0aGUg Y2hpbGQuICAqLwogICAgICAgcHRocmVhZF9zaWdtYXNrIChTSUdfU0VUTUFTSywgJmVtcHR5 X21hc2ssIDApOwotI2VuZGlmCiAKICAgICAgIGlmIChwdHlfZmxhZykKIAljaGlsZF9zZXR1 cF90dHkgKHhmb3Jrb3V0KTsKQEAgLTE4MTUsOSArMTgwNSw3IEBACiAgICAgWFBST0NFU1Mg KHByb2Nlc3MpLT5hbGl2ZSA9IDE7CiAKICAgLyogU3RvcCBibG9ja2luZyBzaWduYWxzIGlu IHRoZSBwYXJlbnQuICAqLwotI2lmZGVmIFNJR0NITEQKICAgcHRocmVhZF9zaWdtYXNrIChT SUdfU0VUTUFTSywgJmVtcHR5X21hc2ssIDApOwotI2VuZGlmCiAgIHVuYmxvY2tfaW5wdXQg KCk7CiAKICAgaWYgKHBpZCA8IDApCkBAIC00NjA5LDcgKzQ1OTcsNyBAQAogCQkgeWllbGRp bmcgRUJBREYgaGVyZSBvciBhdCBzZWxlY3QoKSBjYWxsIGFib3ZlLgogCQkgU28sIFNJR0hV UCBpcyBpZ25vcmVkIChzZWUgZGVmIG9mIFBUWV9UVFlfTkFNRV9TUFJJTlRGCiAJCSBpbiBt L2libXJ0LWFpeC5oKSwgYW5kIGhlcmUgd2UganVzdCBpZ25vcmUgdGhlIHNlbGVjdCBlcnJv ci4KLQkJIENsZWFudXAgb2NjdXJzIGMvbyBzdGF0dXNfbm90aWZ5IGFmdGVyIFNJR0NMRC4g Ki8KKwkJIENsZWFudXAgb2NjdXJzIGMvbyBzdGF0dXNfbm90aWZ5IGFmdGVyIFNJR0NITEQu ICovCiAJICAgICAgbm9fYXZhaWwgPSAxOyAvKiBDYW5ub3QgZGVwZW5kIG9uIHZhbHVlcyBy ZXR1cm5lZCAqLwogI2Vsc2UKIAkgICAgICBlbWFjc19hYm9ydCAoKTsKQEAgLTQ4MDcsMTAg KzQ3OTUsOCBAQAogI2VuZGlmIC8qIEhBVkVfUFRZUyAqLwogCSAgICAgIC8qIElmIHdlIGNh biBkZXRlY3QgcHJvY2VzcyB0ZXJtaW5hdGlvbiwgZG9uJ3QgY29uc2lkZXIgdGhlCiAJCSBw cm9jZXNzIGdvbmUganVzdCBiZWNhdXNlIGl0cyBwaXBlIGlzIGNsb3NlZC4gICovCi0jaWZk ZWYgU0lHQ0hMRAogCSAgICAgIGVsc2UgaWYgKG5yZWFkID09IDAgJiYgIU5FVENPTk5fUCAo cHJvYykgJiYgIVNFUklBTENPTk5fUCAocHJvYykpCiAJCTsKLSNlbmRpZgogCSAgICAgIGVs c2UKIAkJewogCQkgIC8qIFByZXNlcnZlIHN0YXR1cyBvZiBwcm9jZXNzZXMgYWxyZWFkeSB0 ZXJtaW5hdGVkLiAgKi8KQEAgLTU2NzMsNyArNTY1OSw3IEBACiAKICAgIElmIHdlIGNhbiwg d2UgdHJ5IHRvIHNpZ25hbCBQUk9DRVNTIGJ5IHNlbmRpbmcgY29udHJvbCBjaGFyYWN0ZXJz CiAgICBkb3duIHRoZSBwdHkuICBUaGlzIGFsbG93cyB1cyB0byBzaWduYWwgaW5mZXJpb3Jz IHdobyBoYXZlIGNoYW5nZWQKLSAgIHRoZWlyIHVpZCwgZm9yIHdoaWNoIGtpbGxwZyB3b3Vs ZCByZXR1cm4gYW4gRVBFUk0gZXJyb3IuICAqLworICAgdGhlaXIgdWlkLCBmb3Igd2hpY2gg a2lsbCB3b3VsZCByZXR1cm4gYW4gRVBFUk0gZXJyb3IuICAqLwogCiBzdGF0aWMgdm9pZAog cHJvY2Vzc19zZW5kX3NpZ25hbCAoTGlzcF9PYmplY3QgcHJvY2VzcywgaW50IHNpZ25vLCBM aXNwX09iamVjdCBjdXJyZW50X2dyb3VwLApAQCAtNTgxMSw3ICs1Nzk3LDcgQEAKICAgaWYg KCFOSUxQIChjdXJyZW50X2dyb3VwKSkKICAgICB7CiAgICAgICBpZiAoaW9jdGwgKHAtPmlu ZmQsIFRJT0NTSUdTRU5ELCBzaWdubykgPT0gLTEpCi0JRU1BQ1NfS0lMTFBHIChnaWQsIHNp Z25vKTsKKwlraWxsICgtZ2lkLCBzaWdubyk7CiAgICAgfQogICBlbHNlCiAgICAgewpAQCAt NTgxOSw3ICs1ODA1LDcgQEAKICAgICAgIGtpbGwgKGdpZCwgc2lnbm8pOwogICAgIH0KICNl bHNlIC8qICEgZGVmaW5lZCAoVElPQ1NJR1NFTkQpICovCi0gIEVNQUNTX0tJTExQRyAoZ2lk LCBzaWdubyk7CisgIGtpbGwgKC1naWQsIHNpZ25vKTsKICNlbmRpZiAvKiAhIGRlZmluZWQg KFRJT0NTSUdTRU5EKSAqLwogfQogCkBAIC01OTM0LDYgKzU5MjAsNyBAQAogICAoTGlzcF9P YmplY3QgcHJvY2VzcywgTGlzcF9PYmplY3Qgc2lnY29kZSkKIHsKICAgcGlkX3QgcGlkOwor ICBpbnQgc2lnbm87CiAKICAgaWYgKFNUUklOR1AgKHByb2Nlc3MpKQogICAgIHsKQEAgLTU5 NjMsMTIgKzU5NTAsMTEgQEAKIAllcnJvciAoIkNhbm5vdCBzaWduYWwgcHJvY2VzcyAlcyIs IFNEQVRBIChYUFJPQ0VTUyAocHJvY2VzcyktPm5hbWUpKTsKICAgICB9CiAKLSNkZWZpbmUg cGFyc2Vfc2lnbmFsKE5BTUUsIFZBTFVFKQkJXAotICBlbHNlIGlmICgheHN0cmNhc2VjbXAg KG5hbWUsIE5BTUUpKQkJXAotICAgIFhTRVRJTlQgKHNpZ2NvZGUsIFZBTFVFKQotCiAgIGlm IChJTlRFR0VSUCAoc2lnY29kZSkpCi0gICAgQ0hFQ0tfVFlQRV9SQU5HRURfSU5URUdFUiAo aW50LCBzaWdjb2RlKTsKKyAgICB7CisgICAgICBDSEVDS19UWVBFX1JBTkdFRF9JTlRFR0VS IChpbnQsIHNpZ2NvZGUpOworICAgICAgc2lnbm8gPSBYSU5UIChzaWdjb2RlKTsKKyAgICB9 CiAgIGVsc2UKICAgICB7CiAgICAgICBjaGFyICpuYW1lOwpAQCAtNTk3Niw5NiArNTk2Miwx MiBAQAogICAgICAgQ0hFQ0tfU1lNQk9MIChzaWdjb2RlKTsKICAgICAgIG5hbWUgPSBTU0RB VEEgKFNZTUJPTF9OQU1FIChzaWdjb2RlKSk7CiAKLSAgICAgIGlmICghc3RybmNtcCAobmFt ZSwgIlNJRyIsIDMpIHx8ICFzdHJuY21wIChuYW1lLCAic2lnIiwgMykpCi0JbmFtZSArPSAz OwotCi0gICAgICBpZiAoMCkKLQk7Ci0jaWZkZWYgU0lHVVNSMQotICAgICAgcGFyc2Vfc2ln bmFsICgidXNyMSIsIFNJR1VTUjEpOwotI2VuZGlmCi0jaWZkZWYgU0lHVVNSMgotICAgICAg cGFyc2Vfc2lnbmFsICgidXNyMiIsIFNJR1VTUjIpOwotI2VuZGlmCi0gICAgICBwYXJzZV9z aWduYWwgKCJ0ZXJtIiwgU0lHVEVSTSk7Ci0jaWZkZWYgU0lHSFVQCi0gICAgICBwYXJzZV9z aWduYWwgKCJodXAiLCBTSUdIVVApOwotI2VuZGlmCi0gICAgICBwYXJzZV9zaWduYWwgKCJp bnQiLCBTSUdJTlQpOwotI2lmZGVmIFNJR1FVSVQKLSAgICAgIHBhcnNlX3NpZ25hbCAoInF1 aXQiLCBTSUdRVUlUKTsKLSNlbmRpZgotICAgICAgcGFyc2Vfc2lnbmFsICgiaWxsIiwgU0lH SUxMKTsKLSAgICAgIHBhcnNlX3NpZ25hbCAoImFicnQiLCBTSUdBQlJUKTsKLSNpZmRlZiBT SUdFTVQKLSAgICAgIHBhcnNlX3NpZ25hbCAoImVtdCIsIFNJR0VNVCk7Ci0jZW5kaWYKLSNp ZmRlZiBTSUdLSUxMCi0gICAgICBwYXJzZV9zaWduYWwgKCJraWxsIiwgU0lHS0lMTCk7Ci0j ZW5kaWYKLSAgICAgIHBhcnNlX3NpZ25hbCAoImZwZSIsIFNJR0ZQRSk7Ci0jaWZkZWYgU0lH QlVTCi0gICAgICBwYXJzZV9zaWduYWwgKCJidXMiLCBTSUdCVVMpOwotI2VuZGlmCi0gICAg ICBwYXJzZV9zaWduYWwgKCJzZWd2IiwgU0lHU0VHVik7Ci0jaWZkZWYgU0lHU1lTCi0gICAg ICBwYXJzZV9zaWduYWwgKCJzeXMiLCBTSUdTWVMpOwotI2VuZGlmCi0jaWZkZWYgU0lHUElQ RQotICAgICAgcGFyc2Vfc2lnbmFsICgicGlwZSIsIFNJR1BJUEUpOwotI2VuZGlmCi0jaWZk ZWYgU0lHQUxSTQotICAgICAgcGFyc2Vfc2lnbmFsICgiYWxybSIsIFNJR0FMUk0pOwotI2Vu ZGlmCi0jaWZkZWYgU0lHVVJHCi0gICAgICBwYXJzZV9zaWduYWwgKCJ1cmciLCBTSUdVUkcp OwotI2VuZGlmCi0jaWZkZWYgU0lHU1RPUAotICAgICAgcGFyc2Vfc2lnbmFsICgic3RvcCIs IFNJR1NUT1ApOwotI2VuZGlmCi0jaWZkZWYgU0lHVFNUUAotICAgICAgcGFyc2Vfc2lnbmFs ICgidHN0cCIsIFNJR1RTVFApOwotI2VuZGlmCi0jaWZkZWYgU0lHQ09OVAotICAgICAgcGFy c2Vfc2lnbmFsICgiY29udCIsIFNJR0NPTlQpOwotI2VuZGlmCi0jaWZkZWYgU0lHQ0hMRAot ICAgICAgcGFyc2Vfc2lnbmFsICgiY2hsZCIsIFNJR0NITEQpOwotI2VuZGlmCi0jaWZkZWYg U0lHVFRJTgotICAgICAgcGFyc2Vfc2lnbmFsICgidHRpbiIsIFNJR1RUSU4pOwotI2VuZGlm Ci0jaWZkZWYgU0lHVFRPVQotICAgICAgcGFyc2Vfc2lnbmFsICgidHRvdSIsIFNJR1RUT1Up OwotI2VuZGlmCi0jaWZkZWYgU0lHSU8KLSAgICAgIHBhcnNlX3NpZ25hbCAoImlvIiwgU0lH SU8pOwotI2VuZGlmCi0jaWZkZWYgU0lHWENQVQotICAgICAgcGFyc2Vfc2lnbmFsICgieGNw dSIsIFNJR1hDUFUpOwotI2VuZGlmCi0jaWZkZWYgU0lHWEZTWgotICAgICAgcGFyc2Vfc2ln bmFsICgieGZzeiIsIFNJR1hGU1opOwotI2VuZGlmCi0jaWZkZWYgU0lHVlRBTFJNCi0gICAg ICBwYXJzZV9zaWduYWwgKCJ2dGFscm0iLCBTSUdWVEFMUk0pOwotI2VuZGlmCi0jaWZkZWYg U0lHUFJPRgotICAgICAgcGFyc2Vfc2lnbmFsICgicHJvZiIsIFNJR1BST0YpOwotI2VuZGlm Ci0jaWZkZWYgU0lHV0lOQ0gKLSAgICAgIHBhcnNlX3NpZ25hbCAoIndpbmNoIiwgU0lHV0lO Q0gpOwotI2VuZGlmCi0jaWZkZWYgU0lHSU5GTwotICAgICAgcGFyc2Vfc2lnbmFsICgiaW5m byIsIFNJR0lORk8pOwotI2VuZGlmCi0gICAgICBlbHNlCisgICAgICBzaWdubyA9IGFiYnJf dG9fc2lnbmFsIChuYW1lKTsKKyAgICAgIGlmIChzaWdubyA8IDApCiAJZXJyb3IgKCJVbmRl ZmluZWQgc2lnbmFsIG5hbWUgJXMiLCBuYW1lKTsKICAgICB9CiAKLSN1bmRlZiBwYXJzZV9z aWduYWwKLQotICByZXR1cm4gbWFrZV9udW1iZXIgKGtpbGwgKHBpZCwgWElOVCAoc2lnY29k ZSkpKTsKKyAgcmV0dXJuIG1ha2VfbnVtYmVyIChraWxsIChwaWQsIHNpZ25vKSk7CiB9CiAK IERFRlVOICgicHJvY2Vzcy1zZW5kLWVvZiIsIEZwcm9jZXNzX3NlbmRfZW9mLCBTcHJvY2Vz c19zZW5kX2VvZiwgMCwgMSwgMCwKQEAgLTYyMDEsNyArNjEwMyw2IEBACiB2b2lkCiByZWNv cmRfY2hpbGRfc3RhdHVzX2NoYW5nZSAocGlkX3QgcGlkLCBpbnQgdykKIHsKLSNpZmRlZiBT SUdDSExECiAKICAgLyogUmVjb3JkIGF0IG1vc3Qgb25lIGNoaWxkIG9ubHkgaWYgd2UgYWxy ZWFkeSBrbm93IG9uZSBjaGlsZCB0aGF0CiAgICAgIGhhcyBleGl0ZWQuICAqLwpAQCAtNjI5 MCwxMSArNjE5MSw4IEBACiAgICAgICBpZiAoaW5wdXRfYXZhaWxhYmxlX2NsZWFyX3RpbWUp CiAJKmlucHV0X2F2YWlsYWJsZV9jbGVhcl90aW1lID0gbWFrZV9lbWFjc190aW1lICgwLCAw KTsKICAgICB9Ci0jZW5kaWYKIH0KIAotI2lmZGVmIFNJR0NITEQKLQogc3RhdGljIHZvaWQK IGhhbmRsZV9jaGlsZF9zaWduYWwgKGludCBzaWcpCiB7CkBAIC02MzA2LDggKzYyMDQsNiBA QAogewogICBkZWxpdmVyX3Byb2Nlc3Nfc2lnbmFsIChzaWcsIGhhbmRsZV9jaGlsZF9zaWdu YWwpOwogfQotCi0jZW5kaWYgLyogU0lHQ0hMRCAqLwogDAogCiBzdGF0aWMgTGlzcF9PYmpl Y3QKQEAgLTcxNTYsNyArNzA1Miw2IEBACiAKICAgaW5oaWJpdF9zZW50aW5lbHMgPSAwOwog Ci0jaWZkZWYgU0lHQ0hMRAogI2lmbmRlZiBDQU5OT1RfRFVNUAogICBpZiAoISBub25pbnRl cmFjdGl2ZSB8fCBpbml0aWFsaXplZCkKICNlbmRpZgpAQCAtNzE2NSw3ICs3MDYwLDYgQEAK ICAgICAgIGVtYWNzX3NpZ2FjdGlvbl9pbml0ICgmYWN0aW9uLCBkZWxpdmVyX2NoaWxkX3Np Z25hbCk7CiAgICAgICBzaWdhY3Rpb24gKFNJR0NITEQsICZhY3Rpb24sIDApOwogICAgIH0K LSNlbmRpZgogCiAgIEZEX1pFUk8gKCZpbnB1dF93YWl0X21hc2spOwogICBGRF9aRVJPICgm bm9uX2tleWJvYXJkX3dhaXRfbWFzayk7CkBAIC03MTkyLDkgKzcwODYsNyBAQAogI2VuZGlm CiAKICAgVnByb2Nlc3NfYWxpc3QgPSBRbmlsOwotI2lmZGVmIFNJR0NITEQKICAgZGVsZXRl ZF9waWRfbGlzdCA9IFFuaWw7Ci0jZW5kaWYKICAgZm9yIChpID0gMDsgaSA8IE1BWERFU0M7 IGkrKykKICAgICB7CiAgICAgICBjaGFuX3Byb2Nlc3NbaV0gPSBRbmlsOwpAQCAtNzMyMSw5 ICs3MjEzLDcgQEAKICAgREVGU1lNIChRbGFzdF9ub25tZW51X2V2ZW50LCAibGFzdC1ub25t ZW51LWV2ZW50Iik7CiAKICAgc3RhdGljcHJvICgmVnByb2Nlc3NfYWxpc3QpOwotI2lmZGVm IFNJR0NITEQKICAgc3RhdGljcHJvICgmZGVsZXRlZF9waWRfbGlzdCk7Ci0jZW5kaWYKIAog I2VuZGlmCS8qIHN1YnByb2Nlc3NlcyAqLwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL3N5 c2RlcC5jJwotLS0gc3JjL3N5c2RlcC5jCTIwMTItMTEtMjcgMDM6MTA6MzIgKzAwMDAKKysr IHNyYy9zeXNkZXAuYwkyMDEyLTEyLTAzIDAxOjI0OjI1ICswMDAwCkBAIC0zNCw2ICszNCw3 IEBACiAjaW5jbHVkZSA8Yy1jdHlwZS5oPgogI2luY2x1ZGUgPGNhcmVhZGxpbmthdC5oPgog I2luY2x1ZGUgPGlnbm9yZS12YWx1ZS5oPgorI2luY2x1ZGUgPHNpZzJzdHIuaD4KICNpbmNs dWRlIDx1dGltZW5zLmg+CiAKICNpbmNsdWRlICJsaXNwLmgiCkBAIC00MjgsMjAgKzQyOSwx NSBAQAogdm9pZAogc3lzX3N1c3BlbmQgKHZvaWQpCiB7Ci0jaWYgZGVmaW5lZCAoU0lHVFNU UCkgJiYgIWRlZmluZWQgKE1TRE9TKQotCi0gIHsKLSAgICBwaWRfdCBwZ3JwID0gZ2V0cGdy cCAoKTsKLSAgICBFTUFDU19LSUxMUEcgKHBncnAsIFNJR1RTVFApOwotICB9Ci0KLSNlbHNl IC8qIE5vIFNJR1RTVFAgKi8KKyNpZm5kZWYgRE9TX05UCisgIGtpbGwgKDAsIFNJR1RTVFAp OworI2Vsc2UKIC8qIE9uIGEgc3lzdGVtIHdoZXJlIHN1c3BlbmRpbmcgaXMgbm90IGltcGxl bWVudGVkLAogICAgaW5zdGVhZCBmb3JrIGEgc3Vic2hlbGwgYW5kIGxldCBpdCB0YWxrIGRp cmVjdGx5IHRvIHRoZSB0ZXJtaW5hbAogICAgd2hpbGUgd2Ugd2FpdC4gICovCiAgIHN5c19z dWJzaGVsbCAoKTsKIAotI2VuZGlmIC8qIG5vIFNJR1RTVFAgKi8KKyNlbmRpZgogfQogCiAv KiBGb3JrIGEgc3Vic2hlbGwuICAqLwpAQCAtMTQ5MSw5ICsxNDg3LDcgQEAKICAgLyogV2hl biBoYW5kbGluZyBhIHNpZ25hbCwgYmxvY2sgbm9uZmF0YWwgc3lzdGVtIHNpZ25hbHMgdGhh dCBhcmUgY2F1Z2h0CiAgICAgIGJ5IEVtYWNzLiAgVGhpcyBtYWtlcyByYWNlIGNvbmRpdGlv bnMgbGVzcyBsaWtlbHkuICAqLwogICBzaWdhZGRzZXQgKCZhY3Rpb24tPnNhX21hc2ssIFNJ R0FMUk0pOwotI2lmZGVmIFNJR0NITEQKICAgc2lnYWRkc2V0ICgmYWN0aW9uLT5zYV9tYXNr LCBTSUdDSExEKTsKLSNlbmRpZgogI2lmZGVmIFNJR0RBTkdFUgogICBzaWdhZGRzZXQgKCZh Y3Rpb24tPnNhX21hc2ssIFNJR0RBTkdFUik7CiAjZW5kaWYKQEAgLTE2NTQsNiArMTY0OCwy NyBAQAogICAgIHNpZ2FjdGlvbiAoc2lnLCAmcHJvY2Vzc19mYXRhbF9hY3Rpb24sIDApOwog fQogCisvKiBSZXR1cm4gdGhlIGludGVnZXIgdmFsdWUgb2YgdGhlIHNpZ25hbCB3aG9zZSBh YmJyZXZpYXRpb24gaXMgQUJCUiwKKyAgIG9yIGEgbmVnYXRpdmUgbnVtYmVyIGlmIHRoZXJl IGlzIG5vIHN1Y2ggc2lnbmFsLiAgKi8KK2ludAorYWJicl90b19zaWduYWwgKGNoYXIgY29u c3QgKm5hbWUpCit7CisgIGludCBpLCBzaWdubzsKKyAgY2hhciBzaWdidWZbMjBdOyAvKiBM YXJnZSBlbm91Z2ggZm9yIGFsbCB2YWxpZCBzaWduYWwgYWJicmV2aWF0aW9ucy4gICovCisK KyAgaWYgKCFzdHJuY21wIChuYW1lLCAiU0lHIiwgMykgfHwgIXN0cm5jbXAgKG5hbWUsICJz aWciLCAzKSkKKyAgICBuYW1lICs9IDM7CisKKyAgZm9yIChpID0gMDsgaSA8IHNpemVvZiBz aWdidWY7IGkrKykKKyAgICB7CisgICAgICBzaWdidWZbaV0gPSBjX3RvdXBwZXIgKG5hbWVb aV0pOworICAgICAgaWYgKCEgc2lnYnVmW2ldKQorCXJldHVybiBzdHIyc2lnIChzaWdidWYs ICZzaWdubykgPT0gMCA/IHNpZ25vIDogLTE7CisgICAgfQorCisgIHJldHVybiAtMTsKK30K Kwogdm9pZAogaW5pdF9zaWduYWxzIChib29sIGR1bXBpbmcpCiB7CkBAIC0xNjczLDE4ICsx Njg4LDExIEBACiAjIGlmZGVmIFNJR0FJTwogICAgICAgc3lzX3NpZ2xpc3RbU0lHQUlPXSA9 ICJMQU4gSS9PIGludGVycnVwdCI7CiAjIGVuZGlmCi0jIGlmZGVmIFNJR0FMUk0KICAgICAg IHN5c19zaWdsaXN0W1NJR0FMUk1dID0gIkFsYXJtIGNsb2NrIjsKLSMgZW5kaWYKICMgaWZk ZWYgU0lHQlVTCiAgICAgICBzeXNfc2lnbGlzdFtTSUdCVVNdID0gIkJ1cyBlcnJvciI7CiAj IGVuZGlmCi0jIGlmZGVmIFNJR0NMRAotICAgICAgc3lzX3NpZ2xpc3RbU0lHQ0xEXSA9ICJD aGlsZCBzdGF0dXMgY2hhbmdlZCI7Ci0jIGVuZGlmCi0jIGlmZGVmIFNJR0NITEQKICAgICAg IHN5c19zaWdsaXN0W1NJR0NITERdID0gIkNoaWxkIHN0YXR1cyBjaGFuZ2VkIjsKLSMgZW5k aWYKICMgaWZkZWYgU0lHQ09OVAogICAgICAgc3lzX3NpZ2xpc3RbU0lHQ09OVF0gPSAiQ29u dGludWVkIjsKICMgZW5kaWYKQEAgLTE3MDQsOSArMTcxMiw3IEBACiAjIGlmZGVmIFNJR0dS QU5UCiAgICAgICBzeXNfc2lnbGlzdFtTSUdHUkFOVF0gPSAiTW9uaXRvciBtb2RlIGdyYW50 ZWQiOwogIyBlbmRpZgotIyBpZmRlZiBTSUdIVVAKICAgICAgIHN5c19zaWdsaXN0W1NJR0hV UF0gPSAiSGFuZ3VwIjsKLSMgZW5kaWYKICAgICAgIHN5c19zaWdsaXN0W1NJR0lMTF0gPSAi SWxsZWdhbCBpbnN0cnVjdGlvbiI7CiAgICAgICBzeXNfc2lnbGlzdFtTSUdJTlRdID0gIklu dGVycnVwdCI7CiAjIGlmZGVmIFNJR0lPCkBAIC0xNzE4LDkgKzE3MjQsNyBAQAogIyBpZmRl ZiBTSUdJT1QKICAgICAgIHN5c19zaWdsaXN0W1NJR0lPVF0gPSAiSU9UIHRyYXAiOwogIyBl bmRpZgotIyBpZmRlZiBTSUdLSUxMCiAgICAgICBzeXNfc2lnbGlzdFtTSUdLSUxMXSA9ICJL aWxsZWQiOwotIyBlbmRpZgogIyBpZmRlZiBTSUdMT1NUCiAgICAgICBzeXNfc2lnbGlzdFtT SUdMT1NUXSA9ICJSZXNvdXJjZSBsb3N0IjsKICMgZW5kaWYKQEAgLTE3MzMsOSArMTczNyw3 IEBACiAjIGlmZGVmIFNJR1BIT05FCiAgICAgICBzeXNfc2lnbGlzdFtTSUdXSU5EXSA9ICJT SUdQSE9ORSI7CiAjIGVuZGlmCi0jIGlmZGVmIFNJR1BJUEUKICAgICAgIHN5c19zaWdsaXN0 W1NJR1BJUEVdID0gIkJyb2tlbiBwaXBlIjsKLSMgZW5kaWYKICMgaWZkZWYgU0lHUE9MTAog ICAgICAgc3lzX3NpZ2xpc3RbU0lHUE9MTF0gPSAiUG9sbGFibGUgZXZlbnQgb2NjdXJyZWQi OwogIyBlbmRpZgpAQCAtMTc0OCw5ICsxNzUwLDcgQEAKICMgaWZkZWYgU0lHUFdSCiAgICAg ICBzeXNfc2lnbGlzdFtTSUdQV1JdID0gIlBvd2VyLWZhaWwgcmVzdGFydCI7CiAjIGVuZGlm Ci0jIGlmZGVmIFNJR1FVSVQKICAgICAgIHN5c19zaWdsaXN0W1NJR1FVSVRdID0gIlF1aXQi OwotIyBlbmRpZgogIyBpZmRlZiBTSUdSRVRSQUNUCiAgICAgICBzeXNfc2lnbGlzdFtTSUdS RVRSQUNUXSA9ICJOZWVkIHRvIHJlbGlucXVpc2ggbW9uaXRvciBtb2RlIjsKICMgZW5kaWYK Cj09PSBtb2RpZmllZCBmaWxlICdzcmMvc3lzc2lnbmFsLmgnCi0tLSBzcmMvc3lzc2lnbmFs LmgJMjAxMi0xMC0wNyAwMjoyNjowMyArMDAwMAorKysgc3JjL3N5c3NpZ25hbC5oCTIwMTIt MTItMDMgMDE6MjQ6MjUgKzAwMDAKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlIDxzaWdu YWwuaD4KICNpbmNsdWRlIDxzdGRib29sLmg+CiAKK2V4dGVybiBpbnQgYWJicl90b19zaWdu YWwgKGNoYXIgY29uc3QgKik7CiBleHRlcm4gdm9pZCBpbml0X3NpZ25hbHMgKGJvb2wpOwog CiAjaWZkZWYgSEFWRV9QVEhSRUFECkBAIC01NCwyNiArNTUsNiBAQAogIyBkZWZpbmUgZW1h Y3NfcmFpc2Uoc2lnKSByYWlzZSAoc2lnKQogI2VuZGlmCiAKLS8qIE9uIGJzZCwgW21hbiBz YXlzXSBraWxsIGRvZXMgbm90IGFjY2VwdCBhIG5lZ2F0aXZlIG51bWJlciB0byBraWxsIGEg cGdycC4KLSAgIE11c3QgZG8gdGhhdCB1c2luZyB0aGUga2lsbHBnIGNhbGwuICAqLwotI2lm ZGVmIEJTRF9TWVNURU0KLSNkZWZpbmUgRU1BQ1NfS0lMTFBHKGdpZCwgc2lnbm8pIChraWxs cGcgKCAoZ2lkKSwgKHNpZ25vKSkpCi0jZWxzZQotI2lmZGVmIFdJTkRPV1NOVAotI2RlZmlu ZSBFTUFDU19LSUxMUEcoZ2lkLCBzaWdubykgKGtpbGwgKGdpZCwgc2lnbm8pKQotI2Vsc2UK LSNkZWZpbmUgRU1BQ1NfS0lMTFBHKGdpZCwgc2lnbm8pIChraWxsICAgKC0oZ2lkKSwgKHNp Z25vKSkpCi0jZW5kaWYKLSNlbmRpZgotCi0vKiBEZWZpbmUgU0lHQ0hMRCBhcyBhbiBhbGlh cyBmb3IgU0lHQ0xELiAgVGhlcmUgYXJlIG1hbnkgY29uZGl0aW9uYWxzCi0gICB0ZXN0aW5n IFNJR0NITEQuICAqLwotI2lmZGVmIFNJR0NMRAotI2lmbmRlZiBTSUdDSExECi0jZGVmaW5l IFNJR0NITEQgU0lHQ0xECi0jZW5kaWYgLyogU0lHQ0hMRCAqLwotI2VuZGlmIC8qICEgZGVm aW5lZCAoU0lHQ0xEKSAqLwotCiAjaWZuZGVmIEhBVkVfU1RSU0lHTkFMCiAjIGRlZmluZSBz dHJzaWduYWwoc2lnKSBzYWZlX3N0cnNpZ25hbCAoc2lnKQogI2VuZGlmCgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3JjL3czMnByb2MuYycKLS0tIHNyYy93MzJwcm9jLmMJMjAxMi0xMS0yNyAw MzoxMDozMiArMDAwMAorKysgc3JjL3czMnByb2MuYwkyMDEyLTExLTI5IDA2OjQ2OjM1ICsw MDAwCkBAIC0yMTM5LDYgKzIxMzksMTAgQEAKICAgaW50IG5lZWRfdG9fZnJlZSA9IDA7CiAg IGludCByYyA9IDA7CiAKKyAgLyogRWFjaCBwcm9jZXNzIGlzIGluIGl0cyBvd24gcHJvY2Vz cyBncm91cC4gICovCisgIGlmIChwaWQgPCAwKQorICAgIHBpZCA9IC1waWQ7CisKICAgLyog T25seSBoYW5kbGUgc2lnbmFscyB0aGF0IHdpbGwgcmVzdWx0IGluIHRoZSBwcm9jZXNzIGR5 aW5nICovCiAgIGlmIChzaWcgIT0gU0lHSU5UICYmIHNpZyAhPSBTSUdLSUxMICYmIHNpZyAh PSBTSUdRVUlUICYmIHNpZyAhPSBTSUdIVVApCiAgICAgewoK --------------070501050002050304000305-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 04 14:17:26 2012 Received: (at 13026) by debbugs.gnu.org; 4 Dec 2012 19:17:26 +0000 Received: from localhost ([127.0.0.1]:53615 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Tfxzi-00025z-HF for submit@debbugs.gnu.org; Tue, 04 Dec 2012 14:17:26 -0500 Received: from mtaout23.012.net.il ([80.179.55.175]:53422) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Tfxzf-00025q-99 for 13026@debbugs.gnu.org; Tue, 04 Dec 2012 14:17:24 -0500 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0MEI00400TH68100@a-mtaout23.012.net.il> for 13026@debbugs.gnu.org; Tue, 04 Dec 2012 21:17:18 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MEI00436TKU4250@a-mtaout23.012.net.il>; Tue, 04 Dec 2012 21:17:18 +0200 (IST) Date: Tue, 04 Dec 2012 21:17:17 +0200 From: Eli Zaretskii Subject: Re: bug#13026: Assume POSIX 1003.1-1988 or later for signal.h. In-reply-to: <50BC0104.3070303@cs.ucla.edu> X-012-Sender: halo1@inter.net.il To: Paul Eggert Message-id: <83k3sxr5j6.fsf@gnu.org> References: <50B7062F.1010901@cs.ucla.edu> <83sj7suxdn.fsf@gnu.org> <50B7D5BC.5060606@cs.ucla.edu> <83ehjbv5cc.fsf@gnu.org> <50BC0104.3070303@cs.ucla.edu> X-Spam-Score: 1.5 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > Date: Sun, 02 Dec 2012 17:31:48 -0800 > From: Paul Eggert > CC: 13026@debbugs.gnu.org > > On 11/30/2012 12:54 AM, Eli Zaretskii wrote: > > Maybe a better fix there would be to > > have an array of data (name and value of each signal), and loop > > through it, instead of using if-elseif. > > Sure, that's easy enough. Gnulib already has a module to do that. > Revised patch attached (most of the new stuff is just code > copied from Gnulib). As a bonus, this fixes signal-process to > handle several signal names that it currently doesn't support, > such as those of the real-time signals. [...] Content analysis details: (1.5 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [80.179.55.175 listed in list.dnswl.org] 0.7 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% [score: 0.4993] X-Debbugs-Envelope-To: 13026 Cc: 13026@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: 0.7 (/) > Date: Sun, 02 Dec 2012 17:31:48 -0800 > From: Paul Eggert > CC: 13026@debbugs.gnu.org > > On 11/30/2012 12:54 AM, Eli Zaretskii wrote: > > Maybe a better fix there would be to > > have an array of data (name and value of each signal), and loop > > through it, instead of using if-elseif. > > Sure, that's easy enough. Gnulib already has a module to do that. > Revised patch attached (most of the new stuff is just code > copied from Gnulib). As a bonus, this fixes signal-process to > handle several signal names that it currently doesn't support, > such as those of the real-time signals. Thanks. This will need additions to lib/makefile.w32-in, to get the new modules to compile into libgnu.a. > > By the way, an alternative way of dealing with the lack of Posix > > signals on Windows is to condition the related fragments on WINDOWSNT, > > and remove the "#ifdef SIGFOO" conditions for Posix signals. > > I'd rather use the Autoconf style, which is to test for individual > features rather than test for operating systems, as that tends to > make maintenance easier when operating systems or the emulations > mutate. The likes of "#ifdef SIGFOO" are not Autoconf tests. They test macros defined in header files, exactly like "#ifdef WINDOWSNT" does. The advantage of the latter is that it clearly says why, say, SIGTSTP is not used unconditionally, which could otherwise puzzle someone who knows that this signal is universally supported by Posix platforms. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 07 21:41:23 2012 Received: (at 13026-done) by debbugs.gnu.org; 8 Dec 2012 02:41:23 +0000 Received: from localhost ([127.0.0.1]:59678 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1ThALz-0003hb-4s for submit@debbugs.gnu.org; Fri, 07 Dec 2012 21:41:23 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:52969) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1ThALv-0003hT-Qq for 13026-done@debbugs.gnu.org; Fri, 07 Dec 2012 21:41:21 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 4C3EF39E810A; Fri, 7 Dec 2012 18:40:57 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JQtJniq3Ebql; Fri, 7 Dec 2012 18:40:56 -0800 (PST) Received: from [192.168.1.3] (pool-71-189-154-249.lsanca.fios.verizon.net [71.189.154.249]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 983FD39E8106; Fri, 7 Dec 2012 18:40:56 -0800 (PST) Message-ID: <50C2A8B9.3030205@cs.ucla.edu> Date: Fri, 07 Dec 2012 18:40:57 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#13026: Assume POSIX 1003.1-1988 or later for signal.h. References: <50B7062F.1010901@cs.ucla.edu> <83sj7suxdn.fsf@gnu.org> <50B7D5BC.5060606@cs.ucla.edu> <83ehjbv5cc.fsf@gnu.org> <50BC0104.3070303@cs.ucla.edu> <83k3sxr5j6.fsf@gnu.org> In-Reply-To: <83k3sxr5j6.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -1.5 (-) X-Debbugs-Envelope-To: 13026-done Cc: 13026-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.5 (-) On 12/04/2012 11:17 AM, Eli Zaretskii wrote: > This will need additions to lib/makefile.w32-in, to get the new > modules to compile into libgnu.a. I added enough so that I think it should compile, as trunk bzr 111151, and I'm marking this bug as fixed. Someone with Microsoft expertise should look at that as I expect more needs to be added to the Microsoftish build procedure. As an aside, it'd be nicer if lib/Makefile were computed more automatically from lib/gnulib.mk on Microsoft platforms, so that this sort of thing wouldn't require manual editing. > The likes of "#ifdef SIGFOO" are not Autoconf tests. Yes, but I was talking more about the Autoconf style, which is to look for individual features rather than operating systems. This style tends to work better when porting among a large number of platforms. The style doesn't always require Autoconf help. It's true that the style has some downsides too, but they're less important in practice. Here, in particular, I don't expect many readers of the Emacs source code would think that Emacs works only on POSIXish platforms, given all the occurrences of "#ifdef WINDOWSNT" and "#ifdef DOS_NT" that they'd find with even a casual perusal. From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 08 05:10:00 2012 Received: (at 13026) by debbugs.gnu.org; 8 Dec 2012 10:10:00 +0000 Received: from localhost ([127.0.0.1]:59865 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1ThHM8-0002Mn-Fx for submit@debbugs.gnu.org; Sat, 08 Dec 2012 05:10:00 -0500 Received: from mtaout21.012.net.il ([80.179.55.169]:56525) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1ThHM5-0002Mf-KP for 13026@debbugs.gnu.org; Sat, 08 Dec 2012 05:09:59 -0500 Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0MEP00700IHKI400@a-mtaout21.012.net.il> for 13026@debbugs.gnu.org; Sat, 08 Dec 2012 12:09:33 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MEP007UTIVVE360@a-mtaout21.012.net.il>; Sat, 08 Dec 2012 12:09:31 +0200 (IST) Date: Sat, 08 Dec 2012 12:09:15 +0200 From: Eli Zaretskii Subject: Re: bug#13026: Assume POSIX 1003.1-1988 or later for signal.h. In-reply-to: <50C2A8B9.3030205@cs.ucla.edu> X-012-Sender: halo1@inter.net.il To: Paul Eggert Message-id: <8338zgn9dg.fsf@gnu.org> References: <50B7062F.1010901@cs.ucla.edu> <83sj7suxdn.fsf@gnu.org> <50B7D5BC.5060606@cs.ucla.edu> <83ehjbv5cc.fsf@gnu.org> <50BC0104.3070303@cs.ucla.edu> <83k3sxr5j6.fsf@gnu.org> <50C2A8B9.3030205@cs.ucla.edu> X-Spam-Score: 1.5 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > Date: Fri, 07 Dec 2012 18:40:57 -0800 > From: Paul Eggert > CC: 13026-done@debbugs.gnu.org > > On 12/04/2012 11:17 AM, Eli Zaretskii wrote: > > > This will need additions to lib/makefile.w32-in, to get the new > > modules to compile into libgnu.a. > > I added enough so that I think it should compile, as trunk bzr > 111151, and I'm marking this bug as fixed. Someone with > Microsoft expertise should look at that as I expect more > needs to be added to the Microsoftish build procedure. [...] Content analysis details: (1.5 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [80.179.55.169 listed in list.dnswl.org] 0.7 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% [score: 0.4116] X-Debbugs-Envelope-To: 13026 Cc: 13026@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: 0.2 (/) > Date: Fri, 07 Dec 2012 18:40:57 -0800 > From: Paul Eggert > CC: 13026-done@debbugs.gnu.org > > On 12/04/2012 11:17 AM, Eli Zaretskii wrote: > > > This will need additions to lib/makefile.w32-in, to get the new > > modules to compile into libgnu.a. > > I added enough so that I think it should compile, as trunk bzr > 111151, and I'm marking this bug as fixed. Someone with > Microsoft expertise should look at that as I expect more > needs to be added to the Microsoftish build procedure. Thanks. There was a stray character at the beginning of the file which I removed, and I added a dependency for sig2str.o. Otherwise, the Windows build went smoothly. > As an aside, it'd be nicer if lib/Makefile were computed more > automatically from lib/gnulib.mk on Microsoft platforms, so > that this sort of thing wouldn't require manual editing. This is an issue that transcends the context of this bug report, so I will reply on emacs-devel. From unknown Sat Jun 21 12:22:57 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 05 Jan 2013 12:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator