From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Robert Pluim Newsgroups: gmane.emacs.bugs Subject: bug#50985: Merging gnulib for Emacs 28.1? Date: Tue, 05 Oct 2021 15:44:56 +0200 Message-ID: <8735pfy49z.fsf@gmail.com> References: <83ilyd6ky8.fsf@gnu.org> <86mtnov0p8.fsf@gmail.com> <83h7dv4oiq.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25622"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Andy Moreton , 50985@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Oct 05 15:46:14 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mXklq-0006UK-0Q for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 05 Oct 2021 15:46:14 +0200 Original-Received: from localhost ([::1]:32792 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mXklo-0004Rj-Pp for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 05 Oct 2021 09:46:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40590) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mXkle-0004RR-KL for bug-gnu-emacs@gnu.org; Tue, 05 Oct 2021 09:46:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:56100) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mXkle-0007oo-CT for bug-gnu-emacs@gnu.org; Tue, 05 Oct 2021 09:46:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mXkle-0001bZ-64 for bug-gnu-emacs@gnu.org; Tue, 05 Oct 2021 09:46:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Robert Pluim Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 05 Oct 2021 13:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50985 X-GNU-PR-Package: emacs Original-Received: via spool by 50985-submit@debbugs.gnu.org id=B50985.16334415143352 (code B ref 50985); Tue, 05 Oct 2021 13:46:02 +0000 Original-Received: (at 50985) by debbugs.gnu.org; 5 Oct 2021 13:45:14 +0000 Original-Received: from localhost ([127.0.0.1]:39413 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mXkko-0000mD-3s for submit@debbugs.gnu.org; Tue, 05 Oct 2021 09:45:14 -0400 Original-Received: from mail-wr1-f52.google.com ([209.85.221.52]:36403) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mXkkj-0000d8-2F for 50985@debbugs.gnu.org; Tue, 05 Oct 2021 09:45:08 -0400 Original-Received: by mail-wr1-f52.google.com with SMTP id o20so19399435wro.3 for <50985@debbugs.gnu.org>; Tue, 05 Oct 2021 06:45:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:references:date:in-reply-to:message-id :mime-version; bh=5Qg3cI+ewVdSlq9a+WBYGZlciXDn9qmcc4Ipa2k6lOw=; b=WLfDtY3QaKBZ+N/yNbzs+WrpxVIVaSErGF6H8kKffeM3d6SlUz74V3o58ghZ08hMDo khviHvmcPcZxFYP8OjhvzIK9mi0M8Axg91qPo4YBQMtVC+vUCFcQdRqxuqmIzbgCDNkl 2/S3+qH+GavR11P5lwxNFQEMgSMjMqQua/Vx4QRk7SXrOWp53nTzMTFXrT635uAfJGZ7 Qf7W/tSkAJus5Phn9iWF5nnrEYauIqRUtXcb3zLC5OiPRr6B8GvJQqyei4Jqxc+uLAuB Cz5CZv+Ax0bQyD9oQfV5/t9bkkQfPVhZFi3jJuGVYWoYsOmWbzzGrp/maX5DuGlRJTY2 m0EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:mime-version; bh=5Qg3cI+ewVdSlq9a+WBYGZlciXDn9qmcc4Ipa2k6lOw=; b=ib2BFDfAiduLBLwjsjFhOhIYiaCngc5Tz4H7Q1uS8oDfzQbSKrQQcs1b+vPYnpXAoG B6cp6gp34SVJnnZ9AtO7Lb4QIWGRVxcxKIZ21hVu79gqDPduSa4no6FAaEnnV04asvXE Ik+awk6fl01ZbfYwnshl9HKv3+kq1X8wy0MaR+5C2RpAMS9qfZ50tfMS2C9dDIyc08x1 Tre8DhLk+Vtqt9EF62GQKhwf5GvfVF8v0yUtGqPKwJXCckBLGtZ777vfbB0kil/X6226 hin/VPbFmXYQ+Hb/oXBP+9u+0XmDdwnOKwsg9gYs7MHXbN3+QMsqiboIK8lHfCVHWKZD wh2Q== X-Gm-Message-State: AOAM532fddyYTQW+Ig2RaxHIL6Jmh56fV+/fU+qFJoeoYSvh5Zd+QD3t 2uCaS2gk3CWAZ2Pg5alp200dddIx98U= X-Google-Smtp-Source: ABdhPJyhVfxKyNV317lj8LgreB/J/vxvNs8IdtmKue28bcluzyrHuZejM0L0/aLpLoSraV4znq47vw== X-Received: by 2002:adf:bd84:: with SMTP id l4mr22162912wrh.420.1633441498728; Tue, 05 Oct 2021 06:44:58 -0700 (PDT) Original-Received: from rltb ([82.66.8.55]) by smtp.gmail.com with ESMTPSA id r9sm17750757wru.2.2021.10.05.06.44.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Oct 2021 06:44:57 -0700 (PDT) In-Reply-To: <83h7dv4oiq.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 05 Oct 2021 15:58:05 +0300") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:216453 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable >>>>> On Tue, 05 Oct 2021 15:58:05 +0300, Eli Zaretskii said: >> From: Andy Moreton >> Date: Tue, 05 Oct 2021 00:18:11 +0100 >>=20 >> In file included from C:/emacs/git/emacs/emacs-28/nt/inc/stdint.h:24, >> from C:/emacs/git/emacs/emacs-28/nt/inc/ms-w32.h:327, >> from C:/emacs/git/emacs/emacs-28/src/conf_post.h:44, >> from ../src/config.h:2726, >> from C:/emacs/git/emacs/emacs-28/lib/fingerprint.c:20: >> ./stdint.h:89:5: error: #if with no expression >> 89 | #if >> | ^ >>=20 >> This appears to be caused by a change in "lib/stdint.h.in": >>=20 >> emacs-28/lib/stint.h.in: #if @GNULIBHEADERS_OVERRIDE_WINT_T@ >> master/lib/stint.h.in: #if @GNULIB_OVERRIDES_WINT_T@ >>=20 >> emacs-28/configure.ac still has: >>=20 >> # Emacs does not use the wchar or wctype-h modules. >> AC_DEFUN([gt_TYPE_WINT_T], >> [GNULIB_OVERRIDES_WINT_T=3D0 >> AC_SUBST([GNULIB_OVERRIDES_WINT_T])]) >>=20 >> It looks like this needs updating to use the new name. Eli> Thanks, I installed this and the other change you proposed, to all= ow Eli> people build Emacs, until Paul fixes this "properly". Here=CA=BCs what I did to get it to build --with-native-compilation. Not pushing, since no doubt my method and commit message are all wrong :-) --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Unbreak-with-native-compilation-build-after-gnulib-u.patch >From f2746d9bffc9555470049b2eab2cc5003d3f637c Mon Sep 17 00:00:00 2001 From: Robert Pluim Date: Tue, 5 Oct 2021 15:38:00 +0200 Subject: [PATCH] Unbreak --with-native-compilation build after gnulib update To: emacs-devel@gnu.org Bug#50985 * admin/merge-gnulib (GNULIB_MODULES): Add crypto/md5. * admin/merge-gnulib (AVOIDED_MODULES): Add crypto/af_alg, fflush, fpurge, freading, fseek, fseeko, ftell, ftello, lseek, sys_socket, sys_uio. * lib/gnulib.mk.in: Regenerate. * lib/md5-stream.c: New file. * m4/gnulib-comp.m4: Regenerate. --- admin/merge-gnulib | 4 +- lib/gnulib.mk.in | 22 ++++++- lib/md5-stream.c | 141 +++++++++++++++++++++++++++++++++++++++++++++ m4/gnulib-comp.m4 | 2 + 4 files changed, 167 insertions(+), 2 deletions(-) create mode 100644 lib/md5-stream.c diff --git a/admin/merge-gnulib b/admin/merge-gnulib index 10cc73aa73..2f476fd422 100755 --- a/admin/merge-gnulib +++ b/admin/merge-gnulib @@ -30,6 +30,7 @@ GNULIB_MODULES= canonicalize-lgpl careadlinkat close-stream copy-file-range count-leading-zeros count-one-bits count-trailing-zeros + crypto/md5 crypto/md5-buffer crypto/sha1-buffer crypto/sha256-buffer crypto/sha512-buffer d-type diffseq double-slash-root dtoastr dtotimespec dup2 environ execinfo explicit_bzero faccessat @@ -49,7 +50,8 @@ GNULIB_MODULES= ' AVOIDED_MODULES=' - btowc close dup fchdir fstat langinfo lock + crypto/af_alg btowc close dup fchdir fstat langinfo lock + fflush fpurge freading fseek fseeko ftell ftello lseek sys_socket sys_uio mbrtowc mbsinit memchr mkdir msvc-inval msvc-nothrow nl_langinfo openat-die opendir pthread-h raise save-cwd select setenv sigprocmask stat stdarg stdbool diff --git a/lib/gnulib.mk.in b/lib/gnulib.mk.in index bac27f3a68..f44b5a4170 100644 --- a/lib/gnulib.mk.in +++ b/lib/gnulib.mk.in @@ -34,6 +34,7 @@ # --no-libtool \ # --macro-prefix=gl \ # --no-vc-files \ +# --avoid=crypto/af_alg \ # --avoid=btowc \ # --avoid=close \ # --avoid=dup \ @@ -41,6 +42,16 @@ # --avoid=fstat \ # --avoid=langinfo \ # --avoid=lock \ +# --avoid=fflush \ +# --avoid=fpurge \ +# --avoid=freading \ +# --avoid=fseek \ +# --avoid=fseeko \ +# --avoid=ftell \ +# --avoid=ftello \ +# --avoid=lseek \ +# --avoid=sys_socket \ +# --avoid=sys_uio \ # --avoid=mbrtowc \ # --avoid=mbsinit \ # --avoid=memchr \ @@ -79,6 +90,7 @@ # count-leading-zeros \ # count-one-bits \ # count-trailing-zeros \ +# crypto/md5 \ # crypto/md5-buffer \ # crypto/sha1-buffer \ # crypto/sha256-buffer \ @@ -544,8 +556,8 @@ GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ GMALLOC_OBJ = @GMALLOC_OBJ@ GMP_H = @GMP_H@ -GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_WARN_CFLAGS = @GNULIB_WARN_CFLAGS@ GNUSTEP_CFLAGS = @GNUSTEP_CFLAGS@ GNU_OBJC_CFLAGS = @GNU_OBJC_CFLAGS@ @@ -1473,6 +1485,14 @@ EXTRA_DIST += count-trailing-zeros.h endif ## end gnulib module count-trailing-zeros +## begin gnulib module crypto/md5 +ifeq (,$(OMIT_GNULIB_MODULE_crypto/md5)) + +libgnu_a_SOURCES += md5-stream.c + +endif +## end gnulib module crypto/md5 + ## begin gnulib module crypto/md5-buffer ifeq (,$(OMIT_GNULIB_MODULE_crypto/md5-buffer)) diff --git a/lib/md5-stream.c b/lib/md5-stream.c new file mode 100644 index 0000000000..fb483b7334 --- /dev/null +++ b/lib/md5-stream.c @@ -0,0 +1,141 @@ +/* Functions to compute MD5 message digest of files or memory blocks. + according to the definition of MD5 in RFC 1321 from April 1992. + Copyright (C) 1995-1997, 1999-2001, 2005-2006, 2008-2021 Free Software + Foundation, Inc. + This file is part of the GNU C Library. + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +/* Written by Ulrich Drepper , 1995. */ + +#include + +/* Specification. */ +#if HAVE_OPENSSL_MD5 +# define GL_OPENSSL_INLINE _GL_EXTERN_INLINE +#endif +#include "md5.h" + +#include + +#if USE_UNLOCKED_IO +# include "unlocked-io.h" +#endif + +#include "af_alg.h" + +#ifdef _LIBC +# include +# if __BYTE_ORDER == __BIG_ENDIAN +# define WORDS_BIGENDIAN 1 +# endif +/* We need to keep the namespace clean so define the MD5 function + protected using leading __ . */ +# define md5_init_ctx __md5_init_ctx +# define md5_process_block __md5_process_block +# define md5_process_bytes __md5_process_bytes +# define md5_finish_ctx __md5_finish_ctx +# define md5_stream __md5_stream +#endif + +#define BLOCKSIZE 32768 +#if BLOCKSIZE % 64 != 0 +# error "invalid BLOCKSIZE" +#endif + +/* Compute MD5 message digest for bytes read from STREAM. The + resulting message digest number will be written into the 16 bytes + beginning at RESBLOCK. */ +int +md5_stream (FILE *stream, void *resblock) +{ + switch (afalg_stream (stream, "md5", resblock, MD5_DIGEST_SIZE)) + { + case 0: return 0; + case -EIO: return 1; + } + + char *buffer = malloc (BLOCKSIZE + 72); + if (!buffer) + return 1; + + struct md5_ctx ctx; + md5_init_ctx (&ctx); + size_t sum; + + /* Iterate over full file contents. */ + while (1) + { + /* We read the file in blocks of BLOCKSIZE bytes. One call of the + computation function processes the whole buffer so that with the + next round of the loop another block can be read. */ + size_t n; + sum = 0; + + /* Read block. Take care for partial reads. */ + while (1) + { + /* Either process a partial fread() from this loop, + or the fread() in afalg_stream may have gotten EOF. + We need to avoid a subsequent fread() as EOF may + not be sticky. For details of such systems, see: + https://sourceware.org/bugzilla/show_bug.cgi?id=1190 */ + if (feof (stream)) + goto process_partial_block; + + n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream); + + sum += n; + + if (sum == BLOCKSIZE) + break; + + if (n == 0) + { + /* Check for the error flag IFF N == 0, so that we don't + exit the loop after a partial read due to e.g., EAGAIN + or EWOULDBLOCK. */ + if (ferror (stream)) + { + free (buffer); + return 1; + } + goto process_partial_block; + } + } + + /* Process buffer with BLOCKSIZE bytes. Note that + BLOCKSIZE % 64 == 0 + */ + md5_process_block (buffer, BLOCKSIZE, &ctx); + } + +process_partial_block: + + /* Process any remaining bytes. */ + if (sum > 0) + md5_process_bytes (buffer, sum, &ctx); + + /* Construct result in desired memory. */ + md5_finish_ctx (&ctx, resblock); + free (buffer); + return 0; +} + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 index dd5bde8d79..a795fe7651 100644 --- a/m4/gnulib-comp.m4 +++ b/m4/gnulib-comp.m4 @@ -63,6 +63,7 @@ AC_DEFUN # Code from module count-leading-zeros: # Code from module count-one-bits: # Code from module count-trailing-zeros: + # Code from module crypto/md5: # Code from module crypto/md5-buffer: # Code from module crypto/sha1-buffer: # Code from module crypto/sha256-buffer: @@ -1207,6 +1208,7 @@ AC_DEFUN lib/malloc/scratch_buffer_grow.c lib/malloc/scratch_buffer_grow_preserve.c lib/malloc/scratch_buffer_set_array_size.c + lib/md5-stream.c lib/md5.c lib/md5.h lib/memmem.c -- 2.33.0.363.g4c719308ce --=-=-= Content-Type: text/plain Robert -- --=-=-=--