diff options
author | Fabian Groffen <grobian@gentoo.org> | 2024-01-02 08:56:41 +0100 |
---|---|---|
committer | Fabian Groffen <grobian@gentoo.org> | 2024-01-02 08:56:41 +0100 |
commit | 45d114a4178365ac70c30312ff2f4f47d3a66108 (patch) | |
tree | bfc2ae09f9370f2b99572cf191a53d08948faca0 | |
parent | buildsys: no longer use OpenSSL for hash implementations (diff) | |
download | portage-utils-45d114a4178365ac70c30312ff2f4f47d3a66108.tar.gz portage-utils-45d114a4178365ac70c30312ff2f4f47d3a66108.tar.bz2 portage-utils-45d114a4178365ac70c30312ff2f4f47d3a66108.zip |
buildsys: regen
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
68 files changed, 7486 insertions, 643 deletions
diff --git a/Makefile.in b/Makefile.in index b4496a9d..39238c7c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -95,9 +95,6 @@ bin_PROGRAMS = q$(EXEEXT) @QMANIFEST_ENABLED_TRUE@am__append_3 = man/qmanifest.1 @QMANIFEST_ENABLED_TRUE@am__append_4 = qmanifest -@QTEGRITY_ENABLED_TRUE@am__append_5 = qtegrity.c -@QTEGRITY_ENABLED_TRUE@am__append_6 = man/qtegrity.1 -@QTEGRITY_ENABLED_TRUE@am__append_7 = qtegrity subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ @@ -108,6 +105,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -155,6 +153,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -177,6 +176,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -210,11 +210,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -270,16 +274,15 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) am__q_SOURCES_DIST = main.c q.c qatom.c qcheck.c qdepends.c qfile.c \ qgrep.c qkeyword.c qlist.c qlop.c qmerge.c qpkg.c qsearch.c \ - qsize.c qtbz2.c quse.c qwhich.c qxpak.c qmanifest.c qtegrity.c + qsize.c qtbz2.c qtegrity.c quse.c qwhich.c qxpak.c qmanifest.c @QMANIFEST_ENABLED_TRUE@am__objects_1 = q-qmanifest.$(OBJEXT) -@QTEGRITY_ENABLED_TRUE@am__objects_2 = q-qtegrity.$(OBJEXT) am_q_OBJECTS = q-main.$(OBJEXT) q-q.$(OBJEXT) q-qatom.$(OBJEXT) \ q-qcheck.$(OBJEXT) q-qdepends.$(OBJEXT) q-qfile.$(OBJEXT) \ q-qgrep.$(OBJEXT) q-qkeyword.$(OBJEXT) q-qlist.$(OBJEXT) \ q-qlop.$(OBJEXT) q-qmerge.$(OBJEXT) q-qpkg.$(OBJEXT) \ q-qsearch.$(OBJEXT) q-qsize.$(OBJEXT) q-qtbz2.$(OBJEXT) \ - q-quse.$(OBJEXT) q-qwhich.$(OBJEXT) q-qxpak.$(OBJEXT) \ - $(am__objects_1) $(am__objects_2) + q-qtegrity.$(OBJEXT) q-quse.$(OBJEXT) q-qwhich.$(OBJEXT) \ + q-qxpak.$(OBJEXT) $(am__objects_1) q_OBJECTS = $(am_q_OBJECTS) am__DEPENDENCIES_1 = q_DEPENDENCIES = $(top_builddir)/libq/libq.a \ @@ -467,6 +470,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1320,11 +1324,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ @@ -1785,29 +1788,28 @@ SUBDIRS = \ $(NULL) APPLETS = q qatom qcheck qdepends qfile qgrep qkeyword qlist qlop \ - qmerge qpkg qsearch qsize qtbz2 quse qwhich qxpak $(NULL) \ - $(am__append_4) $(am__append_7) + qmerge qpkg qsearch qsize qtbz2 qtegrity quse qwhich qxpak \ + $(NULL) $(am__append_4) dist_man_MANS = man/q.1 man/qatom.1 man/qcheck.1 man/qdepends.1 \ man/qfile.1 man/qgrep.1 man/qkeyword.1 man/qlist.1 man/qlop.1 \ man/qmerge.1 man/qpkg.1 man/qsearch.1 man/qsize.1 man/qtbz2.1 \ - man/quse.1 man/qwhich.1 man/qxpak.1 $(NULL) $(am__append_3) \ - $(am__append_6) + man/qtegrity.1 man/quse.1 man/qwhich.1 man/qxpak.1 $(NULL) \ + $(am__append_3) q_SOURCES = main.c q.c qatom.c qcheck.c qdepends.c qfile.c qgrep.c \ qkeyword.c qlist.c qlop.c qmerge.c qpkg.c qsearch.c qsize.c \ - qtbz2.c quse.c qwhich.c qxpak.c $(NULL) $(am__append_1) \ - $(am__append_5) + qtbz2.c qtegrity.c quse.c qwhich.c qxpak.c $(NULL) \ + $(am__append_1) q_CPPFLAGS = -I$(top_srcdir)/libq -I$(top_builddir)/autotools/gnulib \ -I$(top_srcdir)/autotools/gnulib $(OPENMP_CFLAGS) \ - $(LIBSSL_CFLAGS) $(LIBBL2_CFLAGS) $(LIBZ_CFLAGS) $(NULL) \ - $(am__append_2) + $(LIBBL2_CFLAGS) $(LIBZ_CFLAGS) $(NULL) $(am__append_2) q_LDADD = \ $(top_builddir)/libq/libq.a \ $(top_builddir)/autotools/gnulib/libgnu.a \ $(OPENMP_CFLAGS) \ - $(LIBSSL_LIBS) \ $(LIBBL2_LIBS) \ $(LIBZ_LIBS) \ $(GPGME_LIBS) \ + $(LIB_CRYPTO) \ $(LIB_CLOCK_GETTIME) \ $(LIB_EACCESS) \ $(SENDFILE_LIBS) \ @@ -2176,6 +2178,20 @@ q-qtbz2.obj: qtbz2.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(q_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o q-qtbz2.obj `if test -f 'qtbz2.c'; then $(CYGPATH_W) 'qtbz2.c'; else $(CYGPATH_W) '$(srcdir)/qtbz2.c'; fi` +q-qtegrity.o: qtegrity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(q_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT q-qtegrity.o -MD -MP -MF $(DEPDIR)/q-qtegrity.Tpo -c -o q-qtegrity.o `test -f 'qtegrity.c' || echo '$(srcdir)/'`qtegrity.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/q-qtegrity.Tpo $(DEPDIR)/q-qtegrity.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qtegrity.c' object='q-qtegrity.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(q_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o q-qtegrity.o `test -f 'qtegrity.c' || echo '$(srcdir)/'`qtegrity.c + +q-qtegrity.obj: qtegrity.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(q_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT q-qtegrity.obj -MD -MP -MF $(DEPDIR)/q-qtegrity.Tpo -c -o q-qtegrity.obj `if test -f 'qtegrity.c'; then $(CYGPATH_W) 'qtegrity.c'; else $(CYGPATH_W) '$(srcdir)/qtegrity.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/q-qtegrity.Tpo $(DEPDIR)/q-qtegrity.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qtegrity.c' object='q-qtegrity.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(q_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o q-qtegrity.obj `if test -f 'qtegrity.c'; then $(CYGPATH_W) 'qtegrity.c'; else $(CYGPATH_W) '$(srcdir)/qtegrity.c'; fi` + q-quse.o: quse.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(q_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT q-quse.o -MD -MP -MF $(DEPDIR)/q-quse.Tpo -c -o q-quse.o `test -f 'quse.c' || echo '$(srcdir)/'`quse.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/q-quse.Tpo $(DEPDIR)/q-quse.Po @@ -2231,20 +2247,6 @@ q-qmanifest.obj: qmanifest.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qmanifest.c' object='q-qmanifest.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(q_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o q-qmanifest.obj `if test -f 'qmanifest.c'; then $(CYGPATH_W) 'qmanifest.c'; else $(CYGPATH_W) '$(srcdir)/qmanifest.c'; fi` - -q-qtegrity.o: qtegrity.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(q_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT q-qtegrity.o -MD -MP -MF $(DEPDIR)/q-qtegrity.Tpo -c -o q-qtegrity.o `test -f 'qtegrity.c' || echo '$(srcdir)/'`qtegrity.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/q-qtegrity.Tpo $(DEPDIR)/q-qtegrity.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qtegrity.c' object='q-qtegrity.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(q_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o q-qtegrity.o `test -f 'qtegrity.c' || echo '$(srcdir)/'`qtegrity.c - -q-qtegrity.obj: qtegrity.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(q_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT q-qtegrity.obj -MD -MP -MF $(DEPDIR)/q-qtegrity.Tpo -c -o q-qtegrity.obj `if test -f 'qtegrity.c'; then $(CYGPATH_W) 'qtegrity.c'; else $(CYGPATH_W) '$(srcdir)/qtegrity.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/q-qtegrity.Tpo $(DEPDIR)/q-qtegrity.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qtegrity.c' object='q-qtegrity.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(q_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o q-qtegrity.obj `if test -f 'qtegrity.c'; then $(CYGPATH_W) 'qtegrity.c'; else $(CYGPATH_W) '$(srcdir)/qtegrity.c'; fi` install-man1: $(dist_man_MANS) @$(NORMAL_INSTALL) @list1=''; \ diff --git a/autotools/gnulib/Makefile.am b/autotools/gnulib/Makefile.am index a16a8531..ca0a4dae 100644 --- a/autotools/gnulib/Makefile.am +++ b/autotools/gnulib/Makefile.am @@ -33,6 +33,10 @@ # --no-libtool \ # --macro-prefix=gl \ # --no-vc-files \ +# crypto/md5-buffer \ +# crypto/sha1-buffer \ +# crypto/sha256-buffer \ +# crypto/sha512-buffer \ # dirent \ # faccessat \ # fdopendir \ @@ -181,6 +185,26 @@ EXTRA_DIST += basename-lgpl.h ## end gnulib module basename-lgpl +## begin gnulib module byteswap + +BUILT_SOURCES += $(BYTESWAP_H) + +# We need the following in order to create <byteswap.h> when the system +# doesn't have one. +if GL_GENERATE_BYTESWAP_H +byteswap.h: byteswap.in.h $(top_builddir)/config.status + $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/byteswap.in.h + $(AM_V_at)mv $@-t $@ +else +byteswap.h: $(top_builddir)/config.status + rm -f $@ +endif +MOSTLYCLEANFILES += byteswap.h byteswap.h-t + +EXTRA_DIST += byteswap.in.h + +## end gnulib module byteswap + ## begin gnulib module calloc-gnu @@ -243,6 +267,38 @@ EXTRA_DIST += dirent-private.h ## end gnulib module closedir +## begin gnulib module crypto/md5-buffer + +libgnu_a_SOURCES += md5.c + +EXTRA_DIST += gl_openssl.h md5.h + +## end gnulib module crypto/md5-buffer + +## begin gnulib module crypto/sha1-buffer + +libgnu_a_SOURCES += sha1.c + +EXTRA_DIST += gl_openssl.h sha1.h + +## end gnulib module crypto/sha1-buffer + +## begin gnulib module crypto/sha256-buffer + +libgnu_a_SOURCES += sha256.c + +EXTRA_DIST += gl_openssl.h sha256.h + +## end gnulib module crypto/sha256-buffer + +## begin gnulib module crypto/sha512-buffer + +libgnu_a_SOURCES += sha512.c + +EXTRA_DIST += gl_openssl.h sha512.h + +## end gnulib module crypto/sha512-buffer + ## begin gnulib module dirent BUILT_SOURCES += dirent.h @@ -2454,6 +2510,14 @@ EXTRA_DIST += timespec.h ## end gnulib module timespec +## begin gnulib module u64 + +libgnu_a_SOURCES += u64.c + +EXTRA_DIST += u64.h + +## end gnulib module u64 + ## begin gnulib module unistd BUILT_SOURCES += unistd.h diff --git a/autotools/gnulib/Makefile.in b/autotools/gnulib/Makefile.in index 87a5c460..43d22ba3 100644 --- a/autotools/gnulib/Makefile.in +++ b/autotools/gnulib/Makefile.in @@ -47,6 +47,10 @@ # --no-libtool \ # --macro-prefix=gl \ # --no-vc-files \ +# crypto/md5-buffer \ +# crypto/sha1-buffer \ +# crypto/sha256-buffer \ +# crypto/sha512-buffer \ # dirent \ # faccessat \ # fdopendir \ @@ -221,6 +225,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -268,6 +273,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -290,6 +296,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -323,11 +330,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -387,9 +398,10 @@ libgnu_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = am__libgnu_a_SOURCES_DIST = access.c openat-priv.h openat-proc.c \ basename-lgpl.c canonicalize-lgpl.c chdir-long.c cloexec.c \ - close.c closedir.c dirfd.c dirname-lgpl.c stripslash.c dup.c \ - dup2.c error.c euidaccess.c exitfail.c faccessat.c fchdir.c \ - fcntl.c fd-hook.c fd-safer-flag.c dup-safer-flag.c fdopendir.c \ + close.c closedir.c md5.c sha1.c sha256.c sha512.c dirfd.c \ + dirname-lgpl.c stripslash.c dup.c dup2.c error.c euidaccess.c \ + exitfail.c faccessat.c fchdir.c fcntl.c fd-hook.c \ + fd-safer-flag.c dup-safer-flag.c fdopendir.c \ filenamecat-lgpl.c float.c itold.c free.c fstat.c fstatat.c \ futimens.c getcwd-lgpl.c getdelim.c getdtablesize.c \ getgroups.c getline.c getopt.c getopt1.c getprogname.c \ @@ -406,7 +418,7 @@ am__libgnu_a_SOURCES_DIST = access.c openat-priv.h openat-proc.c \ signbitd.c signbitl.c size_max.h stat.c stat-time.c \ stdio-read.c stdio-write.c strcasecmp.c strncasecmp.c strdup.c \ strerror.c strerror-override.c strncat.c strtoll.c symlink.c \ - symlinkat.c timespec.c unistd.c dup-safer.c fd-safer.c \ + symlinkat.c timespec.c u64.c unistd.c dup-safer.c fd-safer.c \ pipe-safer.c unlink.c unlinkat.c utime.c utimens.c utimensat.c \ xmalloc.c xalloc-die.c xsize.h xsize.c @GL_COND_OBJ_ACCESS_TRUE@am__objects_1 = libgnu_a-access.$(OBJEXT) @@ -505,7 +517,9 @@ am__dirstamp = $(am__leading_dot)dirstamp am_libgnu_a_OBJECTS = $(am__objects_1) libgnu_a-openat-proc.$(OBJEXT) \ libgnu_a-basename-lgpl.$(OBJEXT) $(am__objects_2) \ $(am__objects_3) libgnu_a-cloexec.$(OBJEXT) $(am__objects_4) \ - $(am__objects_5) $(am__objects_6) \ + $(am__objects_5) libgnu_a-md5.$(OBJEXT) \ + libgnu_a-sha1.$(OBJEXT) libgnu_a-sha256.$(OBJEXT) \ + libgnu_a-sha512.$(OBJEXT) $(am__objects_6) \ libgnu_a-dirname-lgpl.$(OBJEXT) libgnu_a-stripslash.$(OBJEXT) \ $(am__objects_7) $(am__objects_8) $(am__objects_9) \ $(am__objects_10) libgnu_a-exitfail.$(OBJEXT) \ @@ -540,12 +554,12 @@ am_libgnu_a_OBJECTS = $(am__objects_1) libgnu_a-openat-proc.$(OBJEXT) \ $(am__objects_55) $(am__objects_56) $(am__objects_57) \ $(am__objects_58) $(am__objects_59) $(am__objects_60) \ $(am__objects_61) libgnu_a-timespec.$(OBJEXT) \ - libgnu_a-unistd.$(OBJEXT) libgnu_a-dup-safer.$(OBJEXT) \ - libgnu_a-fd-safer.$(OBJEXT) libgnu_a-pipe-safer.$(OBJEXT) \ - $(am__objects_62) $(am__objects_63) $(am__objects_64) \ - libgnu_a-utimens.$(OBJEXT) $(am__objects_65) \ - libgnu_a-xmalloc.$(OBJEXT) libgnu_a-xalloc-die.$(OBJEXT) \ - libgnu_a-xsize.$(OBJEXT) + libgnu_a-u64.$(OBJEXT) libgnu_a-unistd.$(OBJEXT) \ + libgnu_a-dup-safer.$(OBJEXT) libgnu_a-fd-safer.$(OBJEXT) \ + libgnu_a-pipe-safer.$(OBJEXT) $(am__objects_62) \ + $(am__objects_63) $(am__objects_64) libgnu_a-utimens.$(OBJEXT) \ + $(am__objects_65) libgnu_a-xmalloc.$(OBJEXT) \ + libgnu_a-xalloc-die.$(OBJEXT) libgnu_a-xsize.$(OBJEXT) libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -605,8 +619,8 @@ am__depfiles_remade = ./$(DEPDIR)/libgnu_a-access.Po \ ./$(DEPDIR)/libgnu_a-isnanl.Po ./$(DEPDIR)/libgnu_a-itold.Po \ ./$(DEPDIR)/libgnu_a-lstat.Po ./$(DEPDIR)/libgnu_a-malloc.Po \ ./$(DEPDIR)/libgnu_a-malloca.Po ./$(DEPDIR)/libgnu_a-math.Po \ - ./$(DEPDIR)/libgnu_a-mbszero.Po ./$(DEPDIR)/libgnu_a-memchr.Po \ - ./$(DEPDIR)/libgnu_a-mempcpy.Po \ + ./$(DEPDIR)/libgnu_a-mbszero.Po ./$(DEPDIR)/libgnu_a-md5.Po \ + ./$(DEPDIR)/libgnu_a-memchr.Po ./$(DEPDIR)/libgnu_a-mempcpy.Po \ ./$(DEPDIR)/libgnu_a-memrchr.Po ./$(DEPDIR)/libgnu_a-mkdir.Po \ ./$(DEPDIR)/libgnu_a-mkdirat.Po \ ./$(DEPDIR)/libgnu_a-msvc-inval.Po \ @@ -631,7 +645,8 @@ am__depfiles_remade = ./$(DEPDIR)/libgnu_a-access.Po \ ./$(DEPDIR)/libgnu_a-renameatu.Po \ ./$(DEPDIR)/libgnu_a-rmdir.Po \ ./$(DEPDIR)/libgnu_a-same-inode.Po \ - ./$(DEPDIR)/libgnu_a-save-cwd.Po \ + ./$(DEPDIR)/libgnu_a-save-cwd.Po ./$(DEPDIR)/libgnu_a-sha1.Po \ + ./$(DEPDIR)/libgnu_a-sha256.Po ./$(DEPDIR)/libgnu_a-sha512.Po \ ./$(DEPDIR)/libgnu_a-signbitd.Po \ ./$(DEPDIR)/libgnu_a-signbitf.Po \ ./$(DEPDIR)/libgnu_a-signbitl.Po \ @@ -650,7 +665,7 @@ am__depfiles_remade = ./$(DEPDIR)/libgnu_a-access.Po \ ./$(DEPDIR)/libgnu_a-strtoll.Po \ ./$(DEPDIR)/libgnu_a-symlink.Po \ ./$(DEPDIR)/libgnu_a-symlinkat.Po \ - ./$(DEPDIR)/libgnu_a-timespec.Po \ + ./$(DEPDIR)/libgnu_a-timespec.Po ./$(DEPDIR)/libgnu_a-u64.Po \ ./$(DEPDIR)/libgnu_a-unistd.Po ./$(DEPDIR)/libgnu_a-unlink.Po \ ./$(DEPDIR)/libgnu_a-unlinkat.Po ./$(DEPDIR)/libgnu_a-utime.Po \ ./$(DEPDIR)/libgnu_a-utimens.Po \ @@ -766,6 +781,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1619,11 +1635,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ @@ -2081,45 +2096,47 @@ noinst_HEADERS = noinst_LIBRARIES = libgnu.a noinst_LTLIBRARIES = EXTRA_DIST = alloca.in.h assert.in.h verify.h assure.h attribute.h \ - basename-lgpl.h calloc.c calloc.c chdir-long.h cloexec.h \ - dirent-private.h dirent.in.h dirent-private.h dirname.h \ - eloop-threshold.h errno.in.h error.in.h exitfail.h at-func.c \ - fcntl.in.h fd-hook.h dirent-private.h filename.h filenamecat.h \ - float.in.h fpucw.h frexp.c frexp.c frexpl.c stat-w32.c \ - stat-w32.h at-func.c getopt-cdefs.in.h getopt-core.h \ - getopt-ext.h getopt-pfx-core.h getopt-pfx-ext.h getopt.in.h \ - getopt_int.h getprogname.h malloc/scratch_buffer.h \ - scratch_buffer.h ialloc.h intprops-internal.h intprops.h \ - inttypes.in.h float+.h isnan.c isnand-nolibm.h isnand.c \ - float+.h isnan.c isnanf-nolibm.h isnanf.c float+.h isnan.c \ - isnanl-nolibm.h isnanl.c cdefs.h libc-config.h limits.in.h \ - malloc.c malloc.c malloca.h math.in.h memchr.valgrind \ - at-func.c msvc-inval.h msvc-nothrow.h openat.h \ - dirent-private.h pathmax.h printf-frexp.h printf-frexp.c \ - printf-frexpl.h rawmemchr.valgrind at-func.c realloc.c \ - realloc.c at-func2.c at-func2.c renameatu.h root-uid.h \ - save-cwd.h float+.h _Noreturn.h arg-nonnull.h c++defs.h \ - warn-on-use.h stat-w32.c stat-w32.h stat-time.h \ - intprops-internal.h stdckdint.in.h stddef.in.h stdint.in.h \ - stdio.in.h stdlib.in.h str-two-way.h strcasestr.c \ - strerror-override.h string.in.h strings.in.h strtol.c \ - at-func.c sys_stat.in.h sys_time.in.h sys_types.in.h time.in.h \ - timespec.h unistd.in.h unistd--.h unistd-safer.h at-func.c \ - utime.in.h utimens.h at-func.c asnprintf.c float+.h \ - printf-args.c printf-args.h printf-parse.c printf-parse.h \ - vasnprintf.c vasnprintf.h asprintf.c vasprintf.c verify.h \ - wchar.in.h xalloc.h xalloc.h xalloc-oversized.h -BUILT_SOURCES = $(ALLOCA_H) $(ASSERT_H) dirent.h $(ERRNO_H) error.h \ - fcntl.h $(FLOAT_H) $(GETOPT_H) $(GETOPT_CDEFS_H) \ - malloc/scratch_buffer.gl.h inttypes.h $(LIMITS_H) math.h \ - $(STDCKDINT_H) $(STDDEF_H) $(STDINT_H) stdio.h stdlib.h \ - string.h strings.h sys/stat.h sys/time.h sys/types.h time.h \ - unistd.h utime.h wchar.h + basename-lgpl.h byteswap.in.h calloc.c calloc.c chdir-long.h \ + cloexec.h dirent-private.h gl_openssl.h md5.h gl_openssl.h \ + sha1.h gl_openssl.h sha256.h gl_openssl.h sha512.h dirent.in.h \ + dirent-private.h dirname.h eloop-threshold.h errno.in.h \ + error.in.h exitfail.h at-func.c fcntl.in.h fd-hook.h \ + dirent-private.h filename.h filenamecat.h float.in.h fpucw.h \ + frexp.c frexp.c frexpl.c stat-w32.c stat-w32.h at-func.c \ + getopt-cdefs.in.h getopt-core.h getopt-ext.h getopt-pfx-core.h \ + getopt-pfx-ext.h getopt.in.h getopt_int.h getprogname.h \ + malloc/scratch_buffer.h scratch_buffer.h ialloc.h \ + intprops-internal.h intprops.h inttypes.in.h float+.h isnan.c \ + isnand-nolibm.h isnand.c float+.h isnan.c isnanf-nolibm.h \ + isnanf.c float+.h isnan.c isnanl-nolibm.h isnanl.c cdefs.h \ + libc-config.h limits.in.h malloc.c malloc.c malloca.h \ + math.in.h memchr.valgrind at-func.c msvc-inval.h \ + msvc-nothrow.h openat.h dirent-private.h pathmax.h \ + printf-frexp.h printf-frexp.c printf-frexpl.h \ + rawmemchr.valgrind at-func.c realloc.c realloc.c at-func2.c \ + at-func2.c renameatu.h root-uid.h save-cwd.h float+.h \ + _Noreturn.h arg-nonnull.h c++defs.h warn-on-use.h stat-w32.c \ + stat-w32.h stat-time.h intprops-internal.h stdckdint.in.h \ + stddef.in.h stdint.in.h stdio.in.h stdlib.in.h str-two-way.h \ + strcasestr.c strerror-override.h string.in.h strings.in.h \ + strtol.c at-func.c sys_stat.in.h sys_time.in.h sys_types.in.h \ + time.in.h timespec.h u64.h unistd.in.h unistd--.h \ + unistd-safer.h at-func.c utime.in.h utimens.h at-func.c \ + asnprintf.c float+.h printf-args.c printf-args.h \ + printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h \ + asprintf.c vasprintf.c verify.h wchar.in.h xalloc.h xalloc.h \ + xalloc-oversized.h +BUILT_SOURCES = $(ALLOCA_H) $(ASSERT_H) $(BYTESWAP_H) dirent.h \ + $(ERRNO_H) error.h fcntl.h $(FLOAT_H) $(GETOPT_H) \ + $(GETOPT_CDEFS_H) malloc/scratch_buffer.gl.h inttypes.h \ + $(LIMITS_H) math.h $(STDCKDINT_H) $(STDDEF_H) $(STDINT_H) \ + stdio.h stdlib.h string.h strings.h sys/stat.h sys/time.h \ + sys/types.h time.h unistd.h utime.h wchar.h SUFFIXES = MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t assert.h \ - assert.h-t dirent.h dirent.h-t errno.h errno.h-t error.h \ - error.h-t fcntl.h fcntl.h-t float.h float.h-t getopt.h \ - getopt.h-t getopt-cdefs.h getopt-cdefs.h-t \ + assert.h-t byteswap.h byteswap.h-t dirent.h dirent.h-t errno.h \ + errno.h-t error.h error.h-t fcntl.h fcntl.h-t float.h \ + float.h-t getopt.h getopt.h-t getopt-cdefs.h getopt-cdefs.h-t \ malloc/scratch_buffer.gl.h malloc/scratch_buffer.gl.h-t \ inttypes.h inttypes.h-t limits.h limits.h-t math.h math.h-t1 \ math.h-t2 math.h-t3 math.h-t4 math.h-t5 math.h-t6 stdckdint.h \ @@ -2139,16 +2156,17 @@ AM_CPPFLAGS = AM_CFLAGS = libgnu_a_SOURCES = $(am__append_1) openat-priv.h openat-proc.c \ basename-lgpl.c $(am__append_2) $(am__append_3) cloexec.c \ - $(am__append_4) $(am__append_5) $(am__append_6) dirname-lgpl.c \ - stripslash.c $(am__append_7) $(am__append_8) $(am__append_9) \ - $(am__append_10) exitfail.c $(am__append_11) $(am__append_12) \ - $(am__append_13) fd-hook.c fd-safer-flag.c dup-safer-flag.c \ - $(am__append_14) filenamecat-lgpl.c $(am__append_15) \ - $(am__append_16) $(am__append_17) $(am__append_18) \ - $(am__append_19) $(am__append_20) $(am__append_21) \ - $(am__append_22) $(am__append_23) $(am__append_24) \ - $(am__append_25) $(am__append_26) $(am__append_27) gettext.h \ - gettime.c $(am__append_28) malloc/scratch_buffer_grow.c \ + $(am__append_4) $(am__append_5) md5.c sha1.c sha256.c sha512.c \ + $(am__append_6) dirname-lgpl.c stripslash.c $(am__append_7) \ + $(am__append_8) $(am__append_9) $(am__append_10) exitfail.c \ + $(am__append_11) $(am__append_12) $(am__append_13) fd-hook.c \ + fd-safer-flag.c dup-safer-flag.c $(am__append_14) \ + filenamecat-lgpl.c $(am__append_15) $(am__append_16) \ + $(am__append_17) $(am__append_18) $(am__append_19) \ + $(am__append_20) $(am__append_21) $(am__append_22) \ + $(am__append_23) $(am__append_24) $(am__append_25) \ + $(am__append_26) $(am__append_27) gettext.h gettime.c \ + $(am__append_28) malloc/scratch_buffer_grow.c \ malloc/scratch_buffer_grow_preserve.c \ malloc/scratch_buffer_set_array_size.c $(am__append_29) \ ialloc.c idx.h $(am__append_30) malloca.c math.c mbszero.c \ @@ -2164,9 +2182,9 @@ libgnu_a_SOURCES = $(am__append_1) openat-priv.h openat-proc.c \ $(am__append_53) $(am__append_54) $(am__append_55) \ $(am__append_56) $(am__append_57) $(am__append_58) \ $(am__append_59) $(am__append_60) $(am__append_61) timespec.c \ - unistd.c dup-safer.c fd-safer.c pipe-safer.c $(am__append_62) \ - $(am__append_63) $(am__append_64) utimens.c $(am__append_65) \ - xmalloc.c xalloc-die.c xsize.h xsize.c + u64.c unistd.c dup-safer.c fd-safer.c pipe-safer.c \ + $(am__append_62) $(am__append_63) $(am__append_64) utimens.c \ + $(am__append_65) xmalloc.c xalloc-die.c xsize.h xsize.c libgnu_a_CFLAGS = $(AM_CFLAGS) $(GL_CFLAG_GNULIB_WARNINGS) libgnu_a_LIBADD = $(gl_LIBOBJS) libgnu_a_DEPENDENCIES = $(gl_LIBOBJS) @@ -2348,6 +2366,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-malloca.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-math.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mbszero.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-md5.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-memchr.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-mempcpy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-memrchr.Po@am__quote@ # am--include-marker @@ -2377,6 +2396,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-rmdir.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-same-inode.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-save-cwd.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-sha1.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-sha256.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-sha512.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-signbitd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-signbitf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-signbitl.Po@am__quote@ # am--include-marker @@ -2398,6 +2420,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-symlink.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-symlinkat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-timespec.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-u64.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-unistd.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-unlink.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-unlinkat.Po@am__quote@ # am--include-marker @@ -2547,6 +2570,62 @@ libgnu_a-closedir.obj: closedir.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-closedir.obj `if test -f 'closedir.c'; then $(CYGPATH_W) 'closedir.c'; else $(CYGPATH_W) '$(srcdir)/closedir.c'; fi` +libgnu_a-md5.o: md5.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-md5.o -MD -MP -MF $(DEPDIR)/libgnu_a-md5.Tpo -c -o libgnu_a-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-md5.Tpo $(DEPDIR)/libgnu_a-md5.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='md5.c' object='libgnu_a-md5.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c + +libgnu_a-md5.obj: md5.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-md5.obj -MD -MP -MF $(DEPDIR)/libgnu_a-md5.Tpo -c -o libgnu_a-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-md5.Tpo $(DEPDIR)/libgnu_a-md5.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='md5.c' object='libgnu_a-md5.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi` + +libgnu_a-sha1.o: sha1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sha1.o -MD -MP -MF $(DEPDIR)/libgnu_a-sha1.Tpo -c -o libgnu_a-sha1.o `test -f 'sha1.c' || echo '$(srcdir)/'`sha1.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sha1.Tpo $(DEPDIR)/libgnu_a-sha1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sha1.c' object='libgnu_a-sha1.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sha1.o `test -f 'sha1.c' || echo '$(srcdir)/'`sha1.c + +libgnu_a-sha1.obj: sha1.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sha1.obj -MD -MP -MF $(DEPDIR)/libgnu_a-sha1.Tpo -c -o libgnu_a-sha1.obj `if test -f 'sha1.c'; then $(CYGPATH_W) 'sha1.c'; else $(CYGPATH_W) '$(srcdir)/sha1.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sha1.Tpo $(DEPDIR)/libgnu_a-sha1.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sha1.c' object='libgnu_a-sha1.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sha1.obj `if test -f 'sha1.c'; then $(CYGPATH_W) 'sha1.c'; else $(CYGPATH_W) '$(srcdir)/sha1.c'; fi` + +libgnu_a-sha256.o: sha256.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sha256.o -MD -MP -MF $(DEPDIR)/libgnu_a-sha256.Tpo -c -o libgnu_a-sha256.o `test -f 'sha256.c' || echo '$(srcdir)/'`sha256.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sha256.Tpo $(DEPDIR)/libgnu_a-sha256.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sha256.c' object='libgnu_a-sha256.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sha256.o `test -f 'sha256.c' || echo '$(srcdir)/'`sha256.c + +libgnu_a-sha256.obj: sha256.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sha256.obj -MD -MP -MF $(DEPDIR)/libgnu_a-sha256.Tpo -c -o libgnu_a-sha256.obj `if test -f 'sha256.c'; then $(CYGPATH_W) 'sha256.c'; else $(CYGPATH_W) '$(srcdir)/sha256.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sha256.Tpo $(DEPDIR)/libgnu_a-sha256.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sha256.c' object='libgnu_a-sha256.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sha256.obj `if test -f 'sha256.c'; then $(CYGPATH_W) 'sha256.c'; else $(CYGPATH_W) '$(srcdir)/sha256.c'; fi` + +libgnu_a-sha512.o: sha512.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sha512.o -MD -MP -MF $(DEPDIR)/libgnu_a-sha512.Tpo -c -o libgnu_a-sha512.o `test -f 'sha512.c' || echo '$(srcdir)/'`sha512.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sha512.Tpo $(DEPDIR)/libgnu_a-sha512.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sha512.c' object='libgnu_a-sha512.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sha512.o `test -f 'sha512.c' || echo '$(srcdir)/'`sha512.c + +libgnu_a-sha512.obj: sha512.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-sha512.obj -MD -MP -MF $(DEPDIR)/libgnu_a-sha512.Tpo -c -o libgnu_a-sha512.obj `if test -f 'sha512.c'; then $(CYGPATH_W) 'sha512.c'; else $(CYGPATH_W) '$(srcdir)/sha512.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-sha512.Tpo $(DEPDIR)/libgnu_a-sha512.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sha512.c' object='libgnu_a-sha512.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-sha512.obj `if test -f 'sha512.c'; then $(CYGPATH_W) 'sha512.c'; else $(CYGPATH_W) '$(srcdir)/sha512.c'; fi` + libgnu_a-dirfd.o: dirfd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-dirfd.o -MD -MP -MF $(DEPDIR)/libgnu_a-dirfd.Tpo -c -o libgnu_a-dirfd.o `test -f 'dirfd.c' || echo '$(srcdir)/'`dirfd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-dirfd.Tpo $(DEPDIR)/libgnu_a-dirfd.Po @@ -3695,6 +3774,20 @@ libgnu_a-timespec.obj: timespec.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-timespec.obj `if test -f 'timespec.c'; then $(CYGPATH_W) 'timespec.c'; else $(CYGPATH_W) '$(srcdir)/timespec.c'; fi` +libgnu_a-u64.o: u64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-u64.o -MD -MP -MF $(DEPDIR)/libgnu_a-u64.Tpo -c -o libgnu_a-u64.o `test -f 'u64.c' || echo '$(srcdir)/'`u64.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-u64.Tpo $(DEPDIR)/libgnu_a-u64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='u64.c' object='libgnu_a-u64.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-u64.o `test -f 'u64.c' || echo '$(srcdir)/'`u64.c + +libgnu_a-u64.obj: u64.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-u64.obj -MD -MP -MF $(DEPDIR)/libgnu_a-u64.Tpo -c -o libgnu_a-u64.obj `if test -f 'u64.c'; then $(CYGPATH_W) 'u64.c'; else $(CYGPATH_W) '$(srcdir)/u64.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-u64.Tpo $(DEPDIR)/libgnu_a-u64.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='u64.c' object='libgnu_a-u64.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-u64.obj `if test -f 'u64.c'; then $(CYGPATH_W) 'u64.c'; else $(CYGPATH_W) '$(srcdir)/u64.c'; fi` + libgnu_a-unistd.o: unistd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-unistd.o -MD -MP -MF $(DEPDIR)/libgnu_a-unistd.Tpo -c -o libgnu_a-unistd.o `test -f 'unistd.c' || echo '$(srcdir)/'`unistd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-unistd.Tpo $(DEPDIR)/libgnu_a-unistd.Po @@ -4408,6 +4501,7 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/libgnu_a-malloca.Po -rm -f ./$(DEPDIR)/libgnu_a-math.Po -rm -f ./$(DEPDIR)/libgnu_a-mbszero.Po + -rm -f ./$(DEPDIR)/libgnu_a-md5.Po -rm -f ./$(DEPDIR)/libgnu_a-memchr.Po -rm -f ./$(DEPDIR)/libgnu_a-mempcpy.Po -rm -f ./$(DEPDIR)/libgnu_a-memrchr.Po @@ -4437,6 +4531,9 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/libgnu_a-rmdir.Po -rm -f ./$(DEPDIR)/libgnu_a-same-inode.Po -rm -f ./$(DEPDIR)/libgnu_a-save-cwd.Po + -rm -f ./$(DEPDIR)/libgnu_a-sha1.Po + -rm -f ./$(DEPDIR)/libgnu_a-sha256.Po + -rm -f ./$(DEPDIR)/libgnu_a-sha512.Po -rm -f ./$(DEPDIR)/libgnu_a-signbitd.Po -rm -f ./$(DEPDIR)/libgnu_a-signbitf.Po -rm -f ./$(DEPDIR)/libgnu_a-signbitl.Po @@ -4458,6 +4555,7 @@ distclean: distclean-recursive -rm -f ./$(DEPDIR)/libgnu_a-symlink.Po -rm -f ./$(DEPDIR)/libgnu_a-symlinkat.Po -rm -f ./$(DEPDIR)/libgnu_a-timespec.Po + -rm -f ./$(DEPDIR)/libgnu_a-u64.Po -rm -f ./$(DEPDIR)/libgnu_a-unistd.Po -rm -f ./$(DEPDIR)/libgnu_a-unlink.Po -rm -f ./$(DEPDIR)/libgnu_a-unlinkat.Po @@ -4575,6 +4673,7 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/libgnu_a-malloca.Po -rm -f ./$(DEPDIR)/libgnu_a-math.Po -rm -f ./$(DEPDIR)/libgnu_a-mbszero.Po + -rm -f ./$(DEPDIR)/libgnu_a-md5.Po -rm -f ./$(DEPDIR)/libgnu_a-memchr.Po -rm -f ./$(DEPDIR)/libgnu_a-mempcpy.Po -rm -f ./$(DEPDIR)/libgnu_a-memrchr.Po @@ -4604,6 +4703,9 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/libgnu_a-rmdir.Po -rm -f ./$(DEPDIR)/libgnu_a-same-inode.Po -rm -f ./$(DEPDIR)/libgnu_a-save-cwd.Po + -rm -f ./$(DEPDIR)/libgnu_a-sha1.Po + -rm -f ./$(DEPDIR)/libgnu_a-sha256.Po + -rm -f ./$(DEPDIR)/libgnu_a-sha512.Po -rm -f ./$(DEPDIR)/libgnu_a-signbitd.Po -rm -f ./$(DEPDIR)/libgnu_a-signbitf.Po -rm -f ./$(DEPDIR)/libgnu_a-signbitl.Po @@ -4625,6 +4727,7 @@ maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/libgnu_a-symlink.Po -rm -f ./$(DEPDIR)/libgnu_a-symlinkat.Po -rm -f ./$(DEPDIR)/libgnu_a-timespec.Po + -rm -f ./$(DEPDIR)/libgnu_a-u64.Po -rm -f ./$(DEPDIR)/libgnu_a-unistd.Po -rm -f ./$(DEPDIR)/libgnu_a-unlink.Po -rm -f ./$(DEPDIR)/libgnu_a-unlinkat.Po @@ -4708,6 +4811,14 @@ uninstall-am: @GL_GENERATE_ASSERT_H_FALSE@assert.h: $(top_builddir)/config.status @GL_GENERATE_ASSERT_H_FALSE@ rm -f $@ +# We need the following in order to create <byteswap.h> when the system +# doesn't have one. +@GL_GENERATE_BYTESWAP_H_TRUE@byteswap.h: byteswap.in.h $(top_builddir)/config.status +@GL_GENERATE_BYTESWAP_H_TRUE@ $(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/byteswap.in.h +@GL_GENERATE_BYTESWAP_H_TRUE@ $(AM_V_at)mv $@-t $@ +@GL_GENERATE_BYTESWAP_H_FALSE@byteswap.h: $(top_builddir)/config.status +@GL_GENERATE_BYTESWAP_H_FALSE@ rm -f $@ + # We need the following in order to create <dirent.h> when the system # doesn't have one that works with the given compiler. dirent.h: dirent.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) diff --git a/autotools/gnulib/access.c b/autotools/gnulib/access.c new file mode 100644 index 00000000..c3bdbff4 --- /dev/null +++ b/autotools/gnulib/access.c @@ -0,0 +1,71 @@ +/* Test the access rights of a file. + Copyright (C) 2019-2024 Free Software Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +#include <config.h> + +/* Specification. */ +#include <unistd.h> + +#include <errno.h> +#include <fcntl.h> +#include <string.h> +#include <sys/types.h> +#include <sys/stat.h> + +#if defined _WIN32 && !defined __CYGWIN__ +# include <io.h> +#endif + +int +access (const char *file, int mode) +#undef access +{ + int ret; + +#if defined _WIN32 && !defined __CYGWIN__ + if ((mode & X_OK) != 0) + mode = (mode & ~X_OK) | R_OK; + ret = _access (file, mode); +#else + ret = access (file, mode); +#endif + +#if (defined _WIN32 && !defined __CYGWIN__) || ACCESS_TRAILING_SLASH_BUG +# if defined _WIN32 && !defined __CYGWIN__ + if (ret == 0 || errno == EINVAL) +# else + if (ret == 0) +# endif + { + size_t file_len = strlen (file); + if (file_len > 0 && file[file_len - 1] == '/') + { + struct stat st; + if (stat (file, &st) == 0) + { + if (! S_ISDIR (st.st_mode)) + { + errno = ENOTDIR; + return -1; + } + } + else + return (mode == F_OK && errno == EOVERFLOW ? 0 : -1); + } + } +#endif + return ret; +} diff --git a/autotools/gnulib/assert.in.h b/autotools/gnulib/assert.in.h new file mode 100644 index 00000000..6e4995e1 --- /dev/null +++ b/autotools/gnulib/assert.in.h @@ -0,0 +1,27 @@ +/* Substitute for and wrapper around <assert.h> + Copyright (C) 2011-2024 Free Software Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +/* Do not guard the include, since <assert.h> is supposed to define + the assert macro each time it is included. */ + +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ + +#@INCLUDE_NEXT@ @NEXT_ASSERT_H@ + +/* The definition of static_assert is copied here. */ diff --git a/autotools/gnulib/byteswap.h b/autotools/gnulib/byteswap.h new file mode 100644 index 00000000..48cc10f9 --- /dev/null +++ b/autotools/gnulib/byteswap.h @@ -0,0 +1,45 @@ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* byteswap.h - Byte swapping + Copyright (C) 2005, 2007, 2009-2024 Free Software Foundation, Inc. + Written by Oskar Liljeblad <oskar@osk.mine.nu>, 2005. + + 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 <https://www.gnu.org/licenses/>. */ + +#ifndef _GL_BYTESWAP_H +#define _GL_BYTESWAP_H + +/* Given an unsigned 16-bit argument X, return the value corresponding to + X with reversed byte order. */ +#define bswap_16(x) ((((x) & 0x00FF) << 8) | \ + (((x) & 0xFF00) >> 8)) + +/* Given an unsigned 32-bit argument X, return the value corresponding to + X with reversed byte order. */ +#define bswap_32(x) ((((x) & 0x000000FF) << 24) | \ + (((x) & 0x0000FF00) << 8) | \ + (((x) & 0x00FF0000) >> 8) | \ + (((x) & 0xFF000000) >> 24)) + +/* Given an unsigned 64-bit argument X, return the value corresponding to + X with reversed byte order. */ +#define bswap_64(x) ((((x) & 0x00000000000000FFULL) << 56) | \ + (((x) & 0x000000000000FF00ULL) << 40) | \ + (((x) & 0x0000000000FF0000ULL) << 24) | \ + (((x) & 0x00000000FF000000ULL) << 8) | \ + (((x) & 0x000000FF00000000ULL) >> 8) | \ + (((x) & 0x0000FF0000000000ULL) >> 24) | \ + (((x) & 0x00FF000000000000ULL) >> 40) | \ + (((x) & 0xFF00000000000000ULL) >> 56)) + +#endif /* _GL_BYTESWAP_H */ diff --git a/autotools/gnulib/byteswap.in.h b/autotools/gnulib/byteswap.in.h new file mode 100644 index 00000000..8e49efad --- /dev/null +++ b/autotools/gnulib/byteswap.in.h @@ -0,0 +1,44 @@ +/* byteswap.h - Byte swapping + Copyright (C) 2005, 2007, 2009-2024 Free Software Foundation, Inc. + Written by Oskar Liljeblad <oskar@osk.mine.nu>, 2005. + + 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 <https://www.gnu.org/licenses/>. */ + +#ifndef _GL_BYTESWAP_H +#define _GL_BYTESWAP_H + +/* Given an unsigned 16-bit argument X, return the value corresponding to + X with reversed byte order. */ +#define bswap_16(x) ((((x) & 0x00FF) << 8) | \ + (((x) & 0xFF00) >> 8)) + +/* Given an unsigned 32-bit argument X, return the value corresponding to + X with reversed byte order. */ +#define bswap_32(x) ((((x) & 0x000000FF) << 24) | \ + (((x) & 0x0000FF00) << 8) | \ + (((x) & 0x00FF0000) >> 8) | \ + (((x) & 0xFF000000) >> 24)) + +/* Given an unsigned 64-bit argument X, return the value corresponding to + X with reversed byte order. */ +#define bswap_64(x) ((((x) & 0x00000000000000FFULL) << 56) | \ + (((x) & 0x000000000000FF00ULL) << 40) | \ + (((x) & 0x0000000000FF0000ULL) << 24) | \ + (((x) & 0x00000000FF000000ULL) << 8) | \ + (((x) & 0x000000FF00000000ULL) >> 8) | \ + (((x) & 0x0000FF0000000000ULL) >> 24) | \ + (((x) & 0x00FF000000000000ULL) >> 40) | \ + (((x) & 0xFF00000000000000ULL) >> 56)) + +#endif /* _GL_BYTESWAP_H */ diff --git a/autotools/gnulib/error.in.h b/autotools/gnulib/error.in.h new file mode 100644 index 00000000..51f8cafd --- /dev/null +++ b/autotools/gnulib/error.in.h @@ -0,0 +1,216 @@ +/* Declarations for error-reporting functions. + Copyright (C) 1995-1997, 2003, 2006, 2008-2024 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 <https://www.gnu.org/licenses/>. */ + +#ifndef _@GUARD_PREFIX@_ERROR_H + +/* No @PRAGMA_SYSTEM_HEADER@ here, because it would prevent + -Wimplicit-fallthrough warnings for missing FALLTHROUGH after error(...) + or error_at_line(...) invocations. */ + +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_ERROR_H@ +# @INCLUDE_NEXT@ @NEXT_ERROR_H@ +#endif + +#ifndef _@GUARD_PREFIX@_ERROR_H +#define _@GUARD_PREFIX@_ERROR_H + +/* This file uses _GL_ATTRIBUTE_ALWAYS_INLINE, _GL_ATTRIBUTE_FORMAT, + _GL_ATTRIBUTE_MAYBE_UNUSED. */ +#if !_GL_CONFIG_H_INCLUDED + #error "Please include config.h first." +#endif + +/* Get 'unreachable'. */ +#include <stddef.h> + +/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM. */ +#include <stdio.h> + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +#if GNULIB_VFPRINTF_POSIX +# define _GL_ATTRIBUTE_SPEC_PRINTF_ERROR _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD +#else +# define _GL_ATTRIBUTE_SPEC_PRINTF_ERROR _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM +#endif + +/* Helper macro for supporting the compiler's control flow analysis better. + It evaluates its arguments only once. + Test case: Compile copy-file.c with "gcc -Wimplicit-fallthrough". */ +#if defined __GNUC__ || defined __clang__ +/* Use 'unreachable' to tell the compiler when the function call does not + return. */ +# define __gl_error_call1(function, status, ...) \ + ((function) (status, __VA_ARGS__), \ + (status) != 0 ? unreachable () : (void) 0) +/* If STATUS is a not a constant, the function call may or may not return; + therefore -Wimplicit-fallthrough will produce a warning. Use a compound + statement in order to evaluate STATUS only once. + If STATUS is a constant, we don't use a compound statement, because that + would trigger a -Wimplicit-fallthrough warning even when STATUS is != 0, + when not optimizing. This causes STATUS to be evaluated twice, but + that's OK since it does not have side effects. */ +# define __gl_error_call(function, status, ...) \ + (__builtin_constant_p (status) \ + ? __gl_error_call1 (function, status, __VA_ARGS__) \ + : __extension__ \ + ({ \ + int const __errstatus = status; \ + __gl_error_call1 (function, __errstatus, __VA_ARGS__); \ + })) +#else +# define __gl_error_call(function, status, ...) \ + (function) (status, __VA_ARGS__) +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Print a message with 'fprintf (stderr, FORMAT, ...)'; + if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). + If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ +#if @REPLACE_ERROR@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef error +# define error rpl_error +# endif +_GL_FUNCDECL_RPL (error, void, + (int __status, int __errnum, const char *__format, ...) + _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 4))); +_GL_CXXALIAS_RPL (error, void, + (int __status, int __errnum, const char *__format, ...)); +# ifndef _GL_NO_INLINE_ERROR +# undef error +# define error(status, ...) \ + __gl_error_call (rpl_error, status, __VA_ARGS__) +# endif +#else +# if ! @HAVE_ERROR@ +_GL_FUNCDECL_SYS (error, void, + (int __status, int __errnum, const char *__format, ...) + _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 4))); +# endif +_GL_CXXALIAS_SYS (error, void, + (int __status, int __errnum, const char *__format, ...)); +# ifndef _GL_NO_INLINE_ERROR +# ifdef error +/* Only gcc ≥ 4.7 has __builtin_va_arg_pack. */ +# if _GL_GNUC_PREREQ (4, 7) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wattributes" +_GL_ATTRIBUTE_MAYBE_UNUSED +static void +_GL_ATTRIBUTE_ALWAYS_INLINE +_GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 4)) +_gl_inline_error (int __status, int __errnum, const char *__format, ...) +{ + return error (__status, __errnum, __format, __builtin_va_arg_pack ()); +} +# pragma GCC diagnostic pop +# undef error +# define error(status, ...) \ + __gl_error_call (_gl_inline_error, status, __VA_ARGS__) +# endif +# else +# define error(status, ...) \ + __gl_error_call (error, status, __VA_ARGS__) +# endif +# endif +#endif +#if __GLIBC__ >= 2 +_GL_CXXALIASWARN (error); +#endif + +/* Likewise. If FILENAME is non-NULL, include FILENAME:LINENO: in the + message. */ +#if @REPLACE_ERROR_AT_LINE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef error_at_line +# define error_at_line rpl_error_at_line +# endif +_GL_FUNCDECL_RPL (error_at_line, void, + (int __status, int __errnum, const char *__filename, + unsigned int __lineno, const char *__format, ...) + _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 6))); +_GL_CXXALIAS_RPL (error_at_line, void, + (int __status, int __errnum, const char *__filename, + unsigned int __lineno, const char *__format, ...)); +# ifndef _GL_NO_INLINE_ERROR +# undef error_at_line +# define error_at_line(status, ...) \ + __gl_error_call (rpl_error_at_line, status, __VA_ARGS__) +# endif +#else +# if ! @HAVE_ERROR_AT_LINE@ +_GL_FUNCDECL_SYS (error_at_line, void, + (int __status, int __errnum, const char *__filename, + unsigned int __lineno, const char *__format, ...) + _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 6))); +# endif +_GL_CXXALIAS_SYS (error_at_line, void, + (int __status, int __errnum, const char *__filename, + unsigned int __lineno, const char *__format, ...)); +# ifndef _GL_NO_INLINE_ERROR +# ifdef error_at_line +/* Only gcc ≥ 4.7 has __builtin_va_arg_pack. */ +# if _GL_GNUC_PREREQ (4, 7) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wattributes" +_GL_ATTRIBUTE_MAYBE_UNUSED +static void +_GL_ATTRIBUTE_ALWAYS_INLINE +_GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 6)) +_gl_inline_error_at_line (int __status, int __errnum, const char *__filename, + unsigned int __lineno, const char *__format, ...) +{ + return error_at_line (__status, __errnum, __filename, __lineno, __format, + __builtin_va_arg_pack ()); +} +# pragma GCC diagnostic pop +# undef error_at_line +# define error_at_line(status, ...) \ + __gl_error_call (_gl_inline_error_at_line, status, __VA_ARGS__) +# endif +# else +# define error_at_line(status, ...) \ + __gl_error_call (error_at_line, status, __VA_ARGS__) +# endif +# endif +#endif +_GL_CXXALIASWARN (error_at_line); + +/* If NULL, error will flush stdout, then print on stderr the program + name, a colon and a space. Otherwise, error will call this + function without parameters instead. */ +extern void (*error_print_progname) (void); + +/* This variable is incremented each time 'error' is called. */ +extern unsigned int error_message_count; + +/* Sometimes we want to have at most one error per line. This + variable controls whether this mode is selected or not. */ +extern int error_one_per_line; + +#ifdef __cplusplus +} +#endif + +#endif /* _@GUARD_PREFIX@_ERROR_H */ +#endif /* _@GUARD_PREFIX@_ERROR_H */ diff --git a/autotools/gnulib/gl_openssl.h b/autotools/gnulib/gl_openssl.h new file mode 100644 index 00000000..06864732 --- /dev/null +++ b/autotools/gnulib/gl_openssl.h @@ -0,0 +1,118 @@ +/* Wrap openssl crypto hash routines in gnulib interface. -*- coding: utf-8 -*- + + Copyright (C) 2013-2024 Free Software Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +/* Written by Pádraig Brady */ + +/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ +#if !_GL_CONFIG_H_INCLUDED + #error "Please include config.h first." +#endif + +#ifndef GL_OPENSSL_NAME +# error "Please define GL_OPENSSL_NAME to 1,5,256 etc." +#endif + +_GL_INLINE_HEADER_BEGIN +#ifndef GL_OPENSSL_INLINE +# define GL_OPENSSL_INLINE _GL_INLINE +#endif + +/* Concatenate two preprocessor tokens. */ +#define _GLCRYPTO_CONCAT_(prefix, suffix) prefix##suffix +#define _GLCRYPTO_CONCAT(prefix, suffix) _GLCRYPTO_CONCAT_ (prefix, suffix) + +#if GL_OPENSSL_NAME == 5 +# define OPENSSL_ALG md5 +#else +# define OPENSSL_ALG _GLCRYPTO_CONCAT (sha, GL_OPENSSL_NAME) +#endif + +/* Context type mappings. */ +#if BASE_OPENSSL_TYPE != GL_OPENSSL_NAME +# undef BASE_OPENSSL_TYPE +# if GL_OPENSSL_NAME == 224 +# define BASE_OPENSSL_TYPE 256 +# elif GL_OPENSSL_NAME == 384 +# define BASE_OPENSSL_TYPE 512 +# endif +# define md5_CTX MD5_CTX +# define sha1_CTX SHA_CTX +# define sha224_CTX SHA256_CTX +# define sha224_ctx sha256_ctx +# define sha256_CTX SHA256_CTX +# define sha384_CTX SHA512_CTX +# define sha384_ctx sha512_ctx +# define sha512_CTX SHA512_CTX +# undef _gl_CTX +# undef _gl_ctx +# define _gl_CTX _GLCRYPTO_CONCAT (OPENSSL_ALG, _CTX) /* openssl type. */ +# define _gl_ctx _GLCRYPTO_CONCAT (OPENSSL_ALG, _ctx) /* gnulib type. */ + +struct _gl_ctx { _gl_CTX CTX; }; +#endif + +/* Function name mappings. */ +#define md5_prefix MD5 +#define sha1_prefix SHA1 +#define sha224_prefix SHA224 +#define sha256_prefix SHA256 +#define sha384_prefix SHA384 +#define sha512_prefix SHA512 +#define _GLCRYPTO_PREFIX _GLCRYPTO_CONCAT (OPENSSL_ALG, _prefix) +#define OPENSSL_FN(suffix) _GLCRYPTO_CONCAT (_GLCRYPTO_PREFIX, suffix) +#define GL_CRYPTO_FN(suffix) _GLCRYPTO_CONCAT (OPENSSL_ALG, suffix) + +GL_OPENSSL_INLINE void +GL_CRYPTO_FN (_init_ctx) (struct _gl_ctx *ctx) +{ (void) OPENSSL_FN (_Init) ((_gl_CTX *) ctx); } + +/* These were never exposed by gnulib. */ +#if ! (GL_OPENSSL_NAME == 224 || GL_OPENSSL_NAME == 384) +GL_OPENSSL_INLINE void +GL_CRYPTO_FN (_process_bytes) (const void *buf, size_t len, struct _gl_ctx *ctx) +{ OPENSSL_FN (_Update) ((_gl_CTX *) ctx, buf, len); } + +GL_OPENSSL_INLINE void +GL_CRYPTO_FN (_process_block) (const void *buf, size_t len, struct _gl_ctx *ctx) +{ GL_CRYPTO_FN (_process_bytes) (buf, len, ctx); } +#endif + +GL_OPENSSL_INLINE void * +GL_CRYPTO_FN (_finish_ctx) (struct _gl_ctx *ctx, void *restrict res) +{ OPENSSL_FN (_Final) ((unsigned char *) res, (_gl_CTX *) ctx); return res; } + +GL_OPENSSL_INLINE void * +GL_CRYPTO_FN (_buffer) (const char *buf, size_t len, void *restrict res) +{ return OPENSSL_FN () ((const unsigned char *) buf, len, (unsigned char *) res); } + +GL_OPENSSL_INLINE void * +GL_CRYPTO_FN (_read_ctx) (const struct _gl_ctx *ctx, void *restrict res) +{ + /* Assume any unprocessed bytes in ctx are not to be ignored. */ + _gl_CTX tmp_ctx = *(_gl_CTX *) ctx; + OPENSSL_FN (_Final) ((unsigned char *) res, &tmp_ctx); + return res; +} + +/* Undef so we can include multiple times. */ +#undef GL_CRYPTO_FN +#undef OPENSSL_FN +#undef _GLCRYPTO_PREFIX +#undef OPENSSL_ALG +#undef GL_OPENSSL_NAME + +_GL_INLINE_HEADER_END diff --git a/autotools/gnulib/intprops-internal.h b/autotools/gnulib/intprops-internal.h new file mode 100644 index 00000000..c8a87d2b --- /dev/null +++ b/autotools/gnulib/intprops-internal.h @@ -0,0 +1,397 @@ +/* intprops-internal.h -- properties of integer types not visible to users + + Copyright (C) 2001-2024 Free Software Foundation, Inc. + + This program 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 program 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 <https://www.gnu.org/licenses/>. */ + +#ifndef _GL_INTPROPS_INTERNAL_H +#define _GL_INTPROPS_INTERNAL_H + +#include <limits.h> + +/* Pacify GCC 13.2 in some calls to _GL_EXPR_SIGNED. */ +#if defined __GNUC__ && 4 < __GNUC__ + (3 <= __GNUC_MINOR__) +# pragma GCC diagnostic ignored "-Wtype-limits" +#endif + +/* Return a value with the common real type of E and V and the value of V. + Do not evaluate E. */ +#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v)) + +/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see + <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html>. */ +#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v)) + +/* The extra casts in the following macros work around compiler bugs, + e.g., in Cray C 5.0.3.0. */ + +/* True if the real type T is signed. */ +#define _GL_TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) + +/* Return 1 if the real expression E, after promotion, has a + signed or floating type. Do not evaluate E. */ +#define _GL_EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) + + +/* Minimum and maximum values for integer types and expressions. */ + +/* The width in bits of the integer type or expression T. + Do not evaluate T. T must not be a bit-field expression. + Padding bits are not supported; this is checked at compile-time below. */ +#define _GL_TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) + +/* The maximum and minimum values for the type of the expression E, + after integer promotion. E is not evaluated. */ +#define _GL_INT_MINIMUM(e) \ + (_GL_EXPR_SIGNED (e) \ + ? ~ _GL_SIGNED_INT_MAXIMUM (e) \ + : _GL_INT_CONVERT (e, 0)) +#define _GL_INT_MAXIMUM(e) \ + (_GL_EXPR_SIGNED (e) \ + ? _GL_SIGNED_INT_MAXIMUM (e) \ + : _GL_INT_NEGATE_CONVERT (e, 1)) +#define _GL_SIGNED_INT_MAXIMUM(e) \ + (((_GL_INT_CONVERT (e, 1) << (_GL_TYPE_WIDTH (+ (e)) - 2)) - 1) * 2 + 1) + +/* Work around OpenVMS incompatibility with C99. */ +#if !defined LLONG_MAX && defined __INT64_MAX +# define LLONG_MAX __INT64_MAX +# define LLONG_MIN __INT64_MIN +#endif + +/* This include file assumes that signed types are two's complement without + padding bits; the above macros have undefined behavior otherwise. + If this is a problem for you, please let us know how to fix it for your host. + This assumption is tested by the intprops-tests module. */ + +/* Does the __typeof__ keyword work? This could be done by + 'configure', but for now it's easier to do it by hand. */ +#if (2 <= __GNUC__ \ + || (4 <= __clang_major__) \ + || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \ + || (0x5110 <= __SUNPRO_C && !__STDC__)) +# define _GL_HAVE___TYPEOF__ 1 +#else +# define _GL_HAVE___TYPEOF__ 0 +#endif + +/* Return 1 if the integer type or expression T might be signed. Return 0 + if it is definitely unsigned. T must not be a bit-field expression. + This macro does not evaluate its argument, and expands to an + integer constant expression. */ +#if _GL_HAVE___TYPEOF__ +# define _GL_SIGNED_TYPE_OR_EXPR(t) _GL_TYPE_SIGNED (__typeof__ (t)) +#else +# define _GL_SIGNED_TYPE_OR_EXPR(t) 1 +#endif + +/* Return 1 if - A would overflow in [MIN,MAX] arithmetic. + A should not have side effects, and A's type should be an + integer with minimum value MIN and maximum MAX. */ +#define _GL_INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ + ((min) < 0 ? (a) < - (max) : 0 < (a)) + +/* True if __builtin_add_overflow (A, B, P) and __builtin_sub_overflow + (A, B, P) work when P is non-null. */ +#ifdef __EDG__ +/* EDG-based compilers like nvc 22.1 cannot add 64-bit signed to unsigned + <https://bugs.gnu.org/53256>. */ +# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 +#elif defined __has_builtin +# define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow) +/* __builtin_{add,sub}_overflow exists but is not reliable in GCC 5.x and 6.x, + see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98269>. */ +#elif 7 <= __GNUC__ +# define _GL_HAS_BUILTIN_ADD_OVERFLOW 1 +#else +# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 +#endif + +/* True if __builtin_mul_overflow (A, B, P) works when P is non-null. */ +#if defined __clang_major__ && __clang_major__ < 14 +/* Work around Clang bug <https://bugs.llvm.org/show_bug.cgi?id=16404>. */ +# define _GL_HAS_BUILTIN_MUL_OVERFLOW 0 +#else +# define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW +#endif + +/* True if __builtin_add_overflow_p (A, B, C) works, and similarly for + __builtin_sub_overflow_p and __builtin_mul_overflow_p. */ +#ifdef __EDG__ +/* In EDG-based compilers like ICC 2021.3 and earlier, + __builtin_add_overflow_p etc. are not treated as integral constant + expressions even when all arguments are. */ +# define _GL_HAS_BUILTIN_OVERFLOW_P 0 +#elif defined __has_builtin +# define _GL_HAS_BUILTIN_OVERFLOW_P __has_builtin (__builtin_mul_overflow_p) +#else +# define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__) +#endif + +#if (!defined _GL_STDCKDINT_H && 202311 <= __STDC_VERSION__ \ + && ! (_GL_HAS_BUILTIN_ADD_OVERFLOW && _GL_HAS_BUILTIN_MUL_OVERFLOW)) +# include <stdckdint.h> +#endif + +/* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. + Return 1 if the result overflows. Arguments should not have side + effects and A, B and *R can be of any integer type other than char, + bool, a bit-precise integer type, or an enumeration type. */ +#if _GL_HAS_BUILTIN_ADD_OVERFLOW +# define _GL_INT_ADD_WRAPV(a, b, r) __builtin_add_overflow (a, b, r) +# define _GL_INT_SUBTRACT_WRAPV(a, b, r) __builtin_sub_overflow (a, b, r) +#elif defined ckd_add && defined ckd_sub && !defined _GL_STDCKDINT_H +# define _GL_INT_ADD_WRAPV(a, b, r) ckd_add (r, + (a), + (b)) +# define _GL_INT_SUBTRACT_WRAPV(a, b, r) ckd_sub (r, + (a), + (b)) +#else +# define _GL_INT_ADD_WRAPV(a, b, r) \ + _GL_INT_OP_WRAPV (a, b, r, +, _GL_INT_ADD_RANGE_OVERFLOW) +# define _GL_INT_SUBTRACT_WRAPV(a, b, r) \ + _GL_INT_OP_WRAPV (a, b, r, -, _GL_INT_SUBTRACT_RANGE_OVERFLOW) +#endif +#if _GL_HAS_BUILTIN_MUL_OVERFLOW +# if ((9 < __GNUC__ + (3 <= __GNUC_MINOR__) \ + || (__GNUC__ == 8 && 4 <= __GNUC_MINOR__)) \ + && !defined __EDG__) +# define _GL_INT_MULTIPLY_WRAPV(a, b, r) __builtin_mul_overflow (a, b, r) +# else + /* Work around GCC bug 91450. */ +# define _GL_INT_MULTIPLY_WRAPV(a, b, r) \ + ((!_GL_SIGNED_TYPE_OR_EXPR (*(r)) && _GL_EXPR_SIGNED (a) && _GL_EXPR_SIGNED (b) \ + && _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1)) \ + ? ((void) __builtin_mul_overflow (a, b, r), 1) \ + : __builtin_mul_overflow (a, b, r)) +# endif +#elif defined ckd_mul && !defined _GL_STDCKDINT_H +# define _GL_INT_MULTIPLY_WRAPV(a, b, r) ckd_mul (r, + (a), + (b)) +#else +# define _GL_INT_MULTIPLY_WRAPV(a, b, r) \ + _GL_INT_OP_WRAPV (a, b, r, *, _GL_INT_MULTIPLY_RANGE_OVERFLOW) +#endif + +/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See: + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193 + https://llvm.org/bugs/show_bug.cgi?id=25390 + For now, assume all versions of GCC-like compilers generate bogus + warnings for _Generic. This matters only for compilers that + lack relevant builtins. */ +#if __GNUC__ || defined __clang__ +# define _GL__GENERIC_BOGUS 1 +#else +# define _GL__GENERIC_BOGUS 0 +#endif + +/* Store the low-order bits of A <op> B into *R, where OP specifies + the operation and OVERFLOW the overflow predicate. Return 1 if the + result overflows. Arguments should not have side effects, + and A, B and *R can be of any integer type other than char, bool, a + bit-precise integer type, or an enumeration type. */ +#if 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS +# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ + (_Generic \ + (*(r), \ + signed char: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + signed char, SCHAR_MIN, SCHAR_MAX), \ + unsigned char: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + unsigned char, 0, UCHAR_MAX), \ + short int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + short int, SHRT_MIN, SHRT_MAX), \ + unsigned short int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + unsigned short int, 0, USHRT_MAX), \ + int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + int, INT_MIN, INT_MAX), \ + unsigned int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + unsigned int, 0, UINT_MAX), \ + long int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + long int, LONG_MIN, LONG_MAX), \ + unsigned long int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + unsigned long int, 0, ULONG_MAX), \ + long long int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ + long long int, LLONG_MIN, LLONG_MAX), \ + unsigned long long int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ + unsigned long long int, 0, ULLONG_MAX))) +#else +/* Store the low-order bits of A <op> B into *R, where OP specifies + the operation and OVERFLOW the overflow predicate. If *R is + signed, its type is ST with bounds SMIN..SMAX; otherwise its type + is UT with bounds U..UMAX. ST and UT are narrower than int. + Return 1 if the result overflows. Arguments should not have side + effects, and A, B and *R can be of any integer type other than + char, bool, a bit-precise integer type, or an enumeration type. */ +# if _GL_HAVE___TYPEOF__ +# define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ + (_GL_TYPE_SIGNED (__typeof__ (*(r))) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, st, smin, smax) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, ut, 0, umax)) +# else +# define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ + (overflow (a, b, smin, smax) \ + ? (overflow (a, b, 0, umax) \ + ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 1) \ + : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) < 0) \ + : (overflow (a, b, 0, umax) \ + ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) >= 0 \ + : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 0))) +# endif + +# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ + (sizeof *(r) == sizeof (signed char) \ + ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ + signed char, SCHAR_MIN, SCHAR_MAX, \ + unsigned char, UCHAR_MAX) \ + : sizeof *(r) == sizeof (short int) \ + ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ + short int, SHRT_MIN, SHRT_MAX, \ + unsigned short int, USHRT_MAX) \ + : sizeof *(r) == sizeof (int) \ + ? (_GL_EXPR_SIGNED (*(r)) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + int, INT_MIN, INT_MAX) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + unsigned int, 0, UINT_MAX)) \ + : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow)) +# ifdef LLONG_MAX +# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ + (sizeof *(r) == sizeof (long int) \ + ? (_GL_EXPR_SIGNED (*(r)) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + long int, LONG_MIN, LONG_MAX) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + unsigned long int, 0, ULONG_MAX)) \ + : (_GL_EXPR_SIGNED (*(r)) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ + long long int, LLONG_MIN, LLONG_MAX) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ + unsigned long long int, 0, ULLONG_MAX))) +# else +# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ + (_GL_EXPR_SIGNED (*(r)) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + long int, LONG_MIN, LONG_MAX) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + unsigned long int, 0, ULONG_MAX)) +# endif +#endif + +/* Store the low-order bits of A <op> B into *R, where the operation + is given by OP. Use the unsigned type UT for calculation to avoid + overflow problems. *R's type is T, with extrema TMIN and TMAX. + T can be any signed integer type other than char, bool, a + bit-precise integer type, or an enumeration type. + Return 1 if the result overflows. */ +#define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \ + (overflow (a, b, tmin, tmax) \ + ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \ + : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0)) + +/* Return 1 if the integer expressions A - B and -A would overflow, + respectively. Arguments should not have side effects, + and can be any signed integer type other than char, bool, a + bit-precise integer type, or an enumeration type. + These macros are tuned for their last input argument being a constant. */ + +#if _GL_HAS_BUILTIN_OVERFLOW_P +# define _GL_INT_NEGATE_OVERFLOW(a) \ + __builtin_sub_overflow_p (0, a, (__typeof__ (- (a))) 0) +#else +# define _GL_INT_NEGATE_OVERFLOW(a) \ + _GL_INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) +#endif + +/* Return the low-order bits of A <op> B, where the operation is given + by OP. Use the unsigned type UT for calculation to avoid undefined + behavior on signed integer overflow, and convert the result to type T. + UT is at least as wide as T and is no narrower than unsigned int, + T is two's complement, and there is no padding or trap representations. + Assume that converting UT to T yields the low-order bits, as is + done in all known two's-complement C compilers. E.g., see: + https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html + + According to the C standard, converting UT to T yields an + implementation-defined result or signal for values outside T's + range. However, code that works around this theoretical problem + runs afoul of a compiler bug in Oracle Studio 12.3 x86. See: + https://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html + As the compiler bug is real, don't try to work around the + theoretical problem. */ + +#define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \ + ((t) ((ut) (a) op (ut) (b))) + +/* Return true if the numeric values A + B, A - B, A * B fall outside + the range TMIN..TMAX. Arguments should not have side effects + and can be any integer type other than char, bool, + a bit-precise integer type, or an enumeration type. + TMIN should be signed and nonpositive. + TMAX should be positive, and should be signed unless TMIN is zero. */ +#define _GL_INT_ADD_RANGE_OVERFLOW(a, b, tmin, tmax) \ + ((b) < 0 \ + ? (((tmin) \ + ? ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (a, (tmin) - (b))) || (b) < (tmin)) \ + && (a) < (tmin) - (b)) \ + : (a) <= -1 - (b)) \ + || ((_GL_EXPR_SIGNED (a) ? 0 <= (a) : (tmax) < (a)) && (tmax) < (a) + (b))) \ + : (a) < 0 \ + ? (((tmin) \ + ? ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (b, (tmin) - (a))) || (a) < (tmin)) \ + && (b) < (tmin) - (a)) \ + : (b) <= -1 - (a)) \ + || ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (a, b)) || (tmax) < (b)) \ + && (tmax) < (a) + (b))) \ + : (tmax) < (b) || (tmax) - (b) < (a)) +#define _GL_INT_SUBTRACT_RANGE_OVERFLOW(a, b, tmin, tmax) \ + (((a) < 0) == ((b) < 0) \ + ? ((a) < (b) \ + ? !(tmin) || -1 - (tmin) < (b) - (a) - 1 \ + : (tmax) < (a) - (b)) \ + : (a) < 0 \ + ? ((!_GL_EXPR_SIGNED (_GL_INT_CONVERT ((a) - (tmin), b)) && (a) - (tmin) < 0) \ + || (a) - (tmin) < (b)) \ + : ((! (_GL_EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ + && _GL_EXPR_SIGNED (_GL_INT_CONVERT ((tmax) + (b), a))) \ + && (tmax) <= -1 - (b)) \ + || (tmax) + (b) < (a))) +#define _GL_INT_MULTIPLY_RANGE_OVERFLOW(a, b, tmin, tmax) \ + ((b) < 0 \ + ? ((a) < 0 \ + ? (_GL_EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ + ? (a) < (tmax) / (b) \ + : ((_GL_INT_NEGATE_OVERFLOW (b) \ + ? _GL_INT_CONVERT (b, tmax) >> (_GL_TYPE_WIDTH (+ (b)) - 1) \ + : (tmax) / -(b)) \ + <= -1 - (a))) \ + : _GL_INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (b, tmin)) && (b) == -1 \ + ? (_GL_EXPR_SIGNED (a) \ + ? 0 < (a) + (tmin) \ + : 0 < (a) && -1 - (tmin) < (a) - 1) \ + : (tmin) / (b) < (a)) \ + : (b) == 0 \ + ? 0 \ + : ((a) < 0 \ + ? (_GL_INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (a, tmin)) && (a) == -1 \ + ? (_GL_EXPR_SIGNED (b) ? 0 < (b) + (tmin) : -1 - (tmin) < (b) - 1) \ + : (tmin) / (a) < (b)) \ + : (tmax) / (b) < (a))) + +#endif /* _GL_INTPROPS_INTERNAL_H */ diff --git a/autotools/gnulib/mbszero.c b/autotools/gnulib/mbszero.c new file mode 100644 index 00000000..25af2848 --- /dev/null +++ b/autotools/gnulib/mbszero.c @@ -0,0 +1,23 @@ +/* Put an mbstate_t into an initial conversion state. + Copyright (C) 2023-2024 Free Software Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +/* Written by Bruno Haible <bruno@clisp.org>, 2023. */ + +#include <config.h> + +#define IN_MBSZERO +/* Specification and implementation. */ +#include <wchar.h> diff --git a/autotools/gnulib/md5.c b/autotools/gnulib/md5.c new file mode 100644 index 00000000..8e02f15d --- /dev/null +++ b/autotools/gnulib/md5.c @@ -0,0 +1,394 @@ +/* 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-2024 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 <https://www.gnu.org/licenses/>. */ + +/* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. */ + +#include <config.h> + +/* Specification. */ +#if HAVE_OPENSSL_MD5 +# define GL_OPENSSL_INLINE _GL_EXTERN_INLINE +#endif +#include "md5.h" + +#include <stdint.h> +#include <string.h> +#include <sys/types.h> + +#ifdef _LIBC +# include <endian.h> +# 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_read_ctx __md5_read_ctx +# define md5_buffer __md5_buffer +#endif + +#include <byteswap.h> +#ifdef WORDS_BIGENDIAN +# define SWAP(n) bswap_32 (n) +#else +# define SWAP(n) (n) +#endif + +#if ! HAVE_OPENSSL_MD5 + +/* This array contains the bytes used to pad the buffer to the next + 64-byte boundary. (RFC 1321, 3.1: Step 1) */ +static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; + + +/* Initialize structure containing state of computation. + (RFC 1321, 3.3: Step 3) */ +void +md5_init_ctx (struct md5_ctx *ctx) +{ + ctx->A = 0x67452301; + ctx->B = 0xefcdab89; + ctx->C = 0x98badcfe; + ctx->D = 0x10325476; + + ctx->total[0] = ctx->total[1] = 0; + ctx->buflen = 0; +} + +/* Copy the 4 byte value from v into the memory location pointed to by *cp, + If your architecture allows unaligned access this is equivalent to + * (uint32_t *) cp = v */ +static void +set_uint32 (char *cp, uint32_t v) +{ + memcpy (cp, &v, sizeof v); +} + +/* Put result from CTX in first 16 bytes following RESBUF. The result + must be in little endian byte order. */ +void * +md5_read_ctx (const struct md5_ctx *ctx, void *resbuf) +{ + char *r = resbuf; + set_uint32 (r + 0 * sizeof ctx->A, SWAP (ctx->A)); + set_uint32 (r + 1 * sizeof ctx->B, SWAP (ctx->B)); + set_uint32 (r + 2 * sizeof ctx->C, SWAP (ctx->C)); + set_uint32 (r + 3 * sizeof ctx->D, SWAP (ctx->D)); + + return resbuf; +} + +/* Process the remaining bytes in the internal buffer and the usual + prolog according to the standard and write the result to RESBUF. */ +void * +md5_finish_ctx (struct md5_ctx *ctx, void *resbuf) +{ + /* Take yet unprocessed bytes into account. */ + uint32_t bytes = ctx->buflen; + size_t size = (bytes < 56) ? 64 / 4 : 64 * 2 / 4; + + /* Now count remaining bytes. */ + ctx->total[0] += bytes; + if (ctx->total[0] < bytes) + ++ctx->total[1]; + + /* Put the 64-bit file length in *bits* at the end of the buffer. */ + ctx->buffer[size - 2] = SWAP (ctx->total[0] << 3); + ctx->buffer[size - 1] = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29)); + + memcpy (&((char *) ctx->buffer)[bytes], fillbuf, (size - 2) * 4 - bytes); + + /* Process last bytes. */ + md5_process_block (ctx->buffer, size * 4, ctx); + + return md5_read_ctx (ctx, resbuf); +} + +/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The + result is always in little endian byte order, so that a byte-wise + output yields to the wanted ASCII representation of the message + digest. */ +void * +md5_buffer (const char *buffer, size_t len, void *resblock) +{ + struct md5_ctx ctx; + + /* Initialize the computation context. */ + md5_init_ctx (&ctx); + + /* Process whole buffer but last len % 64 bytes. */ + md5_process_bytes (buffer, len, &ctx); + + /* Put result in desired memory area. */ + return md5_finish_ctx (&ctx, resblock); +} + + +void +md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx) +{ + /* When we already have some bits in our internal buffer concatenate + both inputs first. */ + if (ctx->buflen != 0) + { + size_t left_over = ctx->buflen; + size_t add = 128 - left_over > len ? len : 128 - left_over; + + memcpy (&((char *) ctx->buffer)[left_over], buffer, add); + ctx->buflen += add; + + if (ctx->buflen > 64) + { + md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx); + + ctx->buflen &= 63; + /* The regions in the following copy operation cannot overlap, + because ctx->buflen < 64 ≤ (left_over + add) & ~63. */ + memcpy (ctx->buffer, + &((char *) ctx->buffer)[(left_over + add) & ~63], + ctx->buflen); + } + + buffer = (const char *) buffer + add; + len -= add; + } + + /* Process available complete blocks. */ + if (len >= 64) + { +#if !(_STRING_ARCH_unaligned || _STRING_INLINE_unaligned) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) + if (UNALIGNED_P (buffer)) + while (len > 64) + { + md5_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); + buffer = (const char *) buffer + 64; + len -= 64; + } + else +#endif + { + md5_process_block (buffer, len & ~63, ctx); + buffer = (const char *) buffer + (len & ~63); + len &= 63; + } + } + + /* Move remaining bytes in internal buffer. */ + if (len > 0) + { + size_t left_over = ctx->buflen; + + memcpy (&((char *) ctx->buffer)[left_over], buffer, len); + left_over += len; + if (left_over >= 64) + { + md5_process_block (ctx->buffer, 64, ctx); + left_over -= 64; + /* The regions in the following copy operation cannot overlap, + because left_over ≤ 64. */ + memcpy (ctx->buffer, &ctx->buffer[16], left_over); + } + ctx->buflen = left_over; + } +} + + +/* These are the four functions used in the four steps of the MD5 algorithm + and defined in the RFC 1321. The first function is a little bit optimized + (as found in Colin Plumbs public domain implementation). */ +/* #define FF(b, c, d) ((b & c) | (~b & d)) */ +#define FF(b, c, d) (d ^ (b & (c ^ d))) +#define FG(b, c, d) FF (d, b, c) +#define FH(b, c, d) (b ^ c ^ d) +#define FI(b, c, d) (c ^ (b | ~d)) + +/* Process LEN bytes of BUFFER, accumulating context into CTX. + It is assumed that LEN % 64 == 0. */ + +void +md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx) +{ + uint32_t correct_words[16]; + const uint32_t *words = buffer; + size_t nwords = len / sizeof (uint32_t); + const uint32_t *endp = words + nwords; + uint32_t A = ctx->A; + uint32_t B = ctx->B; + uint32_t C = ctx->C; + uint32_t D = ctx->D; + uint32_t lolen = len; + + /* First increment the byte count. RFC 1321 specifies the possible + length of the file up to 2^64 bits. Here we only compute the + number of bytes. Do a double word increment. */ + ctx->total[0] += lolen; + ctx->total[1] += (len >> 31 >> 1) + (ctx->total[0] < lolen); + + /* Process all bytes in the buffer with 64 bytes in each round of + the loop. */ + while (words < endp) + { + uint32_t *cwp = correct_words; + uint32_t A_save = A; + uint32_t B_save = B; + uint32_t C_save = C; + uint32_t D_save = D; + + /* First round: using the given function, the context and a constant + the next context is computed. Because the algorithms processing + unit is a 32-bit word and it is determined to work on words in + little endian byte order we perhaps have to change the byte order + before the computation. To reduce the work for the next steps + we store the swapped words in the array CORRECT_WORDS. */ + +#define OP(a, b, c, d, s, T) \ + do \ + { \ + a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T; \ + ++words; \ + CYCLIC (a, s); \ + a += b; \ + } \ + while (0) + + /* It is unfortunate that C does not provide an operator for + cyclic rotation. Hope the C compiler is smart enough. */ +#define CYCLIC(w, s) (w = (w << s) | (w >> (32 - s))) + + /* Before we start, one word to the strange constants. + They are defined in RFC 1321 as + + T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64 + + Here is an equivalent invocation using Perl: + + perl -e 'foreach(1..64){printf "0x%08x\n", int (4294967296 * abs (sin $_))}' + */ + + /* Round 1. */ + OP (A, B, C, D, 7, 0xd76aa478); + OP (D, A, B, C, 12, 0xe8c7b756); + OP (C, D, A, B, 17, 0x242070db); + OP (B, C, D, A, 22, 0xc1bdceee); + OP (A, B, C, D, 7, 0xf57c0faf); + OP (D, A, B, C, 12, 0x4787c62a); + OP (C, D, A, B, 17, 0xa8304613); + OP (B, C, D, A, 22, 0xfd469501); + OP (A, B, C, D, 7, 0x698098d8); + OP (D, A, B, C, 12, 0x8b44f7af); + OP (C, D, A, B, 17, 0xffff5bb1); + OP (B, C, D, A, 22, 0x895cd7be); + OP (A, B, C, D, 7, 0x6b901122); + OP (D, A, B, C, 12, 0xfd987193); + OP (C, D, A, B, 17, 0xa679438e); + OP (B, C, D, A, 22, 0x49b40821); + + /* For the second to fourth round we have the possibly swapped words + in CORRECT_WORDS. Redefine the macro to take an additional first + argument specifying the function to use. */ +#undef OP +#define OP(f, a, b, c, d, k, s, T) \ + do \ + { \ + a += f (b, c, d) + correct_words[k] + T; \ + CYCLIC (a, s); \ + a += b; \ + } \ + while (0) + + /* Round 2. */ + OP (FG, A, B, C, D, 1, 5, 0xf61e2562); + OP (FG, D, A, B, C, 6, 9, 0xc040b340); + OP (FG, C, D, A, B, 11, 14, 0x265e5a51); + OP (FG, B, C, D, A, 0, 20, 0xe9b6c7aa); + OP (FG, A, B, C, D, 5, 5, 0xd62f105d); + OP (FG, D, A, B, C, 10, 9, 0x02441453); + OP (FG, C, D, A, B, 15, 14, 0xd8a1e681); + OP (FG, B, C, D, A, 4, 20, 0xe7d3fbc8); + OP (FG, A, B, C, D, 9, 5, 0x21e1cde6); + OP (FG, D, A, B, C, 14, 9, 0xc33707d6); + OP (FG, C, D, A, B, 3, 14, 0xf4d50d87); + OP (FG, B, C, D, A, 8, 20, 0x455a14ed); + OP (FG, A, B, C, D, 13, 5, 0xa9e3e905); + OP (FG, D, A, B, C, 2, 9, 0xfcefa3f8); + OP (FG, C, D, A, B, 7, 14, 0x676f02d9); + OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a); + + /* Round 3. */ + OP (FH, A, B, C, D, 5, 4, 0xfffa3942); + OP (FH, D, A, B, C, 8, 11, 0x8771f681); + OP (FH, C, D, A, B, 11, 16, 0x6d9d6122); + OP (FH, B, C, D, A, 14, 23, 0xfde5380c); + OP (FH, A, B, C, D, 1, 4, 0xa4beea44); + OP (FH, D, A, B, C, 4, 11, 0x4bdecfa9); + OP (FH, C, D, A, B, 7, 16, 0xf6bb4b60); + OP (FH, B, C, D, A, 10, 23, 0xbebfbc70); + OP (FH, A, B, C, D, 13, 4, 0x289b7ec6); + OP (FH, D, A, B, C, 0, 11, 0xeaa127fa); + OP (FH, C, D, A, B, 3, 16, 0xd4ef3085); + OP (FH, B, C, D, A, 6, 23, 0x04881d05); + OP (FH, A, B, C, D, 9, 4, 0xd9d4d039); + OP (FH, D, A, B, C, 12, 11, 0xe6db99e5); + OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8); + OP (FH, B, C, D, A, 2, 23, 0xc4ac5665); + + /* Round 4. */ + OP (FI, A, B, C, D, 0, 6, 0xf4292244); + OP (FI, D, A, B, C, 7, 10, 0x432aff97); + OP (FI, C, D, A, B, 14, 15, 0xab9423a7); + OP (FI, B, C, D, A, 5, 21, 0xfc93a039); + OP (FI, A, B, C, D, 12, 6, 0x655b59c3); + OP (FI, D, A, B, C, 3, 10, 0x8f0ccc92); + OP (FI, C, D, A, B, 10, 15, 0xffeff47d); + OP (FI, B, C, D, A, 1, 21, 0x85845dd1); + OP (FI, A, B, C, D, 8, 6, 0x6fa87e4f); + OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0); + OP (FI, C, D, A, B, 6, 15, 0xa3014314); + OP (FI, B, C, D, A, 13, 21, 0x4e0811a1); + OP (FI, A, B, C, D, 4, 6, 0xf7537e82); + OP (FI, D, A, B, C, 11, 10, 0xbd3af235); + OP (FI, C, D, A, B, 2, 15, 0x2ad7d2bb); + OP (FI, B, C, D, A, 9, 21, 0xeb86d391); + + /* Add the starting values of the context. */ + A += A_save; + B += B_save; + C += C_save; + D += D_save; + } + + /* Put checksum in context given as argument. */ + ctx->A = A; + ctx->B = B; + ctx->C = C; + ctx->D = D; +} + +#endif + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/autotools/gnulib/md5.h b/autotools/gnulib/md5.h new file mode 100644 index 00000000..2f470703 --- /dev/null +++ b/autotools/gnulib/md5.h @@ -0,0 +1,174 @@ +/* Declaration of functions and data types used for MD5 sum computing + library functions. + Copyright (C) 1995-1997, 1999-2001, 2004-2006, 2008-2024 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 <https://www.gnu.org/licenses/>. */ + +#ifndef _MD5_H +#define _MD5_H 1 + +/* This file uses HAVE_OPENSSL_MD5. */ +#if !_GL_CONFIG_H_INCLUDED + #error "Please include config.h first." +#endif + +#include <stdio.h> +#include <stdint.h> + +# if HAVE_OPENSSL_MD5 +# ifndef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API. */ +# endif +/* If <openssl/macros.h> would give a compile-time error, don't use OpenSSL. */ +# include <openssl/opensslv.h> +# if OPENSSL_VERSION_MAJOR >= 3 +# include <openssl/configuration.h> +# if (OPENSSL_CONFIGURED_API \ + < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \ + ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \ + + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \ + + ((OPENSSL_API_COMPAT >> 12) & 0xFF))) +# undef HAVE_OPENSSL_MD5 +# endif +# endif +# if HAVE_OPENSSL_MD5 +# include <openssl/md5.h> +# endif +# endif + +#define MD5_DIGEST_SIZE 16 +#define MD5_BLOCK_SIZE 64 + +#ifndef __GNUC_PREREQ +# if defined __GNUC__ && defined __GNUC_MINOR__ +# define __GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +# else +# define __GNUC_PREREQ(maj, min) 0 +# endif +#endif + +#ifndef __THROW +# if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major__ >= 4) +# if __cplusplus >= 201103L +# define __THROW noexcept (true) +# else +# define __THROW throw () +# endif +# else +# define __THROW +# endif +#endif + +#ifndef _LIBC +# define __md5_buffer md5_buffer +# define __md5_finish_ctx md5_finish_ctx +# define __md5_init_ctx md5_init_ctx +# define __md5_process_block md5_process_block +# define __md5_process_bytes md5_process_bytes +# define __md5_read_ctx md5_read_ctx +# define __md5_stream md5_stream +#endif + +# ifdef __cplusplus +extern "C" { +# endif + +# if HAVE_OPENSSL_MD5 +# define GL_OPENSSL_NAME 5 +# include "gl_openssl.h" +# else +/* Structure to save state of computation between the single steps. */ +struct md5_ctx +{ + uint32_t A; + uint32_t B; + uint32_t C; + uint32_t D; + + uint32_t total[2]; + uint32_t buflen; /* ≥ 0, ≤ 128 */ + uint32_t buffer[32]; /* 128 bytes; the first buflen bytes are in use */ +}; + +/* + * The following three functions are build up the low level used in + * the functions 'md5_stream' and 'md5_buffer'. + */ + +/* Initialize structure containing state of computation. + (RFC 1321, 3.3: Step 3) */ +extern void __md5_init_ctx (struct md5_ctx *ctx) __THROW; + +/* Starting with the result of former calls of this function (or the + initialization function update the context for the next LEN bytes + starting at BUFFER. + It is necessary that LEN is a multiple of 64!!! */ +extern void __md5_process_block (const void *buffer, size_t len, + struct md5_ctx *ctx) __THROW; + +/* Starting with the result of former calls of this function (or the + initialization function update the context for the next LEN bytes + starting at BUFFER. + It is NOT required that LEN is a multiple of 64. */ +extern void __md5_process_bytes (const void *buffer, size_t len, + struct md5_ctx *ctx) __THROW; + +/* Process the remaining bytes in the buffer and put result from CTX + in first 16 bytes following RESBUF. The result is always in little + endian byte order, so that a byte-wise output yields to the wanted + ASCII representation of the message digest. */ +extern void *__md5_finish_ctx (struct md5_ctx *ctx, void *restrict resbuf) + __THROW; + + +/* Put result from CTX in first 16 bytes following RESBUF. The result is + always in little endian byte order, so that a byte-wise output yields + to the wanted ASCII representation of the message digest. */ +extern void *__md5_read_ctx (const struct md5_ctx *ctx, void *restrict resbuf) + __THROW; + + +/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The + result is always in little endian byte order, so that a byte-wise + output yields to the wanted ASCII representation of the message + digest. */ +extern void *__md5_buffer (const char *buffer, size_t len, + void *restrict resblock) __THROW; + +# endif + +/* Compute MD5 message digest for bytes read from STREAM. + STREAM is an open file stream. Regular files are handled more efficiently. + The contents of STREAM from its current position to its end will be read. + The case that the last operation on STREAM was an 'ungetc' is not supported. + The resulting message digest number will be written into the 16 bytes + beginning at RESBLOCK. */ +extern int __md5_stream (FILE *stream, void *resblock) __THROW; + + +# ifdef __cplusplus +} +# endif + +#endif /* md5.h */ + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/autotools/gnulib/same-inode.c b/autotools/gnulib/same-inode.c new file mode 100644 index 00000000..08c66a25 --- /dev/null +++ b/autotools/gnulib/same-inode.c @@ -0,0 +1,3 @@ +#include <config.h> +#define SAME_INODE_INLINE _GL_EXTERN_INLINE +#include "same-inode.h" diff --git a/autotools/gnulib/sha1.c b/autotools/gnulib/sha1.c new file mode 100644 index 00000000..24fcd0b0 --- /dev/null +++ b/autotools/gnulib/sha1.c @@ -0,0 +1,360 @@ +/* sha1.c - Functions to compute SHA1 message digest of files or + memory blocks according to the NIST specification FIPS-180-1. + + Copyright (C) 2000-2001, 2003-2006, 2008-2024 Free Software Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +/* Written by Scott G. Miller + Credits: + Robert Klep <robert@ilse.nl> -- Expansion function fix +*/ + +#include <config.h> + +/* Specification. */ +#if HAVE_OPENSSL_SHA1 +# define GL_OPENSSL_INLINE _GL_EXTERN_INLINE +#endif +#include "sha1.h" + +#include <stdint.h> +#include <string.h> + +#include <byteswap.h> +#ifdef WORDS_BIGENDIAN +# define SWAP(n) (n) +#else +# define SWAP(n) bswap_32 (n) +#endif + +#if ! HAVE_OPENSSL_SHA1 + +/* This array contains the bytes used to pad the buffer to the next + 64-byte boundary. (RFC 1321, 3.1: Step 1) */ +static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; + + +/* Take a pointer to a 160 bit block of data (five 32 bit ints) and + initialize it to the start constants of the SHA1 algorithm. This + must be called before using hash in the call to sha1_hash. */ +void +sha1_init_ctx (struct sha1_ctx *ctx) +{ + ctx->A = 0x67452301; + ctx->B = 0xefcdab89; + ctx->C = 0x98badcfe; + ctx->D = 0x10325476; + ctx->E = 0xc3d2e1f0; + + ctx->total[0] = ctx->total[1] = 0; + ctx->buflen = 0; +} + +/* Copy the 4 byte value from v into the memory location pointed to by *cp, + If your architecture allows unaligned access this is equivalent to + * (uint32_t *) cp = v */ +static void +set_uint32 (char *cp, uint32_t v) +{ + memcpy (cp, &v, sizeof v); +} + +/* Put result from CTX in first 20 bytes following RESBUF. The result + must be in little endian byte order. */ +void * +sha1_read_ctx (const struct sha1_ctx *ctx, void *resbuf) +{ + char *r = resbuf; + set_uint32 (r + 0 * sizeof ctx->A, SWAP (ctx->A)); + set_uint32 (r + 1 * sizeof ctx->B, SWAP (ctx->B)); + set_uint32 (r + 2 * sizeof ctx->C, SWAP (ctx->C)); + set_uint32 (r + 3 * sizeof ctx->D, SWAP (ctx->D)); + set_uint32 (r + 4 * sizeof ctx->E, SWAP (ctx->E)); + + return resbuf; +} + +/* Process the remaining bytes in the internal buffer and the usual + prolog according to the standard and write the result to RESBUF. */ +void * +sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf) +{ + /* Take yet unprocessed bytes into account. */ + uint32_t bytes = ctx->buflen; + size_t size = (bytes < 56) ? 64 / 4 : 64 * 2 / 4; + + /* Now count remaining bytes. */ + ctx->total[0] += bytes; + if (ctx->total[0] < bytes) + ++ctx->total[1]; + + /* Put the 64-bit file length in *bits* at the end of the buffer. */ + ctx->buffer[size - 2] = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29)); + ctx->buffer[size - 1] = SWAP (ctx->total[0] << 3); + + memcpy (&((char *) ctx->buffer)[bytes], fillbuf, (size - 2) * 4 - bytes); + + /* Process last bytes. */ + sha1_process_block (ctx->buffer, size * 4, ctx); + + return sha1_read_ctx (ctx, resbuf); +} + +/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The + result is always in little endian byte order, so that a byte-wise + output yields to the wanted ASCII representation of the message + digest. */ +void * +sha1_buffer (const char *buffer, size_t len, void *resblock) +{ + struct sha1_ctx ctx; + + /* Initialize the computation context. */ + sha1_init_ctx (&ctx); + + /* Process whole buffer but last len % 64 bytes. */ + sha1_process_bytes (buffer, len, &ctx); + + /* Put result in desired memory area. */ + return sha1_finish_ctx (&ctx, resblock); +} + +void +sha1_process_bytes (const void *buffer, size_t len, struct sha1_ctx *ctx) +{ + /* When we already have some bits in our internal buffer concatenate + both inputs first. */ + if (ctx->buflen != 0) + { + size_t left_over = ctx->buflen; + size_t add = 128 - left_over > len ? len : 128 - left_over; + + memcpy (&((char *) ctx->buffer)[left_over], buffer, add); + ctx->buflen += add; + + if (ctx->buflen > 64) + { + sha1_process_block (ctx->buffer, ctx->buflen & ~63, ctx); + + ctx->buflen &= 63; + /* The regions in the following copy operation cannot overlap, + because ctx->buflen < 64 ≤ (left_over + add) & ~63. */ + memcpy (ctx->buffer, + &((char *) ctx->buffer)[(left_over + add) & ~63], + ctx->buflen); + } + + buffer = (const char *) buffer + add; + len -= add; + } + + /* Process available complete blocks. */ + if (len >= 64) + { +#if !(_STRING_ARCH_unaligned || _STRING_INLINE_unaligned) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) + if (UNALIGNED_P (buffer)) + while (len > 64) + { + sha1_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); + buffer = (const char *) buffer + 64; + len -= 64; + } + else +#endif + { + sha1_process_block (buffer, len & ~63, ctx); + buffer = (const char *) buffer + (len & ~63); + len &= 63; + } + } + + /* Move remaining bytes in internal buffer. */ + if (len > 0) + { + size_t left_over = ctx->buflen; + + memcpy (&((char *) ctx->buffer)[left_over], buffer, len); + left_over += len; + if (left_over >= 64) + { + sha1_process_block (ctx->buffer, 64, ctx); + left_over -= 64; + /* The regions in the following copy operation cannot overlap, + because left_over ≤ 64. */ + memcpy (ctx->buffer, &ctx->buffer[16], left_over); + } + ctx->buflen = left_over; + } +} + +/* --- Code below is the primary difference between md5.c and sha1.c --- */ + +/* SHA1 round constants */ +#define K1 0x5a827999 +#define K2 0x6ed9eba1 +#define K3 0x8f1bbcdc +#define K4 0xca62c1d6 + +/* Round functions. Note that F2 is the same as F4. */ +#define F1(B,C,D) ( D ^ ( B & ( C ^ D ) ) ) +#define F2(B,C,D) (B ^ C ^ D) +#define F3(B,C,D) ( ( B & C ) | ( D & ( B | C ) ) ) +#define F4(B,C,D) (B ^ C ^ D) + +/* Process LEN bytes of BUFFER, accumulating context into CTX. + It is assumed that LEN % 64 == 0. + Most of this code comes from GnuPG's cipher/sha1.c. */ + +void +sha1_process_block (const void *buffer, size_t len, struct sha1_ctx *ctx) +{ + const uint32_t *words = buffer; + size_t nwords = len / sizeof (uint32_t); + const uint32_t *endp = words + nwords; + uint32_t x[16]; + uint32_t a = ctx->A; + uint32_t b = ctx->B; + uint32_t c = ctx->C; + uint32_t d = ctx->D; + uint32_t e = ctx->E; + uint32_t lolen = len; + + /* First increment the byte count. RFC 1321 specifies the possible + length of the file up to 2^64 bits. Here we only compute the + number of bytes. Do a double word increment. */ + ctx->total[0] += lolen; + ctx->total[1] += (len >> 31 >> 1) + (ctx->total[0] < lolen); + +#define rol(x, n) (((x) << (n)) | ((uint32_t) (x) >> (32 - (n)))) + +#define M(I) ( tm = x[I&0x0f] ^ x[(I-14)&0x0f] \ + ^ x[(I-8)&0x0f] ^ x[(I-3)&0x0f] \ + , (x[I&0x0f] = rol(tm, 1)) ) + +#define R(A,B,C,D,E,F,K,M) do { E += rol( A, 5 ) \ + + F( B, C, D ) \ + + K \ + + M; \ + B = rol( B, 30 ); \ + } while(0) + + while (words < endp) + { + uint32_t tm; + int t; + for (t = 0; t < 16; t++) + { + x[t] = SWAP (*words); + words++; + } + + R( a, b, c, d, e, F1, K1, x[ 0] ); + R( e, a, b, c, d, F1, K1, x[ 1] ); + R( d, e, a, b, c, F1, K1, x[ 2] ); + R( c, d, e, a, b, F1, K1, x[ 3] ); + R( b, c, d, e, a, F1, K1, x[ 4] ); + R( a, b, c, d, e, F1, K1, x[ 5] ); + R( e, a, b, c, d, F1, K1, x[ 6] ); + R( d, e, a, b, c, F1, K1, x[ 7] ); + R( c, d, e, a, b, F1, K1, x[ 8] ); + R( b, c, d, e, a, F1, K1, x[ 9] ); + R( a, b, c, d, e, F1, K1, x[10] ); + R( e, a, b, c, d, F1, K1, x[11] ); + R( d, e, a, b, c, F1, K1, x[12] ); + R( c, d, e, a, b, F1, K1, x[13] ); + R( b, c, d, e, a, F1, K1, x[14] ); + R( a, b, c, d, e, F1, K1, x[15] ); + R( e, a, b, c, d, F1, K1, M(16) ); + R( d, e, a, b, c, F1, K1, M(17) ); + R( c, d, e, a, b, F1, K1, M(18) ); + R( b, c, d, e, a, F1, K1, M(19) ); + R( a, b, c, d, e, F2, K2, M(20) ); + R( e, a, b, c, d, F2, K2, M(21) ); + R( d, e, a, b, c, F2, K2, M(22) ); + R( c, d, e, a, b, F2, K2, M(23) ); + R( b, c, d, e, a, F2, K2, M(24) ); + R( a, b, c, d, e, F2, K2, M(25) ); + R( e, a, b, c, d, F2, K2, M(26) ); + R( d, e, a, b, c, F2, K2, M(27) ); + R( c, d, e, a, b, F2, K2, M(28) ); + R( b, c, d, e, a, F2, K2, M(29) ); + R( a, b, c, d, e, F2, K2, M(30) ); + R( e, a, b, c, d, F2, K2, M(31) ); + R( d, e, a, b, c, F2, K2, M(32) ); + R( c, d, e, a, b, F2, K2, M(33) ); + R( b, c, d, e, a, F2, K2, M(34) ); + R( a, b, c, d, e, F2, K2, M(35) ); + R( e, a, b, c, d, F2, K2, M(36) ); + R( d, e, a, b, c, F2, K2, M(37) ); + R( c, d, e, a, b, F2, K2, M(38) ); + R( b, c, d, e, a, F2, K2, M(39) ); + R( a, b, c, d, e, F3, K3, M(40) ); + R( e, a, b, c, d, F3, K3, M(41) ); + R( d, e, a, b, c, F3, K3, M(42) ); + R( c, d, e, a, b, F3, K3, M(43) ); + R( b, c, d, e, a, F3, K3, M(44) ); + R( a, b, c, d, e, F3, K3, M(45) ); + R( e, a, b, c, d, F3, K3, M(46) ); + R( d, e, a, b, c, F3, K3, M(47) ); + R( c, d, e, a, b, F3, K3, M(48) ); + R( b, c, d, e, a, F3, K3, M(49) ); + R( a, b, c, d, e, F3, K3, M(50) ); + R( e, a, b, c, d, F3, K3, M(51) ); + R( d, e, a, b, c, F3, K3, M(52) ); + R( c, d, e, a, b, F3, K3, M(53) ); + R( b, c, d, e, a, F3, K3, M(54) ); + R( a, b, c, d, e, F3, K3, M(55) ); + R( e, a, b, c, d, F3, K3, M(56) ); + R( d, e, a, b, c, F3, K3, M(57) ); + R( c, d, e, a, b, F3, K3, M(58) ); + R( b, c, d, e, a, F3, K3, M(59) ); + R( a, b, c, d, e, F4, K4, M(60) ); + R( e, a, b, c, d, F4, K4, M(61) ); + R( d, e, a, b, c, F4, K4, M(62) ); + R( c, d, e, a, b, F4, K4, M(63) ); + R( b, c, d, e, a, F4, K4, M(64) ); + R( a, b, c, d, e, F4, K4, M(65) ); + R( e, a, b, c, d, F4, K4, M(66) ); + R( d, e, a, b, c, F4, K4, M(67) ); + R( c, d, e, a, b, F4, K4, M(68) ); + R( b, c, d, e, a, F4, K4, M(69) ); + R( a, b, c, d, e, F4, K4, M(70) ); + R( e, a, b, c, d, F4, K4, M(71) ); + R( d, e, a, b, c, F4, K4, M(72) ); + R( c, d, e, a, b, F4, K4, M(73) ); + R( b, c, d, e, a, F4, K4, M(74) ); + R( a, b, c, d, e, F4, K4, M(75) ); + R( e, a, b, c, d, F4, K4, M(76) ); + R( d, e, a, b, c, F4, K4, M(77) ); + R( c, d, e, a, b, F4, K4, M(78) ); + R( b, c, d, e, a, F4, K4, M(79) ); + + a = ctx->A += a; + b = ctx->B += b; + c = ctx->C += c; + d = ctx->D += d; + e = ctx->E += e; + } +} + +#endif + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/autotools/gnulib/sha1.h b/autotools/gnulib/sha1.h new file mode 100644 index 00000000..940163eb --- /dev/null +++ b/autotools/gnulib/sha1.h @@ -0,0 +1,134 @@ +/* Declarations of functions and data types used for SHA1 sum + library functions. + Copyright (C) 2000-2001, 2003, 2005-2006, 2008-2024 Free Software + Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +#ifndef SHA1_H +# define SHA1_H 1 + +/* This file uses HAVE_OPENSSL_SHA1. */ +# if !_GL_CONFIG_H_INCLUDED +# error "Please include config.h first." +# endif + +# include <stdio.h> +# include <stdint.h> + +# if HAVE_OPENSSL_SHA1 +# ifndef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API. */ +# endif +/* If <openssl/macros.h> would give a compile-time error, don't use OpenSSL. */ +# include <openssl/opensslv.h> +# if OPENSSL_VERSION_MAJOR >= 3 +# include <openssl/configuration.h> +# if (OPENSSL_CONFIGURED_API \ + < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \ + ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \ + + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \ + + ((OPENSSL_API_COMPAT >> 12) & 0xFF))) +# undef HAVE_OPENSSL_SHA1 +# endif +# endif +# if HAVE_OPENSSL_SHA1 +# include <openssl/sha.h> +# endif +# endif + +# ifdef __cplusplus +extern "C" { +# endif + +# define SHA1_DIGEST_SIZE 20 + +# if HAVE_OPENSSL_SHA1 +# define GL_OPENSSL_NAME 1 +# include "gl_openssl.h" +# else +/* Structure to save state of computation between the single steps. */ +struct sha1_ctx +{ + uint32_t A; + uint32_t B; + uint32_t C; + uint32_t D; + uint32_t E; + + uint32_t total[2]; + uint32_t buflen; /* ≥ 0, ≤ 128 */ + uint32_t buffer[32]; /* 128 bytes; the first buflen bytes are in use */ +}; + +/* Initialize structure containing state of computation. */ +extern void sha1_init_ctx (struct sha1_ctx *ctx); + +/* Starting with the result of former calls of this function (or the + initialization function update the context for the next LEN bytes + starting at BUFFER. + It is necessary that LEN is a multiple of 64!!! */ +extern void sha1_process_block (const void *buffer, size_t len, + struct sha1_ctx *ctx); + +/* Starting with the result of former calls of this function (or the + initialization function update the context for the next LEN bytes + starting at BUFFER. + It is NOT required that LEN is a multiple of 64. */ +extern void sha1_process_bytes (const void *buffer, size_t len, + struct sha1_ctx *ctx); + +/* Process the remaining bytes in the buffer and put result from CTX + in first 20 bytes following RESBUF. The result is always in little + endian byte order, so that a byte-wise output yields to the wanted + ASCII representation of the message digest. */ +extern void *sha1_finish_ctx (struct sha1_ctx *ctx, void *restrict resbuf); + + +/* Put result from CTX in first 20 bytes following RESBUF. The result is + always in little endian byte order, so that a byte-wise output yields + to the wanted ASCII representation of the message digest. */ +extern void *sha1_read_ctx (const struct sha1_ctx *ctx, void *restrict resbuf); + + +/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The + result is always in little endian byte order, so that a byte-wise + output yields to the wanted ASCII representation of the message + digest. */ +extern void *sha1_buffer (const char *buffer, size_t len, + void *restrict resblock); + +# endif + +/* Compute SHA1 message digest for bytes read from STREAM. + STREAM is an open file stream. Regular files are handled more efficiently. + The contents of STREAM from its current position to its end will be read. + The case that the last operation on STREAM was an 'ungetc' is not supported. + The resulting message digest number will be written into the 20 bytes + beginning at RESBLOCK. */ +extern int sha1_stream (FILE *stream, void *resblock); + + +# ifdef __cplusplus +} +# endif + +#endif + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/autotools/gnulib/sha256.c b/autotools/gnulib/sha256.c new file mode 100644 index 00000000..fe7c5446 --- /dev/null +++ b/autotools/gnulib/sha256.c @@ -0,0 +1,432 @@ +/* sha256.c - Functions to compute SHA256 and SHA224 message digest of files or + memory blocks according to the NIST specification FIPS-180-2. + + Copyright (C) 2005-2006, 2008-2024 Free Software Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +/* Written by David Madore, considerably copypasting from + Scott G. Miller's sha1.c +*/ + +#include <config.h> + +/* Specification. */ +#if HAVE_OPENSSL_SHA256 +# define GL_OPENSSL_INLINE _GL_EXTERN_INLINE +#endif +#include "sha256.h" + +#include <stdint.h> +#include <string.h> + +#include <byteswap.h> +#ifdef WORDS_BIGENDIAN +# define SWAP(n) (n) +#else +# define SWAP(n) bswap_32 (n) +#endif + +#if ! HAVE_OPENSSL_SHA256 + +/* This array contains the bytes used to pad the buffer to the next + 64-byte boundary. */ +static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; + + +/* + Takes a pointer to a 256 bit block of data (eight 32 bit ints) and + initializes it to the start constants of the SHA256 algorithm. This + must be called before using hash in the call to sha256_hash +*/ +void +sha256_init_ctx (struct sha256_ctx *ctx) +{ + ctx->state[0] = 0x6a09e667UL; + ctx->state[1] = 0xbb67ae85UL; + ctx->state[2] = 0x3c6ef372UL; + ctx->state[3] = 0xa54ff53aUL; + ctx->state[4] = 0x510e527fUL; + ctx->state[5] = 0x9b05688cUL; + ctx->state[6] = 0x1f83d9abUL; + ctx->state[7] = 0x5be0cd19UL; + + ctx->total[0] = ctx->total[1] = 0; + ctx->buflen = 0; +} + +void +sha224_init_ctx (struct sha256_ctx *ctx) +{ + ctx->state[0] = 0xc1059ed8UL; + ctx->state[1] = 0x367cd507UL; + ctx->state[2] = 0x3070dd17UL; + ctx->state[3] = 0xf70e5939UL; + ctx->state[4] = 0xffc00b31UL; + ctx->state[5] = 0x68581511UL; + ctx->state[6] = 0x64f98fa7UL; + ctx->state[7] = 0xbefa4fa4UL; + + ctx->total[0] = ctx->total[1] = 0; + ctx->buflen = 0; +} + +/* Copy the value from v into the memory location pointed to by *CP, + If your architecture allows unaligned access, this is equivalent to + * (__typeof__ (v) *) cp = v */ +static void +set_uint32 (char *cp, uint32_t v) +{ + memcpy (cp, &v, sizeof v); +} + +/* Put result from CTX in first 32 bytes following RESBUF. + The result must be in little endian byte order. */ +void * +sha256_read_ctx (const struct sha256_ctx *ctx, void *resbuf) +{ + int i; + char *r = resbuf; + + for (i = 0; i < 8; i++) + set_uint32 (r + i * sizeof ctx->state[0], SWAP (ctx->state[i])); + + return resbuf; +} + +void * +sha224_read_ctx (const struct sha256_ctx *ctx, void *resbuf) +{ + int i; + char *r = resbuf; + + for (i = 0; i < 7; i++) + set_uint32 (r + i * sizeof ctx->state[0], SWAP (ctx->state[i])); + + return resbuf; +} + +/* Process the remaining bytes in the internal buffer and the usual + prolog according to the standard and write the result to RESBUF. */ +static void +sha256_conclude_ctx (struct sha256_ctx *ctx) +{ + /* Take yet unprocessed bytes into account. */ + size_t bytes = ctx->buflen; + size_t size = (bytes < 56) ? 64 / 4 : 64 * 2 / 4; + + /* Now count remaining bytes. */ + ctx->total[0] += bytes; + if (ctx->total[0] < bytes) + ++ctx->total[1]; + + /* Put the 64-bit file length in *bits* at the end of the buffer. + Use set_uint32 rather than a simple assignment, to avoid risk of + unaligned access. */ + set_uint32 ((char *) &ctx->buffer[size - 2], + SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29))); + set_uint32 ((char *) &ctx->buffer[size - 1], + SWAP (ctx->total[0] << 3)); + + memcpy (&((char *) ctx->buffer)[bytes], fillbuf, (size - 2) * 4 - bytes); + + /* Process last bytes. */ + sha256_process_block (ctx->buffer, size * 4, ctx); +} + +void * +sha256_finish_ctx (struct sha256_ctx *ctx, void *resbuf) +{ + sha256_conclude_ctx (ctx); + return sha256_read_ctx (ctx, resbuf); +} + +void * +sha224_finish_ctx (struct sha256_ctx *ctx, void *resbuf) +{ + sha256_conclude_ctx (ctx); + return sha224_read_ctx (ctx, resbuf); +} + +/* Compute SHA256 message digest for LEN bytes beginning at BUFFER. The + result is always in little endian byte order, so that a byte-wise + output yields to the wanted ASCII representation of the message + digest. */ +void * +sha256_buffer (const char *buffer, size_t len, void *resblock) +{ + struct sha256_ctx ctx; + + /* Initialize the computation context. */ + sha256_init_ctx (&ctx); + + /* Process whole buffer but last len % 64 bytes. */ + sha256_process_bytes (buffer, len, &ctx); + + /* Put result in desired memory area. */ + return sha256_finish_ctx (&ctx, resblock); +} + +void * +sha224_buffer (const char *buffer, size_t len, void *resblock) +{ + struct sha256_ctx ctx; + + /* Initialize the computation context. */ + sha224_init_ctx (&ctx); + + /* Process whole buffer but last len % 64 bytes. */ + sha256_process_bytes (buffer, len, &ctx); + + /* Put result in desired memory area. */ + return sha224_finish_ctx (&ctx, resblock); +} + +void +sha256_process_bytes (const void *buffer, size_t len, struct sha256_ctx *ctx) +{ + /* When we already have some bits in our internal buffer concatenate + both inputs first. */ + if (ctx->buflen != 0) + { + size_t left_over = ctx->buflen; + size_t add = 128 - left_over > len ? len : 128 - left_over; + + memcpy (&((char *) ctx->buffer)[left_over], buffer, add); + ctx->buflen += add; + + if (ctx->buflen > 64) + { + sha256_process_block (ctx->buffer, ctx->buflen & ~63, ctx); + + ctx->buflen &= 63; + /* The regions in the following copy operation cannot overlap, + because ctx->buflen < 64 ≤ (left_over + add) & ~63. */ + memcpy (ctx->buffer, + &((char *) ctx->buffer)[(left_over + add) & ~63], + ctx->buflen); + } + + buffer = (const char *) buffer + add; + len -= add; + } + + /* Process available complete blocks. */ + if (len >= 64) + { +#if !(_STRING_ARCH_unaligned || _STRING_INLINE_unaligned) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) + if (UNALIGNED_P (buffer)) + while (len > 64) + { + sha256_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); + buffer = (const char *) buffer + 64; + len -= 64; + } + else +#endif + { + sha256_process_block (buffer, len & ~63, ctx); + buffer = (const char *) buffer + (len & ~63); + len &= 63; + } + } + + /* Move remaining bytes in internal buffer. */ + if (len > 0) + { + size_t left_over = ctx->buflen; + + memcpy (&((char *) ctx->buffer)[left_over], buffer, len); + left_over += len; + if (left_over >= 64) + { + sha256_process_block (ctx->buffer, 64, ctx); + left_over -= 64; + /* The regions in the following copy operation cannot overlap, + because left_over ≤ 64. */ + memcpy (ctx->buffer, &ctx->buffer[16], left_over); + } + ctx->buflen = left_over; + } +} + +/* --- Code below is the primary difference between sha1.c and sha256.c --- */ + +/* SHA256 round constants */ +#define K(I) sha256_round_constants[I] +static const uint32_t sha256_round_constants[64] = { + 0x428a2f98UL, 0x71374491UL, 0xb5c0fbcfUL, 0xe9b5dba5UL, + 0x3956c25bUL, 0x59f111f1UL, 0x923f82a4UL, 0xab1c5ed5UL, + 0xd807aa98UL, 0x12835b01UL, 0x243185beUL, 0x550c7dc3UL, + 0x72be5d74UL, 0x80deb1feUL, 0x9bdc06a7UL, 0xc19bf174UL, + 0xe49b69c1UL, 0xefbe4786UL, 0x0fc19dc6UL, 0x240ca1ccUL, + 0x2de92c6fUL, 0x4a7484aaUL, 0x5cb0a9dcUL, 0x76f988daUL, + 0x983e5152UL, 0xa831c66dUL, 0xb00327c8UL, 0xbf597fc7UL, + 0xc6e00bf3UL, 0xd5a79147UL, 0x06ca6351UL, 0x14292967UL, + 0x27b70a85UL, 0x2e1b2138UL, 0x4d2c6dfcUL, 0x53380d13UL, + 0x650a7354UL, 0x766a0abbUL, 0x81c2c92eUL, 0x92722c85UL, + 0xa2bfe8a1UL, 0xa81a664bUL, 0xc24b8b70UL, 0xc76c51a3UL, + 0xd192e819UL, 0xd6990624UL, 0xf40e3585UL, 0x106aa070UL, + 0x19a4c116UL, 0x1e376c08UL, 0x2748774cUL, 0x34b0bcb5UL, + 0x391c0cb3UL, 0x4ed8aa4aUL, 0x5b9cca4fUL, 0x682e6ff3UL, + 0x748f82eeUL, 0x78a5636fUL, 0x84c87814UL, 0x8cc70208UL, + 0x90befffaUL, 0xa4506cebUL, 0xbef9a3f7UL, 0xc67178f2UL, +}; + +/* Round functions. */ +#define F2(A,B,C) ( ( A & B ) | ( C & ( A | B ) ) ) +#define F1(E,F,G) ( G ^ ( E & ( F ^ G ) ) ) + +/* Process LEN bytes of BUFFER, accumulating context into CTX. + It is assumed that LEN % 64 == 0. + Most of this code comes from GnuPG's cipher/sha1.c. */ + +void +sha256_process_block (const void *buffer, size_t len, struct sha256_ctx *ctx) +{ + const uint32_t *words = buffer; + size_t nwords = len / sizeof (uint32_t); + const uint32_t *endp = words + nwords; + uint32_t x[16]; + uint32_t a = ctx->state[0]; + uint32_t b = ctx->state[1]; + uint32_t c = ctx->state[2]; + uint32_t d = ctx->state[3]; + uint32_t e = ctx->state[4]; + uint32_t f = ctx->state[5]; + uint32_t g = ctx->state[6]; + uint32_t h = ctx->state[7]; + uint32_t lolen = len; + + /* First increment the byte count. FIPS PUB 180-2 specifies the possible + length of the file up to 2^64 bits. Here we only compute the + number of bytes. Do a double word increment. */ + ctx->total[0] += lolen; + ctx->total[1] += (len >> 31 >> 1) + (ctx->total[0] < lolen); + +#define rol(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) +#define S0(x) (rol(x,25)^rol(x,14)^(x>>3)) +#define S1(x) (rol(x,15)^rol(x,13)^(x>>10)) +#define SS0(x) (rol(x,30)^rol(x,19)^rol(x,10)) +#define SS1(x) (rol(x,26)^rol(x,21)^rol(x,7)) + +#define M(I) ( tm = S1(x[(I-2)&0x0f]) + x[(I-7)&0x0f] \ + + S0(x[(I-15)&0x0f]) + x[I&0x0f] \ + , x[I&0x0f] = tm ) + +#define R(A,B,C,D,E,F,G,H,K,M) do { t0 = SS0(A) + F2(A,B,C); \ + t1 = H + SS1(E) \ + + F1(E,F,G) \ + + K \ + + M; \ + D += t1; H = t0 + t1; \ + } while(0) + + while (words < endp) + { + uint32_t tm; + uint32_t t0, t1; + int t; + /* FIXME: see sha1.c for a better implementation. */ + for (t = 0; t < 16; t++) + { + x[t] = SWAP (*words); + words++; + } + + R( a, b, c, d, e, f, g, h, K( 0), x[ 0] ); + R( h, a, b, c, d, e, f, g, K( 1), x[ 1] ); + R( g, h, a, b, c, d, e, f, K( 2), x[ 2] ); + R( f, g, h, a, b, c, d, e, K( 3), x[ 3] ); + R( e, f, g, h, a, b, c, d, K( 4), x[ 4] ); + R( d, e, f, g, h, a, b, c, K( 5), x[ 5] ); + R( c, d, e, f, g, h, a, b, K( 6), x[ 6] ); + R( b, c, d, e, f, g, h, a, K( 7), x[ 7] ); + R( a, b, c, d, e, f, g, h, K( 8), x[ 8] ); + R( h, a, b, c, d, e, f, g, K( 9), x[ 9] ); + R( g, h, a, b, c, d, e, f, K(10), x[10] ); + R( f, g, h, a, b, c, d, e, K(11), x[11] ); + R( e, f, g, h, a, b, c, d, K(12), x[12] ); + R( d, e, f, g, h, a, b, c, K(13), x[13] ); + R( c, d, e, f, g, h, a, b, K(14), x[14] ); + R( b, c, d, e, f, g, h, a, K(15), x[15] ); + R( a, b, c, d, e, f, g, h, K(16), M(16) ); + R( h, a, b, c, d, e, f, g, K(17), M(17) ); + R( g, h, a, b, c, d, e, f, K(18), M(18) ); + R( f, g, h, a, b, c, d, e, K(19), M(19) ); + R( e, f, g, h, a, b, c, d, K(20), M(20) ); + R( d, e, f, g, h, a, b, c, K(21), M(21) ); + R( c, d, e, f, g, h, a, b, K(22), M(22) ); + R( b, c, d, e, f, g, h, a, K(23), M(23) ); + R( a, b, c, d, e, f, g, h, K(24), M(24) ); + R( h, a, b, c, d, e, f, g, K(25), M(25) ); + R( g, h, a, b, c, d, e, f, K(26), M(26) ); + R( f, g, h, a, b, c, d, e, K(27), M(27) ); + R( e, f, g, h, a, b, c, d, K(28), M(28) ); + R( d, e, f, g, h, a, b, c, K(29), M(29) ); + R( c, d, e, f, g, h, a, b, K(30), M(30) ); + R( b, c, d, e, f, g, h, a, K(31), M(31) ); + R( a, b, c, d, e, f, g, h, K(32), M(32) ); + R( h, a, b, c, d, e, f, g, K(33), M(33) ); + R( g, h, a, b, c, d, e, f, K(34), M(34) ); + R( f, g, h, a, b, c, d, e, K(35), M(35) ); + R( e, f, g, h, a, b, c, d, K(36), M(36) ); + R( d, e, f, g, h, a, b, c, K(37), M(37) ); + R( c, d, e, f, g, h, a, b, K(38), M(38) ); + R( b, c, d, e, f, g, h, a, K(39), M(39) ); + R( a, b, c, d, e, f, g, h, K(40), M(40) ); + R( h, a, b, c, d, e, f, g, K(41), M(41) ); + R( g, h, a, b, c, d, e, f, K(42), M(42) ); + R( f, g, h, a, b, c, d, e, K(43), M(43) ); + R( e, f, g, h, a, b, c, d, K(44), M(44) ); + R( d, e, f, g, h, a, b, c, K(45), M(45) ); + R( c, d, e, f, g, h, a, b, K(46), M(46) ); + R( b, c, d, e, f, g, h, a, K(47), M(47) ); + R( a, b, c, d, e, f, g, h, K(48), M(48) ); + R( h, a, b, c, d, e, f, g, K(49), M(49) ); + R( g, h, a, b, c, d, e, f, K(50), M(50) ); + R( f, g, h, a, b, c, d, e, K(51), M(51) ); + R( e, f, g, h, a, b, c, d, K(52), M(52) ); + R( d, e, f, g, h, a, b, c, K(53), M(53) ); + R( c, d, e, f, g, h, a, b, K(54), M(54) ); + R( b, c, d, e, f, g, h, a, K(55), M(55) ); + R( a, b, c, d, e, f, g, h, K(56), M(56) ); + R( h, a, b, c, d, e, f, g, K(57), M(57) ); + R( g, h, a, b, c, d, e, f, K(58), M(58) ); + R( f, g, h, a, b, c, d, e, K(59), M(59) ); + R( e, f, g, h, a, b, c, d, K(60), M(60) ); + R( d, e, f, g, h, a, b, c, K(61), M(61) ); + R( c, d, e, f, g, h, a, b, K(62), M(62) ); + R( b, c, d, e, f, g, h, a, K(63), M(63) ); + + a = ctx->state[0] += a; + b = ctx->state[1] += b; + c = ctx->state[2] += c; + d = ctx->state[3] += d; + e = ctx->state[4] += e; + f = ctx->state[5] += f; + g = ctx->state[6] += g; + h = ctx->state[7] += h; + } +} + +#endif + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/autotools/gnulib/sha256.h b/autotools/gnulib/sha256.h new file mode 100644 index 00000000..a9d7abb8 --- /dev/null +++ b/autotools/gnulib/sha256.h @@ -0,0 +1,140 @@ +/* Declarations of functions and data types used for SHA256 and SHA224 sum + library functions. + Copyright (C) 2005-2006, 2008-2024 Free Software Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +#ifndef SHA256_H +# define SHA256_H 1 + +/* This file uses HAVE_OPENSSL_SHA256. */ +# if !_GL_CONFIG_H_INCLUDED +# error "Please include config.h first." +# endif + +# include <stdio.h> +# include <stdint.h> + +# if HAVE_OPENSSL_SHA256 +# ifndef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API. */ +# endif +/* If <openssl/macros.h> would give a compile-time error, don't use OpenSSL. */ +# include <openssl/opensslv.h> +# if OPENSSL_VERSION_MAJOR >= 3 +# include <openssl/configuration.h> +# if (OPENSSL_CONFIGURED_API \ + < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \ + ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \ + + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \ + + ((OPENSSL_API_COMPAT >> 12) & 0xFF))) +# undef HAVE_OPENSSL_SHA256 +# endif +# endif +# if HAVE_OPENSSL_SHA256 +# include <openssl/sha.h> +# endif +# endif + +# ifdef __cplusplus +extern "C" { +# endif + +enum { SHA224_DIGEST_SIZE = 224 / 8 }; +enum { SHA256_DIGEST_SIZE = 256 / 8 }; + +# if HAVE_OPENSSL_SHA256 +# define GL_OPENSSL_NAME 224 +# include "gl_openssl.h" +# define GL_OPENSSL_NAME 256 +# include "gl_openssl.h" +# else +/* Structure to save state of computation between the single steps. */ +struct sha256_ctx +{ + uint32_t state[8]; + + uint32_t total[2]; + size_t buflen; /* ≥ 0, ≤ 128 */ + uint32_t buffer[32]; /* 128 bytes; the first buflen bytes are in use */ +}; + +/* Initialize structure containing state of computation. */ +extern void sha256_init_ctx (struct sha256_ctx *ctx); +extern void sha224_init_ctx (struct sha256_ctx *ctx); + +/* Starting with the result of former calls of this function (or the + initialization function update the context for the next LEN bytes + starting at BUFFER. + It is necessary that LEN is a multiple of 64!!! */ +extern void sha256_process_block (const void *buffer, size_t len, + struct sha256_ctx *ctx); + +/* Starting with the result of former calls of this function (or the + initialization function update the context for the next LEN bytes + starting at BUFFER. + It is NOT required that LEN is a multiple of 64. */ +extern void sha256_process_bytes (const void *buffer, size_t len, + struct sha256_ctx *ctx); + +/* Process the remaining bytes in the buffer and put result from CTX + in first 32 (28) bytes following RESBUF. The result is always in little + endian byte order, so that a byte-wise output yields to the wanted + ASCII representation of the message digest. */ +extern void *sha256_finish_ctx (struct sha256_ctx *ctx, void *restrict resbuf); +extern void *sha224_finish_ctx (struct sha256_ctx *ctx, void *restrict resbuf); + + +/* Put result from CTX in first 32 (28) bytes following RESBUF. The result is + always in little endian byte order, so that a byte-wise output yields + to the wanted ASCII representation of the message digest. */ +extern void *sha256_read_ctx (const struct sha256_ctx *ctx, + void *restrict resbuf); +extern void *sha224_read_ctx (const struct sha256_ctx *ctx, + void *restrict resbuf); + + +/* Compute SHA256 (SHA224) message digest for LEN bytes beginning at BUFFER. + The result is always in little endian byte order, so that a byte-wise + output yields to the wanted ASCII representation of the message + digest. */ +extern void *sha256_buffer (const char *buffer, size_t len, + void *restrict resblock); +extern void *sha224_buffer (const char *buffer, size_t len, + void *restrict resblock); + +# endif + +/* Compute SHA256 (SHA224) message digest for bytes read from STREAM. + STREAM is an open file stream. Regular files are handled more efficiently. + The contents of STREAM from its current position to its end will be read. + The case that the last operation on STREAM was an 'ungetc' is not supported. + The resulting message digest number will be written into the 32 (28) bytes + beginning at RESBLOCK. */ +extern int sha256_stream (FILE *stream, void *resblock); +extern int sha224_stream (FILE *stream, void *resblock); + + +# ifdef __cplusplus +} +# endif + +#endif + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/autotools/gnulib/sha512.c b/autotools/gnulib/sha512.c new file mode 100644 index 00000000..9eb036fb --- /dev/null +++ b/autotools/gnulib/sha512.c @@ -0,0 +1,477 @@ +/* sha512.c - Functions to compute SHA512 and SHA384 message digest of files or + memory blocks according to the NIST specification FIPS-180-2. + + Copyright (C) 2005-2006, 2008-2024 Free Software Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +/* Written by David Madore, considerably copypasting from + Scott G. Miller's sha1.c +*/ + +#include <config.h> + +/* Specification. */ +#if HAVE_OPENSSL_SHA512 +# define GL_OPENSSL_INLINE _GL_EXTERN_INLINE +#endif +#include "sha512.h" + +#include <stdint.h> +#include <string.h> + +#include <byteswap.h> +#ifdef WORDS_BIGENDIAN +# define SWAP(n) (n) +#else +# define SWAP(n) bswap_64 (n) +#endif + +#if ! HAVE_OPENSSL_SHA512 + +/* This array contains the bytes used to pad the buffer to the next + 128-byte boundary. */ +static const unsigned char fillbuf[128] = { 0x80, 0 /* , 0, 0, ... */ }; + + +/* + Takes a pointer to a 512 bit block of data (eight 64 bit ints) and + initializes it to the start constants of the SHA512 algorithm. This + must be called before using hash in the call to sha512_hash +*/ +void +sha512_init_ctx (struct sha512_ctx *ctx) +{ + ctx->state[0] = u64hilo (0x6a09e667, 0xf3bcc908); + ctx->state[1] = u64hilo (0xbb67ae85, 0x84caa73b); + ctx->state[2] = u64hilo (0x3c6ef372, 0xfe94f82b); + ctx->state[3] = u64hilo (0xa54ff53a, 0x5f1d36f1); + ctx->state[4] = u64hilo (0x510e527f, 0xade682d1); + ctx->state[5] = u64hilo (0x9b05688c, 0x2b3e6c1f); + ctx->state[6] = u64hilo (0x1f83d9ab, 0xfb41bd6b); + ctx->state[7] = u64hilo (0x5be0cd19, 0x137e2179); + + ctx->total[0] = ctx->total[1] = u64lo (0); + ctx->buflen = 0; +} + +void +sha384_init_ctx (struct sha512_ctx *ctx) +{ + ctx->state[0] = u64hilo (0xcbbb9d5d, 0xc1059ed8); + ctx->state[1] = u64hilo (0x629a292a, 0x367cd507); + ctx->state[2] = u64hilo (0x9159015a, 0x3070dd17); + ctx->state[3] = u64hilo (0x152fecd8, 0xf70e5939); + ctx->state[4] = u64hilo (0x67332667, 0xffc00b31); + ctx->state[5] = u64hilo (0x8eb44a87, 0x68581511); + ctx->state[6] = u64hilo (0xdb0c2e0d, 0x64f98fa7); + ctx->state[7] = u64hilo (0x47b5481d, 0xbefa4fa4); + + ctx->total[0] = ctx->total[1] = u64lo (0); + ctx->buflen = 0; +} + +/* Copy the value from V into the memory location pointed to by *CP, + If your architecture allows unaligned access, this is equivalent to + * (__typeof__ (v) *) cp = v */ +static void +set_uint64 (char *cp, u64 v) +{ + memcpy (cp, &v, sizeof v); +} + +/* Put result from CTX in first 64 bytes following RESBUF. + The result must be in little endian byte order. */ +void * +sha512_read_ctx (const struct sha512_ctx *ctx, void *resbuf) +{ + int i; + char *r = resbuf; + + for (i = 0; i < 8; i++) + set_uint64 (r + i * sizeof ctx->state[0], SWAP (ctx->state[i])); + + return resbuf; +} + +void * +sha384_read_ctx (const struct sha512_ctx *ctx, void *resbuf) +{ + int i; + char *r = resbuf; + + for (i = 0; i < 6; i++) + set_uint64 (r + i * sizeof ctx->state[0], SWAP (ctx->state[i])); + + return resbuf; +} + +/* Process the remaining bytes in the internal buffer and the usual + prolog according to the standard and write the result to RESBUF. */ +static void +sha512_conclude_ctx (struct sha512_ctx *ctx) +{ + /* Take yet unprocessed bytes into account. */ + size_t bytes = ctx->buflen; + size_t size = (bytes < 112) ? 128 / 8 : 128 * 2 / 8; + + /* Now count remaining bytes. */ + ctx->total[0] = u64plus (ctx->total[0], u64lo (bytes)); + if (u64lt (ctx->total[0], u64lo (bytes))) + ctx->total[1] = u64plus (ctx->total[1], u64lo (1)); + + /* Put the 128-bit file length in *bits* at the end of the buffer. + Use set_uint64 rather than a simple assignment, to avoid risk of + unaligned access. */ + set_uint64 ((char *) &ctx->buffer[size - 2], + SWAP (u64or (u64shl (ctx->total[1], 3), + u64shr (ctx->total[0], 61)))); + set_uint64 ((char *) &ctx->buffer[size - 1], + SWAP (u64shl (ctx->total[0], 3))); + + memcpy (&((char *) ctx->buffer)[bytes], fillbuf, (size - 2) * 8 - bytes); + + /* Process last bytes. */ + sha512_process_block (ctx->buffer, size * 8, ctx); +} + +void * +sha512_finish_ctx (struct sha512_ctx *ctx, void *resbuf) +{ + sha512_conclude_ctx (ctx); + return sha512_read_ctx (ctx, resbuf); +} + +void * +sha384_finish_ctx (struct sha512_ctx *ctx, void *resbuf) +{ + sha512_conclude_ctx (ctx); + return sha384_read_ctx (ctx, resbuf); +} + +/* Compute SHA512 message digest for LEN bytes beginning at BUFFER. The + result is always in little endian byte order, so that a byte-wise + output yields to the wanted ASCII representation of the message + digest. */ +void * +sha512_buffer (const char *buffer, size_t len, void *resblock) +{ + struct sha512_ctx ctx; + + /* Initialize the computation context. */ + sha512_init_ctx (&ctx); + + /* Process whole buffer but last len % 128 bytes. */ + sha512_process_bytes (buffer, len, &ctx); + + /* Put result in desired memory area. */ + return sha512_finish_ctx (&ctx, resblock); +} + +void * +sha384_buffer (const char *buffer, size_t len, void *resblock) +{ + struct sha512_ctx ctx; + + /* Initialize the computation context. */ + sha384_init_ctx (&ctx); + + /* Process whole buffer but last len % 128 bytes. */ + sha512_process_bytes (buffer, len, &ctx); + + /* Put result in desired memory area. */ + return sha384_finish_ctx (&ctx, resblock); +} + +void +sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx) +{ + /* When we already have some bits in our internal buffer concatenate + both inputs first. */ + if (ctx->buflen != 0) + { + size_t left_over = ctx->buflen; + size_t add = 256 - left_over > len ? len : 256 - left_over; + + memcpy (&((char *) ctx->buffer)[left_over], buffer, add); + ctx->buflen += add; + + if (ctx->buflen > 128) + { + sha512_process_block (ctx->buffer, ctx->buflen & ~127, ctx); + + ctx->buflen &= 127; + /* The regions in the following copy operation cannot overlap, + because ctx->buflen < 128 ≤ (left_over + add) & ~127. */ + memcpy (ctx->buffer, + &((char *) ctx->buffer)[(left_over + add) & ~127], + ctx->buflen); + } + + buffer = (const char *) buffer + add; + len -= add; + } + + /* Process available complete blocks. */ + if (len >= 128) + { +#if !(_STRING_ARCH_unaligned || _STRING_INLINE_unaligned) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (u64) != 0) + if (UNALIGNED_P (buffer)) + while (len > 128) + { + sha512_process_block (memcpy (ctx->buffer, buffer, 128), 128, ctx); + buffer = (const char *) buffer + 128; + len -= 128; + } + else +#endif + { + sha512_process_block (buffer, len & ~127, ctx); + buffer = (const char *) buffer + (len & ~127); + len &= 127; + } + } + + /* Move remaining bytes in internal buffer. */ + if (len > 0) + { + size_t left_over = ctx->buflen; + + memcpy (&((char *) ctx->buffer)[left_over], buffer, len); + left_over += len; + if (left_over >= 128) + { + sha512_process_block (ctx->buffer, 128, ctx); + left_over -= 128; + /* The regions in the following copy operation cannot overlap, + because left_over ≤ 128. */ + memcpy (ctx->buffer, &ctx->buffer[16], left_over); + } + ctx->buflen = left_over; + } +} + +/* --- Code below is the primary difference between sha1.c and sha512.c --- */ + +/* SHA512 round constants */ +#define K(I) sha512_round_constants[I] +static u64 const sha512_round_constants[80] = { + u64init (0x428a2f98, 0xd728ae22), u64init (0x71374491, 0x23ef65cd), + u64init (0xb5c0fbcf, 0xec4d3b2f), u64init (0xe9b5dba5, 0x8189dbbc), + u64init (0x3956c25b, 0xf348b538), u64init (0x59f111f1, 0xb605d019), + u64init (0x923f82a4, 0xaf194f9b), u64init (0xab1c5ed5, 0xda6d8118), + u64init (0xd807aa98, 0xa3030242), u64init (0x12835b01, 0x45706fbe), + u64init (0x243185be, 0x4ee4b28c), u64init (0x550c7dc3, 0xd5ffb4e2), + u64init (0x72be5d74, 0xf27b896f), u64init (0x80deb1fe, 0x3b1696b1), + u64init (0x9bdc06a7, 0x25c71235), u64init (0xc19bf174, 0xcf692694), + u64init (0xe49b69c1, 0x9ef14ad2), u64init (0xefbe4786, 0x384f25e3), + u64init (0x0fc19dc6, 0x8b8cd5b5), u64init (0x240ca1cc, 0x77ac9c65), + u64init (0x2de92c6f, 0x592b0275), u64init (0x4a7484aa, 0x6ea6e483), + u64init (0x5cb0a9dc, 0xbd41fbd4), u64init (0x76f988da, 0x831153b5), + u64init (0x983e5152, 0xee66dfab), u64init (0xa831c66d, 0x2db43210), + u64init (0xb00327c8, 0x98fb213f), u64init (0xbf597fc7, 0xbeef0ee4), + u64init (0xc6e00bf3, 0x3da88fc2), u64init (0xd5a79147, 0x930aa725), + u64init (0x06ca6351, 0xe003826f), u64init (0x14292967, 0x0a0e6e70), + u64init (0x27b70a85, 0x46d22ffc), u64init (0x2e1b2138, 0x5c26c926), + u64init (0x4d2c6dfc, 0x5ac42aed), u64init (0x53380d13, 0x9d95b3df), + u64init (0x650a7354, 0x8baf63de), u64init (0x766a0abb, 0x3c77b2a8), + u64init (0x81c2c92e, 0x47edaee6), u64init (0x92722c85, 0x1482353b), + u64init (0xa2bfe8a1, 0x4cf10364), u64init (0xa81a664b, 0xbc423001), + u64init (0xc24b8b70, 0xd0f89791), u64init (0xc76c51a3, 0x0654be30), + u64init (0xd192e819, 0xd6ef5218), u64init (0xd6990624, 0x5565a910), + u64init (0xf40e3585, 0x5771202a), u64init (0x106aa070, 0x32bbd1b8), + u64init (0x19a4c116, 0xb8d2d0c8), u64init (0x1e376c08, 0x5141ab53), + u64init (0x2748774c, 0xdf8eeb99), u64init (0x34b0bcb5, 0xe19b48a8), + u64init (0x391c0cb3, 0xc5c95a63), u64init (0x4ed8aa4a, 0xe3418acb), + u64init (0x5b9cca4f, 0x7763e373), u64init (0x682e6ff3, 0xd6b2b8a3), + u64init (0x748f82ee, 0x5defb2fc), u64init (0x78a5636f, 0x43172f60), + u64init (0x84c87814, 0xa1f0ab72), u64init (0x8cc70208, 0x1a6439ec), + u64init (0x90befffa, 0x23631e28), u64init (0xa4506ceb, 0xde82bde9), + u64init (0xbef9a3f7, 0xb2c67915), u64init (0xc67178f2, 0xe372532b), + u64init (0xca273ece, 0xea26619c), u64init (0xd186b8c7, 0x21c0c207), + u64init (0xeada7dd6, 0xcde0eb1e), u64init (0xf57d4f7f, 0xee6ed178), + u64init (0x06f067aa, 0x72176fba), u64init (0x0a637dc5, 0xa2c898a6), + u64init (0x113f9804, 0xbef90dae), u64init (0x1b710b35, 0x131c471b), + u64init (0x28db77f5, 0x23047d84), u64init (0x32caab7b, 0x40c72493), + u64init (0x3c9ebe0a, 0x15c9bebc), u64init (0x431d67c4, 0x9c100d4c), + u64init (0x4cc5d4be, 0xcb3e42b6), u64init (0x597f299c, 0xfc657e2a), + u64init (0x5fcb6fab, 0x3ad6faec), u64init (0x6c44198c, 0x4a475817), +}; + +/* Round functions. */ +#define F2(A, B, C) u64or (u64and (A, B), u64and (C, u64or (A, B))) +#define F1(E, F, G) u64xor (G, u64and (E, u64xor (F, G))) + +/* Process LEN bytes of BUFFER, accumulating context into CTX. + It is assumed that LEN % 128 == 0. + Most of this code comes from GnuPG's cipher/sha1.c. */ + +void +sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx) +{ + u64 const *words = buffer; + u64 const *endp = words + len / sizeof (u64); + u64 x[16]; + u64 a = ctx->state[0]; + u64 b = ctx->state[1]; + u64 c = ctx->state[2]; + u64 d = ctx->state[3]; + u64 e = ctx->state[4]; + u64 f = ctx->state[5]; + u64 g = ctx->state[6]; + u64 h = ctx->state[7]; + u64 lolen = u64size (len); + + /* First increment the byte count. FIPS PUB 180-2 specifies the possible + length of the file up to 2^128 bits. Here we only compute the + number of bytes. Do a double word increment. */ + ctx->total[0] = u64plus (ctx->total[0], lolen); + ctx->total[1] = u64plus (ctx->total[1], + u64plus (u64size (len >> 31 >> 31 >> 2), + u64lo (u64lt (ctx->total[0], lolen)))); + +#define S0(x) u64xor (u64rol(x, 63), u64xor (u64rol (x, 56), u64shr (x, 7))) +#define S1(x) u64xor (u64rol (x, 45), u64xor (u64rol (x, 3), u64shr (x, 6))) +#define SS0(x) u64xor (u64rol (x, 36), u64xor (u64rol (x, 30), u64rol (x, 25))) +#define SS1(x) u64xor (u64rol(x, 50), u64xor (u64rol (x, 46), u64rol (x, 23))) + +#define M(I) (x[(I) & 15] \ + = u64plus (x[(I) & 15], \ + u64plus (S1 (x[((I) - 2) & 15]), \ + u64plus (x[((I) - 7) & 15], \ + S0 (x[((I) - 15) & 15]))))) + +#define R(A, B, C, D, E, F, G, H, K, M) \ + do \ + { \ + u64 t0 = u64plus (SS0 (A), F2 (A, B, C)); \ + u64 t1 = \ + u64plus (H, u64plus (SS1 (E), \ + u64plus (F1 (E, F, G), u64plus (K, M)))); \ + D = u64plus (D, t1); \ + H = u64plus (t0, t1); \ + } \ + while (0) + + while (words < endp) + { + int t; + /* FIXME: see sha1.c for a better implementation. */ + for (t = 0; t < 16; t++) + { + x[t] = SWAP (*words); + words++; + } + + R( a, b, c, d, e, f, g, h, K( 0), x[ 0] ); + R( h, a, b, c, d, e, f, g, K( 1), x[ 1] ); + R( g, h, a, b, c, d, e, f, K( 2), x[ 2] ); + R( f, g, h, a, b, c, d, e, K( 3), x[ 3] ); + R( e, f, g, h, a, b, c, d, K( 4), x[ 4] ); + R( d, e, f, g, h, a, b, c, K( 5), x[ 5] ); + R( c, d, e, f, g, h, a, b, K( 6), x[ 6] ); + R( b, c, d, e, f, g, h, a, K( 7), x[ 7] ); + R( a, b, c, d, e, f, g, h, K( 8), x[ 8] ); + R( h, a, b, c, d, e, f, g, K( 9), x[ 9] ); + R( g, h, a, b, c, d, e, f, K(10), x[10] ); + R( f, g, h, a, b, c, d, e, K(11), x[11] ); + R( e, f, g, h, a, b, c, d, K(12), x[12] ); + R( d, e, f, g, h, a, b, c, K(13), x[13] ); + R( c, d, e, f, g, h, a, b, K(14), x[14] ); + R( b, c, d, e, f, g, h, a, K(15), x[15] ); + R( a, b, c, d, e, f, g, h, K(16), M(16) ); + R( h, a, b, c, d, e, f, g, K(17), M(17) ); + R( g, h, a, b, c, d, e, f, K(18), M(18) ); + R( f, g, h, a, b, c, d, e, K(19), M(19) ); + R( e, f, g, h, a, b, c, d, K(20), M(20) ); + R( d, e, f, g, h, a, b, c, K(21), M(21) ); + R( c, d, e, f, g, h, a, b, K(22), M(22) ); + R( b, c, d, e, f, g, h, a, K(23), M(23) ); + R( a, b, c, d, e, f, g, h, K(24), M(24) ); + R( h, a, b, c, d, e, f, g, K(25), M(25) ); + R( g, h, a, b, c, d, e, f, K(26), M(26) ); + R( f, g, h, a, b, c, d, e, K(27), M(27) ); + R( e, f, g, h, a, b, c, d, K(28), M(28) ); + R( d, e, f, g, h, a, b, c, K(29), M(29) ); + R( c, d, e, f, g, h, a, b, K(30), M(30) ); + R( b, c, d, e, f, g, h, a, K(31), M(31) ); + R( a, b, c, d, e, f, g, h, K(32), M(32) ); + R( h, a, b, c, d, e, f, g, K(33), M(33) ); + R( g, h, a, b, c, d, e, f, K(34), M(34) ); + R( f, g, h, a, b, c, d, e, K(35), M(35) ); + R( e, f, g, h, a, b, c, d, K(36), M(36) ); + R( d, e, f, g, h, a, b, c, K(37), M(37) ); + R( c, d, e, f, g, h, a, b, K(38), M(38) ); + R( b, c, d, e, f, g, h, a, K(39), M(39) ); + R( a, b, c, d, e, f, g, h, K(40), M(40) ); + R( h, a, b, c, d, e, f, g, K(41), M(41) ); + R( g, h, a, b, c, d, e, f, K(42), M(42) ); + R( f, g, h, a, b, c, d, e, K(43), M(43) ); + R( e, f, g, h, a, b, c, d, K(44), M(44) ); + R( d, e, f, g, h, a, b, c, K(45), M(45) ); + R( c, d, e, f, g, h, a, b, K(46), M(46) ); + R( b, c, d, e, f, g, h, a, K(47), M(47) ); + R( a, b, c, d, e, f, g, h, K(48), M(48) ); + R( h, a, b, c, d, e, f, g, K(49), M(49) ); + R( g, h, a, b, c, d, e, f, K(50), M(50) ); + R( f, g, h, a, b, c, d, e, K(51), M(51) ); + R( e, f, g, h, a, b, c, d, K(52), M(52) ); + R( d, e, f, g, h, a, b, c, K(53), M(53) ); + R( c, d, e, f, g, h, a, b, K(54), M(54) ); + R( b, c, d, e, f, g, h, a, K(55), M(55) ); + R( a, b, c, d, e, f, g, h, K(56), M(56) ); + R( h, a, b, c, d, e, f, g, K(57), M(57) ); + R( g, h, a, b, c, d, e, f, K(58), M(58) ); + R( f, g, h, a, b, c, d, e, K(59), M(59) ); + R( e, f, g, h, a, b, c, d, K(60), M(60) ); + R( d, e, f, g, h, a, b, c, K(61), M(61) ); + R( c, d, e, f, g, h, a, b, K(62), M(62) ); + R( b, c, d, e, f, g, h, a, K(63), M(63) ); + R( a, b, c, d, e, f, g, h, K(64), M(64) ); + R( h, a, b, c, d, e, f, g, K(65), M(65) ); + R( g, h, a, b, c, d, e, f, K(66), M(66) ); + R( f, g, h, a, b, c, d, e, K(67), M(67) ); + R( e, f, g, h, a, b, c, d, K(68), M(68) ); + R( d, e, f, g, h, a, b, c, K(69), M(69) ); + R( c, d, e, f, g, h, a, b, K(70), M(70) ); + R( b, c, d, e, f, g, h, a, K(71), M(71) ); + R( a, b, c, d, e, f, g, h, K(72), M(72) ); + R( h, a, b, c, d, e, f, g, K(73), M(73) ); + R( g, h, a, b, c, d, e, f, K(74), M(74) ); + R( f, g, h, a, b, c, d, e, K(75), M(75) ); + R( e, f, g, h, a, b, c, d, K(76), M(76) ); + R( d, e, f, g, h, a, b, c, K(77), M(77) ); + R( c, d, e, f, g, h, a, b, K(78), M(78) ); + R( b, c, d, e, f, g, h, a, K(79), M(79) ); + + a = ctx->state[0] = u64plus (ctx->state[0], a); + b = ctx->state[1] = u64plus (ctx->state[1], b); + c = ctx->state[2] = u64plus (ctx->state[2], c); + d = ctx->state[3] = u64plus (ctx->state[3], d); + e = ctx->state[4] = u64plus (ctx->state[4], e); + f = ctx->state[5] = u64plus (ctx->state[5], f); + g = ctx->state[6] = u64plus (ctx->state[6], g); + h = ctx->state[7] = u64plus (ctx->state[7], h); + } +} + +#endif + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/autotools/gnulib/sha512.h b/autotools/gnulib/sha512.h new file mode 100644 index 00000000..f6bac854 --- /dev/null +++ b/autotools/gnulib/sha512.h @@ -0,0 +1,143 @@ +/* Declarations of functions and data types used for SHA512 and SHA384 sum + library functions. + Copyright (C) 2005-2006, 2008-2024 Free Software Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +#ifndef SHA512_H +# define SHA512_H 1 + +/* This file uses HAVE_OPENSSL_SHA512. */ +# if !_GL_CONFIG_H_INCLUDED +# error "Please include config.h first." +# endif + +# include <stdio.h> +# include "u64.h" + +# if HAVE_OPENSSL_SHA512 +# ifndef OPENSSL_API_COMPAT +# define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API. */ +# endif +/* If <openssl/macros.h> would give a compile-time error, don't use OpenSSL. */ +# include <openssl/opensslv.h> +# if OPENSSL_VERSION_MAJOR >= 3 +# include <openssl/configuration.h> +# if (OPENSSL_CONFIGURED_API \ + < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \ + ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \ + + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \ + + ((OPENSSL_API_COMPAT >> 12) & 0xFF))) +# undef HAVE_OPENSSL_SHA512 +# endif +# endif +# if HAVE_OPENSSL_SHA512 +# include <openssl/sha.h> +# endif +# endif + +# ifdef __cplusplus +extern "C" { +# endif + +enum { SHA384_DIGEST_SIZE = 384 / 8 }; +enum { SHA512_DIGEST_SIZE = 512 / 8 }; + +# if HAVE_OPENSSL_SHA512 +# define GL_OPENSSL_NAME 384 +# include "gl_openssl.h" +# define GL_OPENSSL_NAME 512 +# include "gl_openssl.h" +# else +/* Structure to save state of computation between the single steps. */ +struct sha512_ctx +{ + u64 state[8]; + + u64 total[2]; + size_t buflen; /* ≥ 0, ≤ 256 */ + u64 buffer[32]; /* 256 bytes; the first buflen bytes are in use */ +}; + +/* Initialize structure containing state of computation. */ +extern void sha512_init_ctx (struct sha512_ctx *ctx); +extern void sha384_init_ctx (struct sha512_ctx *ctx); + +/* Starting with the result of former calls of this function (or the + initialization function update the context for the next LEN bytes + starting at BUFFER. + It is necessary that LEN is a multiple of 128!!! */ +extern void sha512_process_block (const void *buffer, size_t len, + struct sha512_ctx *ctx); + +/* Starting with the result of former calls of this function (or the + initialization function update the context for the next LEN bytes + starting at BUFFER. + It is NOT required that LEN is a multiple of 128. */ +extern void sha512_process_bytes (const void *buffer, size_t len, + struct sha512_ctx *ctx); + +/* Process the remaining bytes in the buffer and put result from CTX + in first 64 (48) bytes following RESBUF. The result is always in little + endian byte order, so that a byte-wise output yields to the wanted + ASCII representation of the message digest. */ +extern void *sha512_finish_ctx (struct sha512_ctx *ctx, void *restrict resbuf); +extern void *sha384_finish_ctx (struct sha512_ctx *ctx, void *restrict resbuf); + + +/* Put result from CTX in first 64 (48) bytes following RESBUF. The result is + always in little endian byte order, so that a byte-wise output yields + to the wanted ASCII representation of the message digest. + + IMPORTANT: On some systems it is required that RESBUF is correctly + aligned for a 32 bits value. */ +extern void *sha512_read_ctx (const struct sha512_ctx *ctx, + void *restrict resbuf); +extern void *sha384_read_ctx (const struct sha512_ctx *ctx, + void *restrict resbuf); + + +/* Compute SHA512 (SHA384) message digest for LEN bytes beginning at BUFFER. + The result is always in little endian byte order, so that a byte-wise + output yields to the wanted ASCII representation of the message + digest. */ +extern void *sha512_buffer (const char *buffer, size_t len, + void *restrict resblock); +extern void *sha384_buffer (const char *buffer, size_t len, + void *restrict resblock); + +# endif + +/* Compute SHA512 (SHA384) message digest for bytes read from STREAM. + STREAM is an open file stream. Regular files are handled more efficiently. + The contents of STREAM from its current position to its end will be read. + The case that the last operation on STREAM was an 'ungetc' is not supported. + The resulting message digest number will be written into the 64 (48) bytes + beginning at RESBLOCK. */ +extern int sha512_stream (FILE *stream, void *resblock); +extern int sha384_stream (FILE *stream, void *resblock); + + +# ifdef __cplusplus +} +# endif + +#endif + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/autotools/gnulib/stdckdint.h b/autotools/gnulib/stdckdint.h new file mode 100644 index 00000000..95987395 --- /dev/null +++ b/autotools/gnulib/stdckdint.h @@ -0,0 +1,36 @@ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* stdckdint.h -- checked integer arithmetic + + Copyright 2022-2024 Free Software Foundation, Inc. + + This program 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 program 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 <https://www.gnu.org/licenses/>. */ + +#ifndef _GL_STDCKDINT_H +#define _GL_STDCKDINT_H + +#include "intprops-internal.h" + +/* Store into *R the low-order bits of A + B, A - B, A * B, respectively. + Return 1 if the result overflows, 0 otherwise. + A, B, and *R can have any integer type other than char, bool, a + bit-precise integer type, or an enumeration type. + + These are like the standard macros introduced in C23, except that + arguments should not have side effects. */ + +#define ckd_add(r, a, b) ((bool) _GL_INT_ADD_WRAPV (a, b, r)) +#define ckd_sub(r, a, b) ((bool) _GL_INT_SUBTRACT_WRAPV (a, b, r)) +#define ckd_mul(r, a, b) ((bool) _GL_INT_MULTIPLY_WRAPV (a, b, r)) + +#endif /* _GL_STDCKDINT_H */ diff --git a/autotools/gnulib/stdckdint.in.h b/autotools/gnulib/stdckdint.in.h new file mode 100644 index 00000000..91848806 --- /dev/null +++ b/autotools/gnulib/stdckdint.in.h @@ -0,0 +1,35 @@ +/* stdckdint.h -- checked integer arithmetic + + Copyright 2022-2024 Free Software Foundation, Inc. + + This program 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 program 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 <https://www.gnu.org/licenses/>. */ + +#ifndef _GL_STDCKDINT_H +#define _GL_STDCKDINT_H + +#include "intprops-internal.h" + +/* Store into *R the low-order bits of A + B, A - B, A * B, respectively. + Return 1 if the result overflows, 0 otherwise. + A, B, and *R can have any integer type other than char, bool, a + bit-precise integer type, or an enumeration type. + + These are like the standard macros introduced in C23, except that + arguments should not have side effects. */ + +#define ckd_add(r, a, b) ((bool) _GL_INT_ADD_WRAPV (a, b, r)) +#define ckd_sub(r, a, b) ((bool) _GL_INT_SUBTRACT_WRAPV (a, b, r)) +#define ckd_mul(r, a, b) ((bool) _GL_INT_MULTIPLY_WRAPV (a, b, r)) + +#endif /* _GL_STDCKDINT_H */ diff --git a/autotools/gnulib/stddef.h b/autotools/gnulib/stddef.h new file mode 100644 index 00000000..f0529a6f --- /dev/null +++ b/autotools/gnulib/stddef.h @@ -0,0 +1,214 @@ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues. + + Copyright (C) 2009-2024 Free Software Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +/* Written by Eric Blake. */ + +/* + * POSIX 2008 and ISO C 23 <stddef.h> for platforms that have issues. + * <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stddef.h.html> + */ + +#if __GNUC__ >= 3 +#pragma GCC system_header +#endif + + +#if defined __need_wchar_t || defined __need_size_t \ + || defined __need_ptrdiff_t || defined __need_NULL \ + || defined __need_wint_t +/* Special invocation convention inside gcc header files. In + particular, gcc provides a version of <stddef.h> that blindly + redefines NULL even when __need_wint_t was defined, even though + wint_t is not normally provided by <stddef.h>. Hence, we must + remember if special invocation has ever been used to obtain wint_t, + in which case we need to clean up NULL yet again. */ + +# if !(defined _GL_STDDEF_H && defined _GL_STDDEF_WINT_T) +# ifdef __need_wint_t +# define _GL_STDDEF_WINT_T +# endif +# include_next <stddef.h> + /* On TinyCC, make sure that the macros that indicate the special invocation + convention get undefined. */ +# undef __need_wchar_t +# undef __need_size_t +# undef __need_ptrdiff_t +# undef __need_NULL +# undef __need_wint_t +# endif + +#else +/* Normal invocation convention. */ + +# ifndef _GL_STDDEF_H + +/* On AIX 7.2, with xlc in 64-bit mode, <stddef.h> defines max_align_t to a + type with alignment 4, but 'long' has alignment 8. */ +# if defined _AIX && defined __LP64__ && !1 +# if !GNULIB_defined_max_align_t +# ifdef _MAX_ALIGN_T +/* /usr/include/stddef.h has already defined max_align_t. Override it. */ +typedef long rpl_max_align_t; +# define max_align_t rpl_max_align_t +# else +/* Prevent /usr/include/stddef.h from defining max_align_t. */ +typedef long max_align_t; +# define _MAX_ALIGN_T +# endif +# define __CLANG_MAX_ALIGN_T_DEFINED +# define GNULIB_defined_max_align_t 1 +# endif +# endif + +/* The include_next requires a split double-inclusion guard. */ + +# include_next <stddef.h> + +/* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ +# if (0 \ + && (!defined _GL_STDDEF_H || defined _GL_STDDEF_WINT_T)) +# undef NULL +# ifdef __cplusplus + /* ISO C++ says that the macro NULL must expand to an integer constant + expression, hence '((void *) 0)' is not allowed in C++. */ +# if __GNUG__ >= 3 + /* GNU C++ has a __null macro that behaves like an integer ('int' or + 'long') but has the same size as a pointer. Use that, to avoid + warnings. */ +# define NULL __null +# else +# define NULL 0L +# endif +# else +# define NULL ((void *) 0) +# endif +# endif + +# ifndef _GL_STDDEF_H +# define _GL_STDDEF_H + +/* This file uses _Noreturn, _GL_ATTRIBUTE_NOTHROW. */ +#if !_GL_CONFIG_H_INCLUDED + #error "Please include config.h first." +#endif + +/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. + */ +#ifndef _GL_ATTRIBUTE_NOTHROW +# if defined __cplusplus +# if (__GNUC__ + (__GNUC_MINOR__ >= 8) > 2) || __clang_major >= 4 +# if __cplusplus >= 201103L +# define _GL_ATTRIBUTE_NOTHROW noexcept (true) +# else +# define _GL_ATTRIBUTE_NOTHROW throw () +# endif +# else +# define _GL_ATTRIBUTE_NOTHROW +# endif +# else +# if (__GNUC__ + (__GNUC_MINOR__ >= 3) > 3) || defined __clang__ +# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) +# else +# define _GL_ATTRIBUTE_NOTHROW +# endif +# endif +#endif + +/* Some platforms lack wchar_t. */ +#if !1 +# define wchar_t int +#endif + +/* Some platforms lack max_align_t. The check for _GCC_MAX_ALIGN_T is + a hack in case the configure-time test was done with g++ even though + we are currently compiling with gcc. + On MSVC, max_align_t is defined only in C++ mode, after <cstddef> was + included. Its definition is good since it has an alignment of 8 (on x86 + and x86_64). + Similarly on OS/2 kLIBC. */ +#if (defined _MSC_VER || (defined __KLIBC__ && !defined __LIBCN__)) \ + && defined __cplusplus +# include <cstddef> +#else +# if ! (1 || (defined _GCC_MAX_ALIGN_T && !defined __clang__)) +# if !GNULIB_defined_max_align_t +/* On the x86, the maximum storage alignment of double, long, etc. is 4, + but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8, + and the C11 standard allows this. Work around this problem by + using __alignof__ (which returns 8 for double) rather than _Alignof + (which returns 4), and align each union member accordingly. */ +# if defined __GNUC__ || (__clang_major__ >= 4) +# define _GL_STDDEF_ALIGNAS(type) \ + __attribute__ ((__aligned__ (__alignof__ (type)))) +# else +# define _GL_STDDEF_ALIGNAS(type) /* */ +# endif +typedef union +{ + char *__p _GL_STDDEF_ALIGNAS (char *); + double __d _GL_STDDEF_ALIGNAS (double); + long double __ld _GL_STDDEF_ALIGNAS (long double); + long int __i _GL_STDDEF_ALIGNAS (long int); +} rpl_max_align_t; +# define max_align_t rpl_max_align_t +# define __CLANG_MAX_ALIGN_T_DEFINED +# define GNULIB_defined_max_align_t 1 +# endif +# endif +#endif + +/* ISO C 23 § 7.21.1 The unreachable macro */ +#ifndef unreachable + +/* Code borrowed from verify.h. */ +# ifndef _GL_HAS_BUILTIN_UNREACHABLE +# if defined __clang_major__ && __clang_major__ < 5 +# define _GL_HAS_BUILTIN_UNREACHABLE 0 +# elif 4 < __GNUC__ + (5 <= __GNUC_MINOR__) +# define _GL_HAS_BUILTIN_UNREACHABLE 1 +# elif defined __has_builtin +# define _GL_HAS_BUILTIN_UNREACHABLE __has_builtin (__builtin_unreachable) +# else +# define _GL_HAS_BUILTIN_UNREACHABLE 0 +# endif +# endif + +# if _GL_HAS_BUILTIN_UNREACHABLE +# define unreachable() __builtin_unreachable () +# elif 1200 <= _MSC_VER +# define unreachable() __assume (0) +# else +/* Declare abort(), without including <stdlib.h>. */ +extern +# if defined __cplusplus +"C" +# endif +_Noreturn +void abort (void) +# if defined __cplusplus && (__GLIBC__ >= 2) +_GL_ATTRIBUTE_NOTHROW +# endif +; +# define unreachable() abort () +# endif + +#endif + +# endif /* _GL_STDDEF_H */ +# endif /* _GL_STDDEF_H */ +#endif /* __need_XXX */ diff --git a/autotools/gnulib/u64.c b/autotools/gnulib/u64.c new file mode 100644 index 00000000..f788470b --- /dev/null +++ b/autotools/gnulib/u64.c @@ -0,0 +1,22 @@ +/* uint64_t-like operations that work even on hosts lacking uint64_t + + Copyright (C) 2012-2024 Free Software Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +#include <config.h> + +#define _GL_U64_INLINE _GL_EXTERN_INLINE +#include "u64.h" +typedef int dummy; diff --git a/autotools/gnulib/u64.h b/autotools/gnulib/u64.h new file mode 100644 index 00000000..63339cca --- /dev/null +++ b/autotools/gnulib/u64.h @@ -0,0 +1,181 @@ +/* uint64_t-like operations that work even on hosts lacking uint64_t + + Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. + + 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 <https://www.gnu.org/licenses/>. */ + +/* Written by Paul Eggert. */ + +/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ +#if !_GL_CONFIG_H_INCLUDED + #error "Please include config.h first." +#endif + +#include <stdint.h> + +_GL_INLINE_HEADER_BEGIN +#ifndef _GL_U64_INLINE +# define _GL_U64_INLINE _GL_INLINE +#endif + +/* Return X rotated left by N bits, where 0 < N < 64. */ +#define u64rol(x, n) u64or (u64shl (x, n), u64shr (x, 64 - n)) + +#ifdef UINT64_MAX + +/* Native implementations are trivial. See below for comments on what + these operations do. */ +typedef uint64_t u64; +# define u64hilo(hi, lo) ((u64) (((u64) (hi) << 32) + (lo))) +# define u64init(hi, lo) u64hilo (hi, lo) +# define u64lo(x) ((u64) (x)) +# define u64size(x) u64lo (x) +# define u64lt(x, y) ((x) < (y)) +# define u64and(x, y) ((x) & (y)) +# define u64or(x, y) ((x) | (y)) +# define u64xor(x, y) ((x) ^ (y)) +# define u64plus(x, y) ((x) + (y)) +# define u64shl(x, n) ((x) << (n)) +# define u64shr(x, n) ((x) >> (n)) + +#else + +/* u64 is a 64-bit unsigned integer value. + u64init (HI, LO), is like u64hilo (HI, LO), but for use in + initializer contexts. */ +# ifdef WORDS_BIGENDIAN +typedef struct { uint32_t hi, lo; } u64; +# define u64init(hi, lo) { hi, lo } +# else +typedef struct { uint32_t lo, hi; } u64; +# define u64init(hi, lo) { lo, hi } +# endif + +/* Given the high and low-order 32-bit quantities HI and LO, return a u64 + value representing (HI << 32) + LO. */ +_GL_U64_INLINE u64 +u64hilo (uint32_t hi, uint32_t lo) +{ + u64 r; + r.hi = hi; + r.lo = lo; + return r; +} + +/* Return a u64 value representing LO. */ +_GL_U64_INLINE u64 +u64lo (uint32_t lo) +{ + u64 r; + r.hi = 0; + r.lo = lo; + return r; +} + +/* Return a u64 value representing SIZE. */ +_GL_U64_INLINE u64 +u64size (size_t size) +{ + u64 r; + r.hi = size >> 31 >> 1; + r.lo = size; + return r; +} + +/* Return X < Y. */ +_GL_U64_INLINE int +u64lt (u64 x, u64 y) +{ + return x.hi < y.hi || (x.hi == y.hi && x.lo < y.lo); +} + +/* Return X & Y. */ +_GL_U64_INLINE u64 +u64and (u64 x, u64 y) +{ + u64 r; + r.hi = x.hi & y.hi; + r.lo = x.lo & y.lo; + return r; +} + +/* Return X | Y. */ +_GL_U64_INLINE u64 +u64or (u64 x, u64 y) +{ + u64 r; + r.hi = x.hi | y.hi; + r.lo = x.lo | y.lo; + return r; +} + +/* Return X ^ Y. */ +_GL_U64_INLINE u64 +u64xor (u64 x, u64 y) +{ + u64 r; + r.hi = x.hi ^ y.hi; + r.lo = x.lo ^ y.lo; + return r; +} + +/* Return X + Y. */ +_GL_U64_INLINE u64 +u64plus (u64 x, u64 y) +{ + u64 r; + r.lo = x.lo + y.lo; + r.hi = x.hi + y.hi + (r.lo < x.lo); + return r; +} + +/* Return X << N. */ +_GL_U64_INLINE u64 +u64shl (u64 x, int n) +{ + u64 r; + if (n < 32) + { + r.hi = (x.hi << n) | (x.lo >> (32 - n)); + r.lo = x.lo << n; + } + else + { + r.hi = x.lo << (n - 32); + r.lo = 0; + } + return r; +} + +/* Return X >> N. */ +_GL_U64_INLINE u64 +u64shr (u64 x, int n) +{ + u64 r; + if (n < 32) + { + r.hi = x.hi >> n; + r.lo = (x.hi << (32 - n)) | (x.lo >> n); + } + else + { + r.hi = 0; + r.lo = x.hi >> (n - 32); + } + return r; +} + +#endif + +_GL_INLINE_HEADER_END diff --git a/autotools/m4/access.m4 b/autotools/m4/access.m4 new file mode 100644 index 00000000..c2c347f6 --- /dev/null +++ b/autotools/m4/access.m4 @@ -0,0 +1,65 @@ +# access.m4 serial 3 +dnl Copyright (C) 2019-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_ACCESS], +[ + AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) + dnl On native Windows, access (= _access) does not support the X_OK mode. + dnl It works by chance on some versions of mingw. + case "$host_os" in + mingw* | windows*) + REPLACE_ACCESS=1 + ;; + *) + dnl Mac OS X 10.5 mistakenly allows access("link-to-file/",amode). + AC_CHECK_FUNCS_ONCE([lstat]) + AC_CACHE_CHECK([whether access honors trailing slash], + [gl_cv_func_access_slash_works], + [# Assume that if we have lstat, we can also check symlinks. + if test $ac_cv_func_lstat = yes; then + rm -rf conftest.f conftest.lnk + touch conftest.f || AC_MSG_ERROR([cannot create temporary files]) + ln -s conftest.f conftest.lnk + AC_RUN_IFELSE( + [AC_LANG_PROGRAM([[ + #include <unistd.h> + ]], + [[int result = 0; + if (access ("conftest.lnk/", R_OK) == 0) + result |= 1; + return result; + ]])], + [gl_cv_func_access_slash_works=yes], + [gl_cv_func_access_slash_works=no], + dnl When crosscompiling, assume access is broken. + [case "$host_os" in + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_access_slash_works="guessing yes" ;; + # Guess yes on systems that emulate the Linux system calls. + midipix*) gl_cv_func_access_slash_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_access_slash_works="guessing yes" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_access_slash_works="$gl_cross_guess_normal" ;; + esac + ]) + rm -rf conftest.f conftest.lnk + else + gl_cv_func_access_slash_works="guessing yes" + fi + ]) + case "$gl_cv_func_access_slash_works" in + *yes) ;; + *) + REPLACE_ACCESS=1 + AC_DEFINE([ACCESS_TRAILING_SLASH_BUG], [1], + [Define if access does not correctly handle trailing slashes.]) + ;; + esac + ;; + esac +]) diff --git a/autotools/m4/assert_h.m4 b/autotools/m4/assert_h.m4 new file mode 100644 index 00000000..a73e45f0 --- /dev/null +++ b/autotools/m4/assert_h.m4 @@ -0,0 +1,73 @@ +# assert-h.m4 +dnl Copyright (C) 2011-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Paul Eggert. + +AC_DEFUN([gl_ASSERT_H], +[ + AC_CACHE_CHECK([for static_assert], [gl_cv_static_assert], + [gl_save_CFLAGS=$CFLAGS + for gl_working in "yes, a keyword" "yes, an <assert.h> macro"; do + AS_CASE([$gl_working], + [*assert.h*], [CFLAGS="$gl_save_CFLAGS -DINCLUDE_ASSERT_H"]) + + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#if defined __clang__ && __STDC_VERSION__ < 202311 + #pragma clang diagnostic error "-Wc2x-extensions" + #pragma clang diagnostic error "-Wc++1z-extensions" + #endif + #ifdef INCLUDE_ASSERT_H + #include <assert.h> + #endif + static_assert (2 + 2 == 4, "arithmetic does not work"); + static_assert (2 + 2 == 4); + ]], + [[ + static_assert (sizeof (char) == 1, "sizeof does not work"); + static_assert (sizeof (char) == 1); + ]])], + [gl_cv_static_assert=$gl_working], + [gl_cv_static_assert=no]) + CFLAGS=$gl_save_CFLAGS + test "$gl_cv_static_assert" != no && break + done]) + + GL_GENERATE_ASSERT_H=false + AS_CASE([$gl_cv_static_assert], + [yes*keyword*], + [AC_DEFINE([HAVE_C_STATIC_ASSERT], [1], + [Define to 1 if the static_assert keyword works.])], + [no], + [GL_GENERATE_ASSERT_H=true + gl_NEXT_HEADERS([assert.h])]) + + dnl The "zz" puts this toward config.h's end, to avoid potential + dnl collisions with other definitions. + dnl #undef assert so that programs are not tempted to use it without + dnl specifically including assert.h. + dnl #undef __ASSERT_H__ so that on IRIX, when programs later include + dnl <assert.h>, this include actually defines assert. + dnl Break the #undef_s apart with a comment so that 'configure' does + dnl not comment them out. + AH_VERBATIM([zzstatic_assert], +[#if (!defined HAVE_C_STATIC_ASSERT && !defined assert \ + && (!defined __cplusplus \ + || (__cpp_static_assert < 201411 \ + && __GNUG__ < 6 && __clang_major__ < 6))) + #include <assert.h> + #undef/**/assert + #ifdef __sgi + #undef/**/__ASSERT_H__ + #endif + /* Solaris 11.4 <assert.h> defines static_assert as a macro with 2 arguments. + We need it also to be invocable with a single argument. */ + #if defined __sun && (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus + #undef/**/static_assert + #define static_assert _Static_assert + #endif +#endif]) +]) diff --git a/autotools/m4/byteswap.m4 b/autotools/m4/byteswap.m4 new file mode 100644 index 00000000..5493d901 --- /dev/null +++ b/autotools/m4/byteswap.m4 @@ -0,0 +1,17 @@ +# byteswap.m4 serial 5 +dnl Copyright (C) 2005, 2007, 2009-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Written by Oskar Liljeblad. + +AC_DEFUN([gl_BYTESWAP], +[ + dnl Prerequisites of lib/byteswap.in.h. + AC_CHECK_HEADERS([byteswap.h], [ + GL_GENERATE_BYTESWAP_H=false + ], [ + GL_GENERATE_BYTESWAP_H=true + ]) +]) diff --git a/autotools/m4/c-bool.m4 b/autotools/m4/c-bool.m4 new file mode 100644 index 00000000..44fba3c0 --- /dev/null +++ b/autotools/m4/c-bool.m4 @@ -0,0 +1,51 @@ +# Check for bool that conforms to C2023. + +dnl Copyright 2022-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_C_BOOL], +[ + AC_CACHE_CHECK([for bool, true, false], [gl_cv_c_bool], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([[ + #if true == false + #error "true == false" + #endif + extern bool b; + bool b = true == false;]])], + [gl_cv_c_bool=yes], + [gl_cv_c_bool=no])]) + if test "$gl_cv_c_bool" = yes; then + AC_DEFINE([HAVE_C_BOOL], [1], + [Define to 1 if bool, true and false work as per C2023.]) + fi + + AC_CHECK_HEADERS_ONCE([stdbool.h]) + + dnl The "zz" puts this toward config.h's end, to avoid potential + dnl collisions with other definitions. + dnl If 'bool', 'true' and 'false' do not work, arrange for them to work. + dnl In C, this means including <stdbool.h> if it is not already included. + dnl However, if the preprocessor mistakenly treats 'true' as 0, + dnl define it to a bool expression equal to 1; this is needed in + dnl Sun C++ 5.11 (Oracle Solaris Studio 12.2, 2010) and older. + AH_VERBATIM([zzbool], +[#ifndef HAVE_C_BOOL +# if !defined __cplusplus && !defined __bool_true_false_are_defined +# if HAVE_STDBOOL_H +# include <stdbool.h> +# else +# if defined __SUNPRO_C +# error "<stdbool.h> is not usable with this configuration. To make it usable, add -D_STDC_C99= to $CC." +# else +# error "<stdbool.h> does not exist on this platform. Use gnulib module 'stdbool-c99' instead of gnulib module 'stdbool'." +# endif +# endif +# endif +# if !true +# define true (!false) +# endif +#endif]) +]) diff --git a/autotools/m4/codeset.m4 b/autotools/m4/codeset.m4 new file mode 100644 index 00000000..94dccce7 --- /dev/null +++ b/autotools/m4/codeset.m4 @@ -0,0 +1,24 @@ +# codeset.m4 serial 5 (gettext-0.18.2) +dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2024 Free Software +dnl Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_LANGINFO_CODESET], +[ + AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include <langinfo.h>]], + [[char* cs = nl_langinfo(CODESET); return !cs;]])], + [am_cv_langinfo_codeset=yes], + [am_cv_langinfo_codeset=no]) + ]) + if test $am_cv_langinfo_codeset = yes; then + AC_DEFINE([HAVE_LANGINFO_CODESET], [1], + [Define if you have <langinfo.h> and nl_langinfo(CODESET).]) + fi +]) diff --git a/autotools/m4/error_h.m4 b/autotools/m4/error_h.m4 new file mode 100644 index 00000000..f8016ce3 --- /dev/null +++ b/autotools/m4/error_h.m4 @@ -0,0 +1,124 @@ +# error_h.m4 serial 4 +dnl Copyright (C) 1996-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. +dnl Provide a working "error.h". + +AC_DEFUN_ONCE([gl_ERROR_H], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + gl_CHECK_NEXT_HEADERS([error.h]) + if test $ac_cv_header_error_h = yes; then + HAVE_ERROR_H=1 + else + HAVE_ERROR_H=0 + fi + AC_SUBST([HAVE_ERROR_H]) + + REPLACE_ERROR=0 + + gl_CHECK_FUNCS_ANDROID([error], [[#include <error.h>]]) + if test $ac_cv_func_error = yes; then + HAVE_ERROR=1 + else + HAVE_ERROR=0 + case "$gl_cv_onwards_func_error" in + future*) REPLACE_ERROR=1 ;; + esac + fi + + dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer + dnl maintained in Autoconf and because it invokes AC_LIBOBJ. + dnl We need to notice a missing declaration, like gl_CHECK_FUNCS_ANDROID does. + AC_CHECK_DECL([error_at_line], , , [[#include <error.h>]]) + if test $ac_cv_have_decl_error_at_line = yes; then + AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include <error.h>]], + [[error_at_line (0, 0, "", 0, "an error occurred");]])], + [ac_cv_lib_error_at_line=yes], + [ac_cv_lib_error_at_line=no])]) + else + ac_cv_lib_error_at_line=no + fi + if test $ac_cv_lib_error_at_line = yes; then + HAVE_ERROR_AT_LINE=1 + else + HAVE_ERROR_AT_LINE=0 + fi + REPLACE_ERROR_AT_LINE=0 + + if test $ac_cv_func_error = yes && test $ac_cv_lib_error_at_line = yes; then + dnl On Android 11, when error_print_progname is set, the output of the + dnl error() function contains an extra space. + AC_CACHE_CHECK([for working error function], + [gl_cv_func_working_error], + [if test $cross_compiling != yes; then + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[ + #include <error.h> + static void print_no_progname (void) {} + ]], [[ + error_print_progname = print_no_progname; + error (0, 0, "foo"); + ]]) + ], + [rm -f conftest.out + if test -s conftest$ac_exeext \ + && ./conftest$ac_exeext 2> conftest.out; then + if grep ' ' conftest.out >/dev/null; then + gl_cv_func_working_error=no + else + gl_cv_func_working_error=yes + fi + else + gl_cv_func_working_error=no + fi + rm -f conftest.out + ], + [gl_cv_func_working_error=no]) + else + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + #include <error.h> + ]], [[ + error (0, 0, "foo"); + ]]) + ], + [case "$host_os" in + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_working_error="guessing yes" ;; + # Guess no on Android. + linux*-android*) gl_cv_func_working_error="guessing no" ;; + # If we don't know, obey --enable-cross-guesses. + *) gl_cv_func_working_error="$gl_cross_guess_normal" ;; + esac + ], + [gl_cv_func_working_error=no]) + fi + ]) + case "$gl_cv_func_working_error" in + *no) + REPLACE_ERROR=1 + REPLACE_ERROR_AT_LINE=1 + ;; + esac + fi + + if test $HAVE_ERROR = 0 || test $REPLACE_ERROR = 1 \ + || test $HAVE_ERROR_AT_LINE = 0 || test $REPLACE_ERROR_AT_LINE = 1; then + COMPILE_ERROR_C=1 + else + COMPILE_ERROR_C=0 + fi + + AC_SUBST([HAVE_ERROR]) + AC_SUBST([HAVE_ERROR_AT_LINE]) + AC_SUBST([REPLACE_ERROR]) + AC_SUBST([REPLACE_ERROR_AT_LINE]) +]) diff --git a/autotools/m4/gl-openssl.m4 b/autotools/m4/gl-openssl.m4 new file mode 100644 index 00000000..7f389557 --- /dev/null +++ b/autotools/m4/gl-openssl.m4 @@ -0,0 +1,79 @@ +# gl-openssl.m4 serial 7 +dnl Copyright (C) 2013-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_SET_CRYPTO_CHECK_DEFAULT], +[ + m4_define([gl_CRYPTO_CHECK_DEFAULT], [$1]) +]) +gl_SET_CRYPTO_CHECK_DEFAULT([no]) + +AC_DEFUN([gl_CRYPTO_CHECK], +[ + dnl gnulib users set this before gl_INIT with gl_SET_CRYPTO_CHECK_DEFAULT() + m4_divert_once([DEFAULTS], [with_openssl_default='gl_CRYPTO_CHECK_DEFAULT']) + + dnl Only clear once, so crypto routines can be checked for individually + m4_divert_once([DEFAULTS], [LIB_CRYPTO=]) + + AC_ARG_WITH([openssl], + [[ --with-openssl[=ARG] use libcrypto hash routines for the hash functions + MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512. + Valid ARGs are: + 'yes', + 'no', + 'auto' => use if any version available, + 'auto-gpl-compat' => use if GPL compatible version + available, + 'optional' => use if available + and warn if not available; + Default is ']gl_CRYPTO_CHECK_DEFAULT['.]m4_ifdef([gl_AF_ALG], [ + Note also --with-linux-crypto, which will enable the + use of Linux kernel crypto routines (if available), + which has precedence for files.])], + [], + [with_openssl=$with_openssl_default]) + + AC_SUBST([LIB_CRYPTO]) + if test "x$with_openssl" != xno; then + if test "x$with_openssl" = xauto-gpl-compat; then + dnl OpenSSL versions < 3 are under the OpenSSL license, which is not + dnl GPL compatible. + dnl See <https://www.gnu.org/licenses/license-list.en.html#OpenSSL>. + AC_CACHE_CHECK([whether openssl is GPL compatible], + [gl_cv_openssl_gpl_compat], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + #include <openssl/opensslv.h> + #if OPENSSL_VERSION_MAJOR < 3 + #error "openssl >= version 3 not found" + #endif + ]])], + [gl_cv_openssl_gpl_compat=yes], + [gl_cv_openssl_gpl_compat=no])]) + fi + if test "x$with_openssl" != xauto-gpl-compat || + test "x$gl_cv_openssl_gpl_compat" = xyes; then + AC_CHECK_LIB([crypto], [$1], + [AC_CHECK_HEADERS( + m4_if([$1], [MD5], [openssl/md5.h], [openssl/sha.h]), + [LIB_CRYPTO=-lcrypto + AC_DEFINE([HAVE_OPENSSL_$1], [1], + [Define to 1 if libcrypto is used for $1.])])]) + fi + if test "x$LIB_CRYPTO" = x; then + message='openssl development library not found for $1. + If you want to install it, first find the pre-built package name: + - On Debian and Debian-based systems: libssl-dev, + - On Red Hat distributions: openssl-devel. + - Other: https://repology.org/project/openssl/versions' + if test "x$with_openssl" = xyes; then + AC_MSG_ERROR([$message]) + elif test "x$with_openssl" = xoptional; then + AC_MSG_WARN([$message]) + fi + fi + fi +]) diff --git a/autotools/m4/gnulib-cache.m4 b/autotools/m4/gnulib-cache.m4 index d70941ca..357e33ec 100644 --- a/autotools/m4/gnulib-cache.m4 +++ b/autotools/m4/gnulib-cache.m4 @@ -38,6 +38,10 @@ # --no-libtool \ # --macro-prefix=gl \ # --no-vc-files \ +# crypto/md5-buffer \ +# crypto/sha1-buffer \ +# crypto/sha256-buffer \ +# crypto/sha512-buffer \ # dirent \ # faccessat \ # fdopendir \ @@ -64,6 +68,10 @@ # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([]) gl_MODULES([ + crypto/md5-buffer + crypto/sha1-buffer + crypto/sha256-buffer + crypto/sha512-buffer dirent faccessat fdopendir diff --git a/autotools/m4/gnulib-comp.m4 b/autotools/m4/gnulib-comp.m4 index 0684e6b1..d929364d 100644 --- a/autotools/m4/gnulib-comp.m4 +++ b/autotools/m4/gnulib-comp.m4 @@ -44,6 +44,7 @@ AC_DEFUN([gl_EARLY], # Code from module absolute-header: # Code from module access: + # Code from module alignasof: # Code from module alloca-opt: # Code from module assert-h: # Code from module assure: @@ -51,6 +52,7 @@ AC_DEFUN([gl_EARLY], # Code from module attribute: # Code from module basename-lgpl: # Code from module builtin-expect: + # Code from module byteswap: # Code from module c99: # Code from module calloc-gnu: # Code from module calloc-posix: @@ -61,6 +63,10 @@ AC_DEFUN([gl_EARLY], # Code from module cloexec: # Code from module close: # Code from module closedir: + # Code from module crypto/md5-buffer: + # Code from module crypto/sha1-buffer: + # Code from module crypto/sha256-buffer: + # Code from module crypto/sha512-buffer: # Code from module dirent: # Code from module dirfd: # Code from module dirname-lgpl: @@ -192,6 +198,7 @@ AC_DEFUN([gl_EARLY], # Code from module sys_types: # Code from module time-h: # Code from module timespec: + # Code from module u64: # Code from module unistd: # Code from module unistd-safer: # Code from module unlink: @@ -234,6 +241,7 @@ AC_DEFUN([gl_INIT], gl_FUNC_ACCESS gl_CONDITIONAL([GL_COND_OBJ_ACCESS], [test $REPLACE_ACCESS = 1]) gl_UNISTD_MODULE_INDICATOR([access]) + gl_ALIGNASOF gl_FUNC_ALLOCA gl_CONDITIONAL_HEADER([alloca.h]) AC_PROG_MKDIR_P @@ -242,6 +250,9 @@ AC_DEFUN([gl_INIT], AC_PROG_MKDIR_P AC_REQUIRE([AC_CANONICAL_HOST]) gl___BUILTIN_EXPECT + gl_BYTESWAP + gl_CONDITIONAL_HEADER([byteswap.h]) + AC_PROG_MKDIR_P gl_FUNC_CALLOC_GNU if test $REPLACE_CALLOC_FOR_CALLOC_GNU = 1; then AC_LIBOBJ([calloc]) @@ -274,6 +285,14 @@ AC_DEFUN([gl_INIT], gl_CONDITIONAL([GL_COND_OBJ_CLOSEDIR], [test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1]) gl_DIRENT_MODULE_INDICATOR([closedir]) + AC_REQUIRE([AC_C_RESTRICT]) + gl_MD5 + AC_REQUIRE([AC_C_RESTRICT]) + gl_SHA1 + AC_REQUIRE([AC_C_RESTRICT]) + gl_SHA256 + AC_REQUIRE([AC_C_RESTRICT]) + gl_SHA512 gl_DIRENT_H gl_DIRENT_H_REQUIRE_DEFAULTS AC_PROG_MKDIR_P @@ -978,6 +997,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/attribute.h lib/basename-lgpl.c lib/basename-lgpl.h + lib/byteswap.in.h lib/c++defs.h lib/calloc.c lib/canonicalize-lgpl.c @@ -1045,6 +1065,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/gettext.h lib/gettime.c lib/gettimeofday.c + lib/gl_openssl.h lib/group-member.c lib/ialloc.c lib/ialloc.h @@ -1073,6 +1094,8 @@ AC_DEFUN([gl_FILE_LIST], [ lib/math.c lib/math.in.h lib/mbszero.c + lib/md5.c + lib/md5.h lib/memchr.c lib/memchr.valgrind lib/mempcpy.c @@ -1119,6 +1142,12 @@ AC_DEFUN([gl_FILE_LIST], [ lib/save-cwd.c lib/save-cwd.h lib/scratch_buffer.h + lib/sha1.c + lib/sha1.h + lib/sha256.c + lib/sha256.h + lib/sha512.c + lib/sha512.h lib/signbitd.c lib/signbitf.c lib/signbitl.c @@ -1157,6 +1186,8 @@ AC_DEFUN([gl_FILE_LIST], [ lib/time.in.h lib/timespec.c lib/timespec.h + lib/u64.c + lib/u64.h lib/unistd--.h lib/unistd-safer.h lib/unistd.c @@ -1187,6 +1218,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/alloca.m4 m4/assert_h.m4 m4/builtin-expect.m4 + m4/byteswap.m4 m4/c-bool.m4 m4/calloc.m4 m4/canonicalize.m4 @@ -1234,6 +1266,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/getprogname.m4 m4/gettime.m4 m4/gettimeofday.m4 + m4/gl-openssl.m4 m4/gnulib-common.m4 m4/group-member.m4 m4/include_next.m4 @@ -1255,6 +1288,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/math_h.m4 m4/mbrtowc.m4 m4/mbstate_t.m4 + m4/md5.m4 m4/memchr.m4 m4/mempcpy.m4 m4/memrchr.m4 @@ -1289,12 +1323,16 @@ AC_DEFUN([gl_FILE_LIST], [ m4/renameat.m4 m4/rmdir.m4 m4/save-cwd.m4 + m4/sha1.m4 + m4/sha256.m4 + m4/sha512.m4 m4/signbit.m4 m4/size_max.m4 m4/ssize_t.m4 m4/stat-time.m4 m4/stat.m4 m4/std-gnu11.m4 + m4/stdalign.m4 m4/stddef_h.m4 m4/stdint.m4 m4/stdint_h.m4 diff --git a/autotools/m4/locale-fr.m4 b/autotools/m4/locale-fr.m4 new file mode 100644 index 00000000..c9528562 --- /dev/null +++ b/autotools/m4/locale-fr.m4 @@ -0,0 +1,300 @@ +# locale-fr.m4 serial 23 +dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl Determine the name of a french locale with traditional encoding. +AC_DEFUN_ONCE([gt_LOCALE_FR], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AM_LANGINFO_CODESET]) + AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [ + AC_LANG_CONFTEST([AC_LANG_SOURCE([[ +#include <locale.h> +#include <time.h> +#if HAVE_LANGINFO_CODESET +# include <langinfo.h> +#endif +#include <stdlib.h> +#include <string.h> +struct tm t; +char buf[16]; +int main () { + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else + /* Check whether the given locale name is recognized by the system. */ +# if defined _WIN32 && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +# else + if (setlocale (LC_ALL, "") == NULL) return 1; +# endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. + On MirBSD 10, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "UTF-8". */ +# if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 + || strcmp (cs, "UTF-8") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +# endif + /* Check whether in the abbreviation of the second month, the second + character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only + one byte long. This excludes the UTF-8 encoding. */ + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; +# if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ + /* Check whether the decimal separator is a comma. + On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point + are nl_langinfo(RADIXCHAR) are both ".". */ + if (localeconv () ->decimal_point[0] != ',') return 1; +# endif + return 0; +#endif +} + ]])]) + if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw* | windows*) + # Test for the native Windows locale name. + if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=French_France.1252 + else + # None found. + gt_cv_locale_fr=none + fi + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the usual locale name. + if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR.ISO-8859-1 + else + # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. + if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR.ISO8859-1 + else + # Test for the HP-UX locale name. + if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr_FR.iso88591 + else + # Test for the Solaris 7 locale name. + if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr=fr + else + # None found. + gt_cv_locale_fr=none + fi + fi + fi + fi + fi + ;; + esac + fi + rm -fr conftest* + ]) + LOCALE_FR=$gt_cv_locale_fr + case $LOCALE_FR in #( + '' | *[[[:space:]\"\$\'*@<:@]]*) + dnl This locale name might cause trouble with sh or make. + AC_MSG_WARN([invalid locale "$LOCALE_FR"; assuming "none"]) + LOCALE_FR=none;; + esac + AC_SUBST([LOCALE_FR]) +]) + +dnl Determine the name of a french locale with UTF-8 encoding. +AC_DEFUN_ONCE([gt_LOCALE_FR_UTF8], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AM_LANGINFO_CODESET]) + AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [ + case "$host_os" in + *-musl* | midipix*) + dnl On musl libc, all kinds of ll_CC.UTF-8 locales exist, even without + dnl any locale file on disk. But they are effectively equivalent to the + dnl C.UTF-8 locale, except for locale categories (such as LC_MESSSAGES) + dnl for which localizations (.mo files) have been installed. + gt_cv_locale_fr_utf8=fr_FR.UTF-8 + ;; + *) + AC_LANG_CONFTEST([AC_LANG_SOURCE([[ +#include <locale.h> +#include <time.h> +#if HAVE_LANGINFO_CODESET +# include <langinfo.h> +#endif +#include <stdlib.h> +#include <string.h> +struct tm t; +char buf[16]; +int main () { + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if !(defined __BEOS__ || defined __HAIKU__) + /* Check whether the given locale name is recognized by the system. */ +# if defined _WIN32 && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +# else + if (setlocale (LC_ALL, "") == NULL) return 1; +# endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. */ +# if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +# endif + /* Check whether in the abbreviation of the second month, the second + character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is + two bytes long, with UTF-8 encoding. */ + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%b", &t) < 4 + || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') + return 1; +#endif +#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ + /* Check whether the decimal separator is a comma. + On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point + are nl_langinfo(RADIXCHAR) are both ".". */ + if (localeconv () ->decimal_point[0] != ',') return 1; +#endif + return 0; +} + ]])]) + if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw* | windows*) + # Test for the hypothetical native Windows locale name. + if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr_utf8=French_France.65001 + else + # None found. + gt_cv_locale_fr_utf8=none + fi + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the usual locale name. + if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr_utf8=fr_FR + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr_utf8=fr_FR.UTF-8 + else + # Test for the Solaris 7 locale name. + if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_fr_utf8=fr.UTF-8 + else + # None found. + gt_cv_locale_fr_utf8=none + fi + fi + fi + ;; + esac + fi + rm -fr conftest* + ;; + esac + ]) + LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 + case $LOCALE_FR_UTF8 in #( + '' | *[[[:space:]\"\$\'*@<:@]]*) + dnl This locale name might cause trouble with sh or make. + AC_MSG_WARN([invalid locale "$LOCALE_FR_UTF8"; assuming "none"]) + LOCALE_FR_UTF8=none;; + esac + AC_SUBST([LOCALE_FR_UTF8]) + + dnl Users of $LOCALE_FR_UTF8 need to know which of the locale categories they + dnl can rely on. + case "$host_os" in + *-musl* | midipix*) + dnl On musl libc, locale categories other than LC_CTYPE and LC_MESSAGES + dnl are effectively unimplemented. + LC_COLLATE_IMPLEMENTED=false + LC_NUMERIC_IMPLEMENTED=false + LC_TIME_IMPLEMENTED=false + LC_MONETARY_IMPLEMENTED=false + ;; + *) + LC_COLLATE_IMPLEMENTED=true + LC_NUMERIC_IMPLEMENTED=true + LC_TIME_IMPLEMENTED=true + LC_MONETARY_IMPLEMENTED=true + ;; + esac + AC_SUBST([LC_COLLATE_IMPLEMENTED]) + AC_SUBST([LC_NUMERIC_IMPLEMENTED]) + AC_SUBST([LC_TIME_IMPLEMENTED]) + AC_SUBST([LC_MONETARY_IMPLEMENTED]) +]) diff --git a/autotools/m4/locale-ja.m4 b/autotools/m4/locale-ja.m4 new file mode 100644 index 00000000..71a9863b --- /dev/null +++ b/autotools/m4/locale-ja.m4 @@ -0,0 +1,149 @@ +# locale-ja.m4 serial 18 +dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl Determine the name of a japanese locale with EUC-JP encoding. +AC_DEFUN_ONCE([gt_LOCALE_JA], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AM_LANGINFO_CODESET]) + AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [ + AC_LANG_CONFTEST([AC_LANG_SOURCE([[ +#include <locale.h> +#include <time.h> +#if HAVE_LANGINFO_CODESET +# include <langinfo.h> +#endif +#include <stdlib.h> +#include <string.h> +struct tm t; +char buf[16]; +int main () +{ + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else + /* Check whether the given locale name is recognized by the system. */ +# if defined _WIN32 && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +# else + if (setlocale (LC_ALL, "") == NULL) return 1; +# endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. + On MirBSD 10, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "UTF-8". */ +# if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 + || strcmp (cs, "UTF-8") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +# endif + /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales + on Cygwin 1.5.x. */ + if (MB_CUR_MAX == 1) + return 1; + /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. + This excludes the UTF-8 encoding (except on MirBSD). */ + { + const char *p; + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + } + return 0; +#endif +} + ]])]) + if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw* | windows*) + # Note that on native Windows, the Japanese locale is + # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we + # cannot use it here. + gt_cv_locale_ja=none + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the AIX locale name. + if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP.EUC-JP + else + # Test for the HP-UX, OSF/1, NetBSD locale name. + if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP.eucJP + else + # Test for the IRIX, FreeBSD locale name. + if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP.EUC + else + # Test for the Solaris 7 locale name. + if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja + else + # Special test for NetBSD 1.6. + if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then + gt_cv_locale_ja=ja_JP.eucJP + else + # None found. + gt_cv_locale_ja=none + fi + fi + fi + fi + fi + fi + ;; + esac + fi + rm -fr conftest* + ]) + LOCALE_JA=$gt_cv_locale_ja + case $LOCALE_JA in #( + '' | *[[[:space:]\"\$\'*@<:@]]*) + dnl This locale name might cause trouble with sh or make. + AC_MSG_WARN([invalid locale "$LOCALE_JA"; assuming "none"]) + LOCALE_JA=none;; + esac + AC_SUBST([LOCALE_JA]) +]) diff --git a/autotools/m4/locale-zh.m4 b/autotools/m4/locale-zh.m4 new file mode 100644 index 00000000..f1a58c63 --- /dev/null +++ b/autotools/m4/locale-zh.m4 @@ -0,0 +1,143 @@ +# locale-zh.m4 serial 18 +dnl Copyright (C) 2003, 2005-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl Determine the name of a chinese locale with GB18030 encoding. +AC_DEFUN_ONCE([gt_LOCALE_ZH_CN], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AM_LANGINFO_CODESET]) + AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [ + AC_LANG_CONFTEST([AC_LANG_SOURCE([[ +#include <locale.h> +#include <stdlib.h> +#include <time.h> +#if HAVE_LANGINFO_CODESET +# include <langinfo.h> +#endif +#include <stdlib.h> +#include <string.h> +struct tm t; +char buf[16]; +int main () +{ + /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl + imitates locale dependent behaviour by looking at the environment + variables, and all locales use the UTF-8 encoding. */ +#if defined __BEOS__ || defined __HAIKU__ + return 1; +#else + /* Check whether the given locale name is recognized by the system. */ +# if defined _WIN32 && !defined __CYGWIN__ + /* On native Windows, setlocale(category, "") looks at the system settings, + not at the environment variables. Also, when an encoding suffix such + as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE + category of the locale to "C". */ + if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL + || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) + return 1; +# else + if (setlocale (LC_ALL, "") == NULL) return 1; +# endif + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". + On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. + On MirBSD 10, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "UTF-8". */ +# if HAVE_LANGINFO_CODESET + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 + || strcmp (cs, "UTF-8") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; +# endif + /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. + This excludes the UTF-8 encoding (except on MirBSD). */ + { + const char *p; + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + } + /* Check whether a typical GB18030 multibyte sequence is recognized as a + single wide character. This excludes the GB2312 and GBK encodings. */ + if (mblen ("\203\062\332\066", 5) != 4) + return 1; + return 0; +#endif +} + ]])]) + if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then + case "$host_os" in + # Handle native Windows specially, because there setlocale() interprets + # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", + # "fr" or "fra" as "French" or "French_France.1252", + # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", + # "ja" as "Japanese" or "Japanese_Japan.932", + # and similar. + mingw* | windows*) + # Test for the hypothetical native Windows locale name. + if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=Chinese_China.54936 + else + # None found. + gt_cv_locale_zh_CN=none + fi + ;; + solaris2.8) + # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are + # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. + # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. + gt_cv_locale_zh_CN=none + ;; + *) + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the locale name without encoding suffix. + if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=zh_CN + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_zh_CN=zh_CN.GB18030 + else + # None found. + gt_cv_locale_zh_CN=none + fi + fi + ;; + esac + else + # If there was a link error, due to mblen(), the system is so old that + # it certainly doesn't have a chinese locale. + gt_cv_locale_zh_CN=none + fi + rm -fr conftest* + ]) + LOCALE_ZH_CN=$gt_cv_locale_zh_CN + case $LOCALE_ZH_CN in #( + '' | *[[[:space:]\"\$\'*@<:@]]*) + dnl This locale name might cause trouble with sh or make. + AC_MSG_WARN([invalid locale "$LOCALE_ZH_CN"; assuming "none"]) + LOCALE_ZH_CN=none;; + esac + AC_SUBST([LOCALE_ZH_CN]) +]) diff --git a/autotools/m4/mbrtowc.m4 b/autotools/m4/mbrtowc.m4 new file mode 100644 index 00000000..6ff51824 --- /dev/null +++ b/autotools/m4/mbrtowc.m4 @@ -0,0 +1,796 @@ +# mbrtowc.m4 serial 44 -*- coding: utf-8 -*- +dnl Copyright (C) 2001-2002, 2004-2005, 2008-2024 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_FUNC_MBRTOWC], +[ + AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) + AC_REQUIRE([gl_PTHREADLIB]) + AC_CHECK_HEADERS_ONCE([threads.h]) + + AC_REQUIRE([AC_TYPE_MBSTATE_T]) + gl_MBSTATE_T_BROKEN + + AC_CHECK_FUNCS_ONCE([mbrtowc]) + if test $ac_cv_func_mbrtowc = no; then + HAVE_MBRTOWC=0 + AC_CHECK_DECLS([mbrtowc],,, [[ + #include <wchar.h> + ]]) + if test $ac_cv_have_decl_mbrtowc = yes; then + dnl On Minix 3.1.8, the system's <wchar.h> declares mbrtowc() although + dnl it does not have the function. Avoid a collision with gnulib's + dnl replacement. + REPLACE_MBRTOWC=1 + fi + else + if test $REPLACE_MBSTATE_T = 1; then + REPLACE_MBRTOWC=1 + else + gl_MBRTOWC_NULL_ARG1 + gl_MBRTOWC_NULL_ARG2 + gl_MBRTOWC_RETVAL + gl_MBRTOWC_NUL_RETVAL + gl_MBRTOWC_STORES_INCOMPLETE + gl_MBRTOWC_EMPTY_INPUT + gl_MBRTOWC_C_LOCALE + case "$gl_cv_func_mbrtowc_null_arg1" in + *yes) ;; + *) AC_DEFINE([MBRTOWC_NULL_ARG1_BUG], [1], + [Define if the mbrtowc function has the NULL pwc argument bug.]) + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_null_arg2" in + *yes) ;; + *) AC_DEFINE([MBRTOWC_NULL_ARG2_BUG], [1], + [Define if the mbrtowc function has the NULL string argument bug.]) + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_retval" in + *yes) ;; + *) AC_DEFINE([MBRTOWC_RETVAL_BUG], [1], + [Define if the mbrtowc function returns a wrong return value.]) + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_nul_retval" in + *yes) ;; + *) AC_DEFINE([MBRTOWC_NUL_RETVAL_BUG], [1], + [Define if the mbrtowc function does not return 0 for a NUL character.]) + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_stores_incomplete" in + *no) ;; + *) AC_DEFINE([MBRTOWC_STORES_INCOMPLETE_BUG], [1], + [Define if the mbrtowc function stores a wide character when reporting incomplete input.]) + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_empty_input" in + *yes) ;; + *) AC_DEFINE([MBRTOWC_EMPTY_INPUT_BUG], [1], + [Define if the mbrtowc function does not return (size_t) -2 + for empty input.]) + REPLACE_MBRTOWC=1 + ;; + esac + case "$gl_cv_func_mbrtowc_C_locale_sans_EILSEQ" in + *yes) ;; + *) AC_DEFINE([MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ], [1], + [Define if the mbrtowc function may signal encoding errors in the C locale.]) + REPLACE_MBRTOWC=1 + ;; + esac + fi + fi + if test $REPLACE_MBSTATE_T = 1; then + case "$host_os" in + mingw* | windows*) + MBRTOWC_LIB= + ;; + *) + gl_WEAK_SYMBOLS + case "$gl_cv_have_weak" in + *yes) MBRTOWC_LIB= ;; + *) MBRTOWC_LIB="$LIBPTHREAD" ;; + esac + ;; + esac + else + MBRTOWC_LIB= + fi + dnl MBRTOWC_LIB is expected to be '-pthread' or '-lpthread' on AIX + dnl with gcc or xlc, and empty otherwise. + AC_SUBST([MBRTOWC_LIB]) + dnl For backward compatibility. + LIB_MBRTOWC="$MBRTOWC_LIB" + AC_SUBST([LIB_MBRTOWC]) +]) + +dnl Test whether mbsinit() and mbrtowc() need to be overridden in a way that +dnl redefines the semantics of the given mbstate_t type. +dnl Result is REPLACE_MBSTATE_T. +dnl When this is set to 1, we replace both mbsinit() and mbrtowc(), in order to +dnl avoid inconsistencies. + +AC_DEFUN_ONCE([gl_MBSTATE_T_BROKEN], +[ + AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) + AC_REQUIRE([AC_CANONICAL_HOST]) + + AC_REQUIRE([AC_TYPE_MBSTATE_T]) + AC_CHECK_FUNCS_ONCE([mbsinit]) + AC_CHECK_FUNCS_ONCE([mbrtowc]) + dnl On native Windows, we know exactly how mbsinit() behaves and don't need + dnl to override it, even if - like on MSVC - mbsinit() is only defined as + dnl an inline function, not as a global function. + if case "$host_os" in + mingw* | windows*) true ;; + *) test $ac_cv_func_mbsinit = yes ;; + esac \ + && test $ac_cv_func_mbrtowc = yes; then + gl_MBRTOWC_INCOMPLETE_STATE + gl_MBRTOWC_SANITYCHECK + REPLACE_MBSTATE_T=0 + case "$gl_cv_func_mbrtowc_incomplete_state" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + case "$gl_cv_func_mbrtowc_sanitycheck" in + *yes) ;; + *) REPLACE_MBSTATE_T=1 ;; + esac + else + REPLACE_MBSTATE_T=1 + fi +]) + +dnl Test whether mbrtowc puts the state into non-initial state when parsing an +dnl incomplete multibyte character. +dnl Result is gl_cv_func_mbrtowc_incomplete_state. + +AC_DEFUN([gl_MBRTOWC_INCOMPLETE_STATE], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([gt_LOCALE_JA]) + AC_REQUIRE([gt_LOCALE_FR_UTF8]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether mbrtowc handles incomplete characters], + [gl_cv_func_mbrtowc_incomplete_state], + [ + dnl Initial guess, used when cross-compiling or when no suitable locale + dnl is present. +changequote(,)dnl + case "$host_os" in + # Guess no on AIX and OSF/1. + aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;; + esac +changequote([,])dnl + if test $LOCALE_JA != none; then + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include <locale.h> +#include <string.h> +#include <wchar.h> +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + const char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +}]])], + [gl_cv_func_mbrtowc_incomplete_state=yes], + [gl_cv_func_mbrtowc_incomplete_state=no], + [:]) + else + if test $LOCALE_FR_UTF8 != none; then + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include <locale.h> +#include <string.h> +#include <wchar.h> +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + const char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + if (mbsinit (&state)) + return 2; + } + return 0; +}]])], + [gl_cv_func_mbrtowc_incomplete_state=yes], + [gl_cv_func_mbrtowc_incomplete_state=no], + [:]) + fi + fi + ]) +]) + +dnl Test whether mbrtowc works not worse than mbtowc. +dnl Result is gl_cv_func_mbrtowc_sanitycheck. + +AC_DEFUN([gl_MBRTOWC_SANITYCHECK], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([gt_LOCALE_ZH_CN]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether mbrtowc works as well as mbtowc], + [gl_cv_func_mbrtowc_sanitycheck], + [ + dnl Initial guess, used when cross-compiling or when no suitable locale + dnl is present. +changequote(,)dnl + case "$host_os" in + # Guess no on Solaris 8. + solaris2.8) gl_cv_func_mbrtowc_sanitycheck="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;; + esac +changequote([,])dnl + if test $LOCALE_ZH_CN != none; then + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include <locale.h> +#include <stdlib.h> +#include <string.h> +#include <wchar.h> +int main () +{ + /* This fails on Solaris 8: + mbrtowc returns 2, and sets wc to 0x00F0. + mbtowc returns 4 (correct) and sets wc to 0x5EDC. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + char input[] = "B\250\271\201\060\211\070er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 6, &state) != 4 + && mbtowc (&wc, input + 3, 6) == 4) + return 2; + } + return 0; +}]])], + [gl_cv_func_mbrtowc_sanitycheck=yes], + [gl_cv_func_mbrtowc_sanitycheck=no], + [:]) + fi + ]) +]) + +dnl Test whether mbrtowc supports a NULL pwc argument correctly. +dnl Result is gl_cv_func_mbrtowc_null_arg1. + +AC_DEFUN([gl_MBRTOWC_NULL_ARG1], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([gt_LOCALE_FR_UTF8]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether mbrtowc handles a NULL pwc argument], + [gl_cv_func_mbrtowc_null_arg1], + [ + dnl Initial guess, used when cross-compiling or when no suitable locale + dnl is present. +changequote(,)dnl + case "$host_os" in + # Guess no on Solaris. + solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;; + esac +changequote([,])dnl + if test $LOCALE_FR_UTF8 != none; then + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include <locale.h> +#include <stdlib.h> +#include <string.h> +#include <wchar.h> +int main () +{ + int result = 0; + + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + char input[] = "\303\237er"; + mbstate_t state; + wchar_t wc; + size_t ret; + + memset (&state, '\0', sizeof (mbstate_t)); + wc = (wchar_t) 0xBADFACE; + ret = mbrtowc (&wc, input, 5, &state); + if (ret != 2) + result |= 1; + if (!mbsinit (&state)) + result |= 2; + + memset (&state, '\0', sizeof (mbstate_t)); + ret = mbrtowc (NULL, input, 5, &state); + if (ret != 2) /* Solaris 7 fails here: ret is -1. */ + result |= 4; + if (!mbsinit (&state)) + result |= 8; + } + return result; +}]])], + [gl_cv_func_mbrtowc_null_arg1=yes], + [gl_cv_func_mbrtowc_null_arg1=no], + [:]) + fi + ]) +]) + +dnl Test whether mbrtowc supports a NULL string argument correctly. +dnl Result is gl_cv_func_mbrtowc_null_arg2. + +AC_DEFUN([gl_MBRTOWC_NULL_ARG2], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([gt_LOCALE_FR_UTF8]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether mbrtowc handles a NULL string argument], + [gl_cv_func_mbrtowc_null_arg2], + [ + dnl Initial guess, used when cross-compiling or when no suitable locale + dnl is present. +changequote(,)dnl + case "$host_os" in + # Guess no on OSF/1. + osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;; + esac +changequote([,])dnl + if test $LOCALE_FR_UTF8 != none; then + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include <locale.h> +#include <string.h> +#include <wchar.h> +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + mbstate_t state; + wchar_t wc; + int ret; + + memset (&state, '\0', sizeof (mbstate_t)); + wc = (wchar_t) 0xBADFACE; + mbrtowc (&wc, NULL, 5, &state); + /* Check that wc was not modified. */ + if (wc != (wchar_t) 0xBADFACE) + return 2; + } + return 0; +}]])], + [gl_cv_func_mbrtowc_null_arg2=yes], + [gl_cv_func_mbrtowc_null_arg2=no], + [:]) + fi + ]) +]) + +dnl Test whether mbrtowc, when parsing the end of a multibyte character, +dnl correctly returns the number of bytes that were needed to complete the +dnl character (not the total number of bytes of the multibyte character). +dnl Result is gl_cv_func_mbrtowc_retval. + +AC_DEFUN([gl_MBRTOWC_RETVAL], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([gt_LOCALE_FR_UTF8]) + AC_REQUIRE([gt_LOCALE_JA]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_CACHE_CHECK([whether mbrtowc has a correct return value], + [gl_cv_func_mbrtowc_retval], + [ + dnl Initial guess, used when cross-compiling or when no suitable locale + dnl is present. +changequote(,)dnl + case "$host_os" in + # Guess no on HP-UX, Solaris, native Windows. + hpux* | solaris* | mingw* | windows*) + gl_cv_func_mbrtowc_retval="guessing no" ;; + # Guess yes otherwise. + *) + gl_cv_func_mbrtowc_retval="guessing yes" ;; + esac +changequote([,])dnl + if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \ + || { case "$host_os" in mingw* | windows*) true;; *) false;; esac; }; then + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include <locale.h> +#include <string.h> +#include <wchar.h> +int main () +{ + int result = 0; + int found_some_locale = 0; + /* This fails on Solaris. */ + if (strcmp ("$LOCALE_FR_UTF8", "none") != 0 + && setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + char input[] = "B\303\274\303\237er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + { + input[1] = '\0'; + if (mbrtowc (&wc, input + 2, 5, &state) != 1) + result |= 1; + } + found_some_locale = 1; + } + /* This fails on HP-UX 11.11. */ + if (strcmp ("$LOCALE_JA", "none") != 0 + && setlocale (LC_ALL, "$LOCALE_JA") != NULL) + { + char input[] = "B\217\253\344\217\251\316er"; /* "Büßer" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 1, 1, &state) == (size_t)(-2)) + { + input[1] = '\0'; + if (mbrtowc (&wc, input + 2, 5, &state) != 2) + result |= 2; + } + found_some_locale = 1; + } + /* This fails on native Windows. */ + if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) + { + char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) + { + input[3] = '\0'; + if (mbrtowc (&wc, input + 4, 4, &state) != 1) + result |= 4; + } + found_some_locale = 1; + } + if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) + { + char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) + { + input[3] = '\0'; + if (mbrtowc (&wc, input + 4, 4, &state) != 1) + result |= 8; + } + found_some_locale = 1; + } + if (setlocale (LC_ALL, "Chinese_China.936") != NULL) + { + char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */ + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2)) + { + input[3] = '\0'; + if (mbrtowc (&wc, input + 4, 4, &state) != 1) + result |= 16; + } + found_some_locale = 1; + } + return (found_some_locale ? result : 77); +}]])], + [gl_cv_func_mbrtowc_retval=yes], + [if test $? != 77; then + gl_cv_func_mbrtowc_retval=no + fi + ], + [:]) + fi + ]) +]) + +dnl Test whether mbrtowc, when parsing a NUL character, correctly returns 0. +dnl Result is gl_cv_func_mbrtowc_nul_retval. + +AC_DEFUN([gl_MBRTOWC_NUL_RETVAL], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([gt_LOCALE_ZH_CN]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether mbrtowc returns 0 when parsing a NUL character], + [gl_cv_func_mbrtowc_nul_retval], + [ + dnl Initial guess, used when cross-compiling or when no suitable locale + dnl is present. +changequote(,)dnl + case "$host_os" in + # Guess no on Solaris 8 and 9. + solaris2.[89]) gl_cv_func_mbrtowc_nul_retval="guessing no" ;; + # Guess yes otherwise. + *) gl_cv_func_mbrtowc_nul_retval="guessing yes" ;; + esac +changequote([,])dnl + if test $LOCALE_ZH_CN != none; then + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include <locale.h> +#include <string.h> +#include <wchar.h> +int main () +{ + /* This fails on Solaris 8 and 9. */ + if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL) + { + mbstate_t state; + wchar_t wc; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "", 1, &state) != 0) + return 2; + } + return 0; +}]])], + [gl_cv_func_mbrtowc_nul_retval=yes], + [gl_cv_func_mbrtowc_nul_retval=no], + [:]) + fi + ]) +]) + +dnl Test whether mbrtowc stores a wide character when reporting incomplete +dnl input. + +AC_DEFUN([gl_MBRTOWC_STORES_INCOMPLETE], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether mbrtowc stores incomplete characters], + [gl_cv_func_mbrtowc_stores_incomplete], + [ + dnl Initial guess, used when cross-compiling or when no suitable locale + dnl is present. +changequote(,)dnl + case "$host_os" in + # Guess yes on native Windows. + mingw* | windows*) gl_cv_func_mbrtowc_stores_incomplete="guessing yes" ;; + *) gl_cv_func_mbrtowc_stores_incomplete="guessing no" ;; + esac +changequote([,])dnl + case "$host_os" in + mingw* | windows*) + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include <locale.h> +#include <string.h> +#include <wchar.h> +int main () +{ + int result = 0; + if (setlocale (LC_ALL, "French_France.65001") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + result |= 1; + } + if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\226", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + result |= 2; + } + if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\245", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + result |= 4; + } + if (setlocale (LC_ALL, "Chinese_China.936") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\261", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + result |= 8; + } + return result; +}]])], + [gl_cv_func_mbrtowc_stores_incomplete=no], + [gl_cv_func_mbrtowc_stores_incomplete=yes], + [:]) + ;; + *) + AC_REQUIRE([gt_LOCALE_FR_UTF8]) + if test $LOCALE_FR_UTF8 != none; then + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include <locale.h> +#include <string.h> +#include <wchar.h> +int main () +{ + if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL) + { + wchar_t wc = (wchar_t) 0xBADFACE; + mbstate_t state; + + memset (&state, '\0', sizeof (mbstate_t)); + if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2) + && wc != (wchar_t) 0xBADFACE) + return 1; + } + return 0; +}]])], + [gl_cv_func_mbrtowc_stores_incomplete=no], + [gl_cv_func_mbrtowc_stores_incomplete=yes], + [:]) + fi + ;; + esac + ]) +]) + +dnl Test whether mbrtowc returns the correct value on empty input. + +AC_DEFUN([gl_MBRTOWC_EMPTY_INPUT], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether mbrtowc works on empty input], + [gl_cv_func_mbrtowc_empty_input], + [AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ + #include <wchar.h> + static wchar_t wc; + static mbstate_t mbs; + int + main (void) + { + return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2; + }]])], + [gl_cv_func_mbrtowc_empty_input=yes], + [gl_cv_func_mbrtowc_empty_input=no], + [case "$host_os" in + # Guess no on AIX and glibc systems. + aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; + # Guess no on Android. + linux*-android*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; + # Guess no on native Windows. + mingw* | windows*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; + *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + esac + ]) + ]) +]) + +dnl Test whether mbrtowc reports encoding errors in the C locale. +dnl Although POSIX was never intended to allow this, the GNU C Library +dnl and other implementations do it. See: +dnl https://sourceware.org/bugzilla/show_bug.cgi?id=19932 +dnl POSIX has now clarified it: +dnl <https://pubs.opengroup.org/onlinepubs/9699919799/functions/mbrtowc.html> +dnl says: "In the POSIX locale an [EILSEQ] error cannot occur since all byte +dnl values are valid characters." + +AC_DEFUN([gl_MBRTOWC_C_LOCALE], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([whether the C locale is free of encoding errors], + [gl_cv_func_mbrtowc_C_locale_sans_EILSEQ], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include <limits.h> + #include <locale.h> + #include <wchar.h> + ]], [[ + int i; + char *locale = setlocale (LC_ALL, "C"); + if (! locale) + return 2; + for (i = CHAR_MIN; i <= CHAR_MAX; i++) + { + char c = i; + wchar_t wc; + mbstate_t mbs = { 0, }; + size_t ss = mbrtowc (&wc, &c, 1, &mbs); + if (1 < ss) + return 3; + } + return 0; + ]])], + [gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=yes], + [gl_cv_func_mbrtowc_C_locale_sans_EILSEQ=no], + [case "$host_os" in + # Guess yes on native Windows. + mingw* | windows*) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="guessing yes" ;; + *) gl_cv_func_mbrtowc_C_locale_sans_EILSEQ="$gl_cross_guess_normal" ;; + esac + ]) + ]) +]) + +# Prerequisites of lib/mbrtowc.c and lib/lc-charset-dispatch.c. +AC_DEFUN([gl_PREREQ_MBRTOWC], [ + AC_REQUIRE([AC_C_INLINE]) + : +]) + +# Prerequisites of lib/mbtowc-lock.c. +AC_DEFUN([gl_PREREQ_MBTOWC_LOCK], +[ + gl_VISIBILITY +]) + + +dnl From Paul Eggert + +dnl This is an override of an autoconf macro. + +AC_DEFUN([AC_FUNC_MBRTOWC], +[ + dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60. + AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared], + [gl_cv_func_mbrtowc], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include <wchar.h>]], + [[wchar_t wc; + char const s[] = ""; + size_t n = 1; + mbstate_t state; + return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])], + [gl_cv_func_mbrtowc=yes], + [gl_cv_func_mbrtowc=no])]) + if test $gl_cv_func_mbrtowc = yes; then + AC_DEFINE([HAVE_MBRTOWC], [1], + [Define to 1 if mbrtowc and mbstate_t are properly declared.]) + fi +]) diff --git a/autotools/m4/mbstate_t.m4 b/autotools/m4/mbstate_t.m4 new file mode 100644 index 00000000..b2bcba45 --- /dev/null +++ b/autotools/m4/mbstate_t.m4 @@ -0,0 +1,34 @@ +# mbstate_t.m4 serial 14 +dnl Copyright (C) 2000-2002, 2008-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# From Paul Eggert. + +# BeOS 5 has <wchar.h> but does not define mbstate_t, +# so you can't declare an object of that type. +# Check for this incompatibility with Standard C. + +# AC_TYPE_MBSTATE_T +# ----------------- +AC_DEFUN([AC_TYPE_MBSTATE_T], +[ + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl for HP-UX 11.11 + + AC_CACHE_CHECK([for mbstate_t], [ac_cv_type_mbstate_t], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [AC_INCLUDES_DEFAULT[ + #include <wchar.h>]], + [[mbstate_t x; return sizeof x;]])], + [ac_cv_type_mbstate_t=yes], + [ac_cv_type_mbstate_t=no])]) + if test $ac_cv_type_mbstate_t = yes; then + AC_DEFINE([HAVE_MBSTATE_T], [1], + [Define to 1 if <wchar.h> declares mbstate_t.]) + else + AC_DEFINE([mbstate_t], [int], + [Define to a type if <wchar.h> does not define.]) + fi +]) diff --git a/autotools/m4/md5.m4 b/autotools/m4/md5.m4 new file mode 100644 index 00000000..7af56a8a --- /dev/null +++ b/autotools/m4/md5.m4 @@ -0,0 +1,14 @@ +# md5.m4 serial 14 +dnl Copyright (C) 2002-2006, 2008-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_MD5], +[ + dnl Prerequisites of lib/md5.c. + AC_REQUIRE([gl_BIGENDIAN]) + + dnl Determine HAVE_OPENSSL_MD5 and LIB_CRYPTO + gl_CRYPTO_CHECK([MD5]) +]) diff --git a/autotools/m4/musl.m4 b/autotools/m4/musl.m4 new file mode 100644 index 00000000..34d2c1ff --- /dev/null +++ b/autotools/m4/musl.m4 @@ -0,0 +1,20 @@ +# musl.m4 serial 4 +dnl Copyright (C) 2019-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Test for musl libc, despite the musl libc authors don't like it +# <https://wiki.musl-libc.org/faq.html> +# <https://lists.gnu.org/archive/html/bug-gnulib/2018-02/msg00079.html>. +# From Bruno Haible. + +AC_DEFUN_ONCE([gl_MUSL_LIBC], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + *-musl* | midipix*) + AC_DEFINE([MUSL_LIBC], [1], [Define to 1 on musl libc.]) + ;; + esac +]) diff --git a/autotools/m4/sha1.m4 b/autotools/m4/sha1.m4 new file mode 100644 index 00000000..c0a87536 --- /dev/null +++ b/autotools/m4/sha1.m4 @@ -0,0 +1,14 @@ +# sha1.m4 serial 12 +dnl Copyright (C) 2002-2006, 2008-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_SHA1], +[ + dnl Prerequisites of lib/sha1.c. + AC_REQUIRE([gl_BIGENDIAN]) + + dnl Determine HAVE_OPENSSL_SHA1 and LIB_CRYPTO + gl_CRYPTO_CHECK([SHA1]) +]) diff --git a/autotools/m4/sha256.m4 b/autotools/m4/sha256.m4 new file mode 100644 index 00000000..2dd754c1 --- /dev/null +++ b/autotools/m4/sha256.m4 @@ -0,0 +1,14 @@ +# sha256.m4 serial 8 +dnl Copyright (C) 2005, 2008-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_SHA256], +[ + dnl Prerequisites of lib/sha256.c. + AC_REQUIRE([gl_BIGENDIAN]) + + dnl Determine HAVE_OPENSSL_SHA256 and LIB_CRYPTO + gl_CRYPTO_CHECK([SHA256]) +]) diff --git a/autotools/m4/sha512.m4 b/autotools/m4/sha512.m4 new file mode 100644 index 00000000..19d03b50 --- /dev/null +++ b/autotools/m4/sha512.m4 @@ -0,0 +1,14 @@ +# sha512.m4 serial 9 +dnl Copyright (C) 2005-2006, 2008-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +AC_DEFUN([gl_SHA512], +[ + dnl Prerequisites of lib/sha512.c. + AC_REQUIRE([gl_BIGENDIAN]) + + dnl Determine HAVE_OPENSSL_SHA512 and LIB_CRYPTO + gl_CRYPTO_CHECK([SHA512]) +]) diff --git a/autotools/m4/stdalign.m4 b/autotools/m4/stdalign.m4 new file mode 100644 index 00000000..2efd5f96 --- /dev/null +++ b/autotools/m4/stdalign.m4 @@ -0,0 +1,206 @@ +# Check for alignas and alignof that conform to C23. + +dnl Copyright 2011-2024 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Written by Paul Eggert and Bruno Haible. + +# Prepare for substituting <stdalign.h> if it is not supported. + +AC_DEFUN([gl_ALIGNASOF], +[ + AC_CACHE_CHECK([for alignas and alignof], + [gl_cv_header_working_stdalign_h], + [gl_save_CFLAGS=$CFLAGS + for gl_working in "yes, keywords" "yes, <stdalign.h> macros"; do + AS_CASE([$gl_working], + [*stdalign.h*], [CFLAGS="$gl_save_CFLAGS -DINCLUDE_STDALIGN_H"]) + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include <stdint.h> + #ifdef INCLUDE_STDALIGN_H + #include <stdalign.h> + #endif + #include <stddef.h> + + /* Test that alignof yields a result consistent with offsetof. + This catches GCC bug 52023 + <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */ + #ifdef __cplusplus + template <class t> struct alignof_helper { char a; t b; }; + # define ao(type) offsetof (alignof_helper<type>, b) + #else + # define ao(type) offsetof (struct { char a; type b; }, b) + #endif + char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1]; + char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; + char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; + + /* Test alignas only on platforms where gnulib can help. */ + #if \ + ((defined __cplusplus && 201103 <= __cplusplus) \ + || (__TINYC__ && defined __attribute__) \ + || (defined __APPLE__ && defined __MACH__ \ + ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ + : __GNUC__) \ + || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ + || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \ + || 1300 <= _MSC_VER) + struct alignas_test { char c; char alignas (8) alignas_8; }; + char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 + ? 1 : -1]; + #endif + ]])], + [gl_cv_header_working_stdalign_h=$gl_working], + [gl_cv_header_working_stdalign_h=no]) + + CFLAGS=$gl_save_CFLAGS + test "$gl_cv_header_working_stdalign_h" != no && break + done]) + + AS_CASE([$gl_cv_header_working_stdalign_h], + [yes*keyword*], + [AC_DEFINE([HAVE_C_ALIGNASOF], [1], + [Define to 1 if the alignas and alignof keywords work.])]) + + dnl The "zz" puts this toward config.h's end, to avoid potential + dnl collisions with other definitions. + AH_VERBATIM([zzalignas], +[#if !defined HAVE_C_ALIGNASOF \ + && !(defined __cplusplus && 201103 <= __cplusplus) \ + && !defined alignof +# if defined HAVE_STDALIGN_H +# include <stdalign.h> +# endif + +/* ISO C23 alignas and alignof for platforms that lack it. + + References: + ISO C23 (latest free draft + <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf>) + sections 6.5.3.4, 6.7.5, 7.15. + C++11 (latest free draft + <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>) + section 18.10. */ + +/* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment + requirement of a structure member (i.e., slot or field) that is of + type TYPE, as an integer constant expression. + + This differs from GCC's and clang's __alignof__ operator, which can + yield a better-performing alignment for an object of that type. For + example, on x86 with GCC and on Linux/x86 with clang, + __alignof__ (double) and __alignof__ (long long) are 8, whereas + alignof (double) and alignof (long long) are 4 unless the option + '-malign-double' is used. + + The result cannot be used as a value for an 'enum' constant, if you + want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. */ + +/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023 + <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. + clang versions < 8.0.0 have the same bug. */ +# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ + || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \ + && !defined __clang__) \ + || (defined __clang__ && __clang_major__ < 8)) +# undef/**/_Alignof +# ifdef __cplusplus +# if (201103 <= __cplusplus || defined _MSC_VER) +# define _Alignof(type) alignof (type) +# else + template <class __t> struct __alignof_helper { char __a; __t __b; }; +# if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__ +# define _Alignof(type) __builtin_offsetof (__alignof_helper<type>, __b) +# else +# define _Alignof(type) offsetof (__alignof_helper<type>, __b) +# endif +# define _GL_STDALIGN_NEEDS_STDDEF 1 +# endif +# else +# if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__ +# define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b) +# else +# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) +# define _GL_STDALIGN_NEEDS_STDDEF 1 +# endif +# endif +# endif +# if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)) +# undef/**/alignof +# define alignof _Alignof +# endif + +/* alignas (A), also known as _Alignas (A), aligns a variable or type + to the alignment A, where A is an integer constant expression. For + example: + + int alignas (8) foo; + struct s { int a; int alignas (8) bar; }; + + aligns the address of FOO and the offset of BAR to be multiples of 8. + + A should be a power of two that is at least the type's alignment + and at most the implementation's alignment limit. This limit is + 2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable + to MSVC through at least version 10.0, A should be an integer + constant, as MSVC does not support expressions such as 1 << 3. + To be portable to Sun C 5.11, do not align auto variables to + anything stricter than their default alignment. + + The following C23 requirements are not supported here: + + - If A is zero, alignas has no effect. + - alignas can be used multiple times; the strictest one wins. + - alignas (TYPE) is equivalent to alignas (alignof (TYPE)). + + */ +# if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 +# if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER) +# define _Alignas(a) alignas (a) +# elif (!defined __attribute__ \ + && ((defined __APPLE__ && defined __MACH__ \ + ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ + : __GNUC__ && !defined __ibmxl__) \ + || (4 <= __clang_major__) \ + || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ + || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__)) +# define _Alignas(a) __attribute__ ((__aligned__ (a))) +# elif 1300 <= _MSC_VER +# define _Alignas(a) __declspec (align (a)) +# endif +# endif +# if !defined HAVE_STDALIGN_H +# if ((defined _Alignas \ + && !(defined __cplusplus \ + && (201103 <= __cplusplus || defined _MSC_VER))) \ + || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) +# define alignas _Alignas +# endif +# endif + +# if defined _GL_STDALIGN_NEEDS_STDDEF +# include <stddef.h> +# endif +#endif]) +]) + +AC_DEFUN([gl_STDALIGN_H], +[ + AC_REQUIRE([gl_ALIGNASOF]) + if test "$gl_cv_header_working_stdalign_h" = no; then + GL_GENERATE_STDALIGN_H=true + else + GL_GENERATE_STDALIGN_H=false + fi + + gl_CHECK_NEXT_HEADERS([stdalign.h]) + if test $ac_cv_header_stdalign_h = yes; then + HAVE_STDALIGN_H=1 + else + HAVE_STDALIGN_H=0 + fi + AC_SUBST([HAVE_STDALIGN_H]) +]) diff --git a/config.h.in b/config.h.in index 4d2a95ae..3891965d 100644 --- a/config.h.in +++ b/config.h.in @@ -64,9 +64,6 @@ /* Define if qmanifest should be compiled */ #undef ENABLE_QMANIFEST -/* Define if qtegrity should be compiled */ -#undef ENABLE_QTEGRITY - /* Define this to 1 if F_DUPFD behavior does not match POSIX */ #undef FCNTL_DUPFD_BUGGY @@ -434,6 +431,9 @@ /* Define to 1 if you have the <bp-sym.h> header file. */ #undef HAVE_BP_SYM_H +/* Define to 1 if you have the <byteswap.h> header file. */ +#undef HAVE_BYTESWAP_H + /* Define to 1 if you have the `canonicalize_file_name' function. */ #undef HAVE_CANONICALIZE_FILE_NAME @@ -464,6 +464,9 @@ /* Define to 1 if you have the <crtdefs.h> header file. */ #undef HAVE_CRTDEFS_H +/* Define to 1 if the alignas and alignof keywords work. */ +#undef HAVE_C_ALIGNASOF + /* Define to 1 if bool, true and false work as per C2023. */ #undef HAVE_C_BOOL @@ -782,6 +785,24 @@ /* Define to 1 if you have the `opendir' function. */ #undef HAVE_OPENDIR +/* Define to 1 if libcrypto is used for MD5. */ +#undef HAVE_OPENSSL_MD5 + +/* Define to 1 if you have the <openssl/md5.h> header file. */ +#undef HAVE_OPENSSL_MD5_H + +/* Define to 1 if libcrypto is used for SHA1. */ +#undef HAVE_OPENSSL_SHA1 + +/* Define to 1 if libcrypto is used for SHA256. */ +#undef HAVE_OPENSSL_SHA256 + +/* Define to 1 if libcrypto is used for SHA512. */ +#undef HAVE_OPENSSL_SHA512 + +/* Define to 1 if you have the <openssl/sha.h> header file. */ +#undef HAVE_OPENSSL_SHA_H + /* Define to 1 if you have the `pipe' function. */ #undef HAVE_PIPE @@ -848,9 +869,6 @@ terminated. */ #undef HAVE_SNPRINTF_TRUNCATION_C99 -/* Define if you have ssl */ -#undef HAVE_SSL - /* Define to 1 if you have the <stdbool.h> header file. */ #undef HAVE_STDBOOL_H @@ -2147,6 +2165,124 @@ /* Define to `int' if <sys/types.h> doesn't define. */ #undef uid_t +#if !defined HAVE_C_ALIGNASOF \ + && !(defined __cplusplus && 201103 <= __cplusplus) \ + && !defined alignof +# if defined HAVE_STDALIGN_H +# include <stdalign.h> +# endif + +/* ISO C23 alignas and alignof for platforms that lack it. + + References: + ISO C23 (latest free draft + <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf>) + sections 6.5.3.4, 6.7.5, 7.15. + C++11 (latest free draft + <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>) + section 18.10. */ + +/* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment + requirement of a structure member (i.e., slot or field) that is of + type TYPE, as an integer constant expression. + + This differs from GCC's and clang's __alignof__ operator, which can + yield a better-performing alignment for an object of that type. For + example, on x86 with GCC and on Linux/x86 with clang, + __alignof__ (double) and __alignof__ (long long) are 8, whereas + alignof (double) and alignof (long long) are 4 unless the option + '-malign-double' is used. + + The result cannot be used as a value for an 'enum' constant, if you + want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. */ + +/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023 + <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. + clang versions < 8.0.0 have the same bug. */ +# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ + || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \ + && !defined __clang__) \ + || (defined __clang__ && __clang_major__ < 8)) +# undef/**/_Alignof +# ifdef __cplusplus +# if (201103 <= __cplusplus || defined _MSC_VER) +# define _Alignof(type) alignof (type) +# else + template <class __t> struct __alignof_helper { char __a; __t __b; }; +# if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__ +# define _Alignof(type) __builtin_offsetof (__alignof_helper<type>, __b) +# else +# define _Alignof(type) offsetof (__alignof_helper<type>, __b) +# endif +# define _GL_STDALIGN_NEEDS_STDDEF 1 +# endif +# else +# if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__ +# define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b) +# else +# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) +# define _GL_STDALIGN_NEEDS_STDDEF 1 +# endif +# endif +# endif +# if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)) +# undef/**/alignof +# define alignof _Alignof +# endif + +/* alignas (A), also known as _Alignas (A), aligns a variable or type + to the alignment A, where A is an integer constant expression. For + example: + + int alignas (8) foo; + struct s { int a; int alignas (8) bar; }; + + aligns the address of FOO and the offset of BAR to be multiples of 8. + + A should be a power of two that is at least the type's alignment + and at most the implementation's alignment limit. This limit is + 2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable + to MSVC through at least version 10.0, A should be an integer + constant, as MSVC does not support expressions such as 1 << 3. + To be portable to Sun C 5.11, do not align auto variables to + anything stricter than their default alignment. + + The following C23 requirements are not supported here: + + - If A is zero, alignas has no effect. + - alignas can be used multiple times; the strictest one wins. + - alignas (TYPE) is equivalent to alignas (alignof (TYPE)). + + */ +# if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 +# if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER) +# define _Alignas(a) alignas (a) +# elif (!defined __attribute__ \ + && ((defined __APPLE__ && defined __MACH__ \ + ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ + : __GNUC__ && !defined __ibmxl__) \ + || (4 <= __clang_major__) \ + || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ + || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__)) +# define _Alignas(a) __attribute__ ((__aligned__ (a))) +# elif 1300 <= _MSC_VER +# define _Alignas(a) __declspec (align (a)) +# endif +# endif +# if !defined HAVE_STDALIGN_H +# if ((defined _Alignas \ + && !(defined __cplusplus \ + && (201103 <= __cplusplus || defined _MSC_VER))) \ + || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) +# define alignas _Alignas +# endif +# endif + +# if defined _GL_STDALIGN_NEEDS_STDDEF +# include <stddef.h> +# endif +#endif + #ifndef HAVE_C_BOOL # if !defined __cplusplus && !defined __bool_true_false_are_defined # if HAVE_STDBOOL_H @@ -646,6 +646,8 @@ ac_includes_default="\ ac_header_c_list= ac_func_c_list= +with_openssl_default='no' +LIB_CRYPTO= gl_getopt_required=POSIX enable_year2038=no ac_subst_vars='gltests_LIBOBJDEPS @@ -658,8 +660,6 @@ am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS -QTEGRITY_ENABLED_FALSE -QTEGRITY_ENABLED_TRUE QMANIFEST_ENABLED_FALSE QMANIFEST_ENABLED_TRUE GPGME_LIBS @@ -668,8 +668,6 @@ LIBZ_LIBS LIBZ_CFLAGS LIBBL2_LIBS LIBBL2_CFLAGS -LIBSSL_LIBS -LIBSSL_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG @@ -1653,6 +1651,7 @@ GL_COND_OBJ_DIRFD_TRUE HAVE_DIRENT_H NEXT_AS_FIRST_DIRECTIVE_DIRENT_H NEXT_DIRENT_H +LIB_CRYPTO GL_GNULIB_ALPHASORT GL_GNULIB_SCANDIR GL_GNULIB_FDOPENDIR @@ -1827,6 +1826,9 @@ HAVE_CANONICALIZE_FILE_NAME HAVE_ATOLL HAVE_ALIGNED_ALLOC HAVE__EXIT +GL_GENERATE_BYTESWAP_H_FALSE +GL_GENERATE_BYTESWAP_H_TRUE +BYTESWAP_H GL_GENERATE_ASSERT_H_FALSE GL_GENERATE_ASSERT_H_TRUE ASSERT_H @@ -2144,9 +2146,9 @@ enable_dependency_tracking enable_openmp enable_largefile enable_cross_guesses +with_openssl with_eprefix enable_qmanifest -enable_qtegrity enable_year2038 ' ac_precious_vars='build_alias @@ -2161,8 +2163,6 @@ CPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR -LIBSSL_CFLAGS -LIBSSL_LIBS LIBBL2_CFLAGS LIBBL2_LIBS LIBZ_CFLAGS @@ -2810,12 +2810,22 @@ Optional Features: --enable-cross-guesses={conservative|risky} specify policy for cross-compilation guesses --enable-qmanifest support qmanifest applet - --enable-qtegrity support qtegrity applet --enable-year2038 support timestamps after 2038 Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-openssl[=ARG] use libcrypto hash routines for the hash functions + MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512. + Valid ARGs are: + 'yes', + 'no', + 'auto' => use if any version available, + 'auto-gpl-compat' => use if GPL compatible version + available, + 'optional' => use if available + and warn if not available; + Default is 'no'. --with-eprefix path for Gentoo/Prefix project Some influential environment variables: @@ -2832,9 +2842,6 @@ Some influential environment variables: directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path - LIBSSL_CFLAGS - C compiler flags for LIBSSL, overriding pkg-config - LIBSSL_LIBS linker flags for LIBSSL, overriding pkg-config LIBBL2_CFLAGS C compiler flags for LIBBL2, overriding pkg-config LIBBL2_LIBS linker flags for LIBBL2, overriding pkg-config @@ -7663,6 +7670,7 @@ fi # Code from module absolute-header: # Code from module access: + # Code from module alignasof: # Code from module alloca-opt: # Code from module assert-h: # Code from module assure: @@ -7670,6 +7678,7 @@ fi # Code from module attribute: # Code from module basename-lgpl: # Code from module builtin-expect: + # Code from module byteswap: # Code from module c99: # Code from module calloc-gnu: # Code from module calloc-posix: @@ -7680,6 +7689,10 @@ fi # Code from module cloexec: # Code from module close: # Code from module closedir: + # Code from module crypto/md5-buffer: + # Code from module crypto/sha1-buffer: + # Code from module crypto/sha256-buffer: + # Code from module crypto/sha512-buffer: # Code from module dirent: # Code from module dirfd: # Code from module dirname-lgpl: @@ -7815,6 +7828,7 @@ fi # Code from module sys_types: # Code from module time-h: # Code from module timespec: + # Code from module u64: # Code from module unistd: # Code from module unistd-safer: # Code from module unlink: @@ -9660,6 +9674,293 @@ fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 +printf %s "checking for C/C++ restrict keyword... " >&6; } +if test ${ac_cv_c_restrict+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_c_restrict=no + # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see: + # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html + # Put 'restrict' last, because C++ lacks it. + for ac_kw in __restrict__ __restrict _Restrict restrict; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +typedef int *int_ptr; + int foo (int_ptr $ac_kw ip) { return ip[0]; } + int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ + int bar (int ip[$ac_kw]) { return ip[0]; } + +int +main (void) +{ +int s[1]; + int *$ac_kw t = s; + t[0] = 0; + return foo (t) + bar (t); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_restrict=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + test "$ac_cv_c_restrict" != no && break + done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 +printf "%s\n" "$ac_cv_c_restrict" >&6; } + + case $ac_cv_c_restrict in + restrict) ;; + no) printf "%s\n" "#define restrict /**/" >>confdefs.h + ;; + *) printf "%s\n" "#define restrict $ac_cv_c_restrict" >>confdefs.h + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +printf %s "checking whether byte ordering is bigendian... " >&6; } +if test ${ac_cv_c_bigendian+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> + +int +main (void) +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> + +int +main (void) +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_bigendian=yes +else $as_nop + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> + +int +main (void) +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> + +int +main (void) +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_bigendian=yes +else $as_nop + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes +then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +unsigned short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + unsigned short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + unsigned short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + unsigned short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + int + main (int argc, char **argv) + { + /* Intimidate the compiler so that it does not + optimize the arrays away. */ + char *p = argv[0]; + ascii_mm[1] = *p++; ebcdic_mm[1] = *p++; + ascii_ii[1] = *p++; ebcdic_ii[1] = *p++; + return use_ascii (argc) == use_ebcdic (*p); + } +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + if grep BIGenDianSyS conftest$ac_exeext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest$ac_exeext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_c_bigendian=no +else $as_nop + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +printf "%s\n" "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + @@ -11888,56 +12189,6 @@ printf "%s\n" "$gl_cv_member_st_size_64" >&6; } ;; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 -printf %s "checking for C/C++ restrict keyword... " >&6; } -if test ${ac_cv_c_restrict+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_c_restrict=no - # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see: - # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html - # Put 'restrict' last, because C++ lacks it. - for ac_kw in __restrict__ __restrict _Restrict restrict; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -typedef int *int_ptr; - int foo (int_ptr $ac_kw ip) { return ip[0]; } - int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ - int bar (int ip[$ac_kw]) { return ip[0]; } - -int -main (void) -{ -int s[1]; - int *$ac_kw t = s; - t[0] = 0; - return foo (t) + bar (t); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_c_restrict=$ac_kw -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - test "$ac_cv_c_restrict" != no && break - done - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 -printf "%s\n" "$ac_cv_c_restrict" >&6; } - - case $ac_cv_c_restrict in - restrict) ;; - no) printf "%s\n" "#define restrict /**/" >>confdefs.h - ;; - *) printf "%s\n" "#define restrict $ac_cv_c_restrict" >>confdefs.h - ;; - esac - @@ -15454,243 +15705,6 @@ printf "%s\n" "#define FLT_EXPBIT0_BIT $bit" >>confdefs.h esac - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -printf %s "checking whether byte ordering is bigendian... " >&6; } -if test ${ac_cv_c_bigendian+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - #include <sys/param.h> - -int -main (void) -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> - #include <sys/param.h> - -int -main (void) -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_c_bigendian=yes -else $as_nop - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <limits.h> - -int -main (void) -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <limits.h> - -int -main (void) -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_c_bigendian=yes -else $as_nop - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes -then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -unsigned short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - unsigned short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - unsigned short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - unsigned short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - int - main (int argc, char **argv) - { - /* Intimidate the compiler so that it does not - optimize the arrays away. */ - char *p = argv[0]; - ascii_mm[1] = *p++; ebcdic_mm[1] = *p++; - ascii_ii[1] = *p++; ebcdic_ii[1] = *p++; - return use_ascii (argc) == use_ebcdic (*p); - } -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - if grep BIGenDianSyS conftest$ac_exeext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest$ac_exeext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main (void) -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - ac_cv_c_bigendian=no -else $as_nop - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -printf "%s\n" "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h -;; #( - no) - ;; #( - universal) - -printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - as_fn_error $? "unknown endianness - presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; - esac - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'long double'" >&5 printf %s "checking where to find the exponent in a 'long double'... " >&6; } @@ -22302,6 +22316,91 @@ printf "%s\n" "#define GNULIB_TEST_ACCESS 1" >>confdefs.h + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alignas and alignof" >&5 +printf %s "checking for alignas and alignof... " >&6; } +if test ${gl_cv_header_working_stdalign_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + gl_save_CFLAGS=$CFLAGS + for gl_working in "yes, keywords" "yes, <stdalign.h> macros"; do + case $gl_working in #( + *stdalign.h*) : + CFLAGS="$gl_save_CFLAGS -DINCLUDE_STDALIGN_H" ;; #( + *) : + ;; +esac + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdint.h> + #ifdef INCLUDE_STDALIGN_H + #include <stdalign.h> + #endif + #include <stddef.h> + + /* Test that alignof yields a result consistent with offsetof. + This catches GCC bug 52023 + <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>. */ + #ifdef __cplusplus + template <class t> struct alignof_helper { char a; t b; }; + # define ao(type) offsetof (alignof_helper<type>, b) + #else + # define ao(type) offsetof (struct { char a; type b; }, b) + #endif + char test_double[ao (double) % _Alignof (double) == 0 ? 1 : -1]; + char test_long[ao (long int) % _Alignof (long int) == 0 ? 1 : -1]; + char test_alignof[alignof (double) == _Alignof (double) ? 1 : -1]; + + /* Test alignas only on platforms where gnulib can help. */ + #if \ + ((defined __cplusplus && 201103 <= __cplusplus) \ + || (__TINYC__ && defined __attribute__) \ + || (defined __APPLE__ && defined __MACH__ \ + ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ + : __GNUC__) \ + || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ + || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__ \ + || 1300 <= _MSC_VER) + struct alignas_test { char c; char alignas (8) alignas_8; }; + char test_alignas[offsetof (struct alignas_test, alignas_8) == 8 + ? 1 : -1]; + #endif + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_header_working_stdalign_h=$gl_working +else $as_nop + gl_cv_header_working_stdalign_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + + CFLAGS=$gl_save_CFLAGS + test "$gl_cv_header_working_stdalign_h" != no && break + done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdalign_h" >&5 +printf "%s\n" "$gl_cv_header_working_stdalign_h" >&6; } + + case $gl_cv_header_working_stdalign_h in #( + yes*keyword*) : + +printf "%s\n" "#define HAVE_C_ALIGNASOF 1" >>confdefs.h + ;; #( + *) : + ;; +esac + + + + if test $ac_cv_func_alloca_works = no; then : @@ -22618,6 +22717,57 @@ printf "%s\n" "$gl_cv___builtin_expect" >&6; } + for ac_header in byteswap.h +do : + ac_fn_c_check_header_compile "$LINENO" "byteswap.h" "ac_cv_header_byteswap_h" "$ac_includes_default" +if test "x$ac_cv_header_byteswap_h" = xyes +then : + printf "%s\n" "#define HAVE_BYTESWAP_H 1" >>confdefs.h + + GL_GENERATE_BYTESWAP_H=false + +else $as_nop + + GL_GENERATE_BYTESWAP_H=true + +fi + +done + + + + + + case "$GL_GENERATE_BYTESWAP_H" in + false) BYTESWAP_H='' ;; + true) + if test -z "$BYTESWAP_H"; then + BYTESWAP_H="${gl_source_base_prefix}byteswap.h" + fi + ;; + *) echo "*** GL_GENERATE_BYTESWAP_H is not set correctly" 1>&2; exit 1 ;; + esac + + + if $GL_GENERATE_BYTESWAP_H; then + GL_GENERATE_BYTESWAP_H_TRUE= + GL_GENERATE_BYTESWAP_H_FALSE='#' +else + GL_GENERATE_BYTESWAP_H_TRUE='#' + GL_GENERATE_BYTESWAP_H_FALSE= +fi +: + if test -z "${GL_GENERATE_BYTESWAP_H_TRUE}" && test -z "${GL_GENERATE_BYTESWAP_H_FALSE}"; then + GL_GENERATE_BYTESWAP_H_TRUE='#' + GL_GENERATE_BYTESWAP_H_FALSE='#' + fi + + + + + + + REPLACE_CALLOC_FOR_CALLOC_GNU="$REPLACE_CALLOC_FOR_CALLOC_POSIX" @@ -23159,6 +23309,534 @@ printf "%s\n" "#define GNULIB_TEST_CLOSEDIR 1" >>confdefs.h +# Check whether --with-openssl was given. +if test ${with_openssl+y} +then : + withval=$with_openssl; +else $as_nop + with_openssl=$with_openssl_default +fi + + + + if test "x$with_openssl" != xno; then + if test "x$with_openssl" = xauto-gpl-compat; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether openssl is GPL compatible" >&5 +printf %s "checking whether openssl is GPL compatible... " >&6; } +if test ${gl_cv_openssl_gpl_compat+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <openssl/opensslv.h> + #if OPENSSL_VERSION_MAJOR < 3 + #error "openssl >= version 3 not found" + #endif + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_openssl_gpl_compat=yes +else $as_nop + gl_cv_openssl_gpl_compat=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_openssl_gpl_compat" >&5 +printf "%s\n" "$gl_cv_openssl_gpl_compat" >&6; } + fi + if test "x$with_openssl" != xauto-gpl-compat || + test "x$gl_cv_openssl_gpl_compat" = xyes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MD5 in -lcrypto" >&5 +printf %s "checking for MD5 in -lcrypto... " >&6; } +if test ${ac_cv_lib_crypto_MD5+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypto $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char MD5 (void); +int +main (void) +{ +return MD5 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_crypto_MD5=yes +else $as_nop + ac_cv_lib_crypto_MD5=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_MD5" >&5 +printf "%s\n" "$ac_cv_lib_crypto_MD5" >&6; } +if test "x$ac_cv_lib_crypto_MD5" = xyes +then : + for ac_header in openssl/md5.h +do : + ac_fn_c_check_header_compile "$LINENO" "openssl/md5.h" "ac_cv_header_openssl_md5_h" "$ac_includes_default" +if test "x$ac_cv_header_openssl_md5_h" = xyes +then : + printf "%s\n" "#define HAVE_OPENSSL_MD5_H 1" >>confdefs.h + LIB_CRYPTO=-lcrypto + +printf "%s\n" "#define HAVE_OPENSSL_MD5 1" >>confdefs.h + +fi + +done +fi + + fi + if test "x$LIB_CRYPTO" = x; then + message='openssl development library not found for MD5. + If you want to install it, first find the pre-built package name: + - On Debian and Debian-based systems: libssl-dev, + - On Red Hat distributions: openssl-devel. + - Other: https://repology.org/project/openssl/versions' + if test "x$with_openssl" = xyes; then + as_fn_error $? "$message" "$LINENO" 5 + elif test "x$with_openssl" = xoptional; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $message" >&5 +printf "%s\n" "$as_me: WARNING: $message" >&2;} + fi + fi + fi + + + + + + + + + + + + +# Check whether --with-openssl was given. +if test ${with_openssl+y} +then : + withval=$with_openssl; +else $as_nop + with_openssl=$with_openssl_default +fi + + + + if test "x$with_openssl" != xno; then + if test "x$with_openssl" = xauto-gpl-compat; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether openssl is GPL compatible" >&5 +printf %s "checking whether openssl is GPL compatible... " >&6; } +if test ${gl_cv_openssl_gpl_compat+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <openssl/opensslv.h> + #if OPENSSL_VERSION_MAJOR < 3 + #error "openssl >= version 3 not found" + #endif + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_openssl_gpl_compat=yes +else $as_nop + gl_cv_openssl_gpl_compat=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_openssl_gpl_compat" >&5 +printf "%s\n" "$gl_cv_openssl_gpl_compat" >&6; } + fi + if test "x$with_openssl" != xauto-gpl-compat || + test "x$gl_cv_openssl_gpl_compat" = xyes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SHA1 in -lcrypto" >&5 +printf %s "checking for SHA1 in -lcrypto... " >&6; } +if test ${ac_cv_lib_crypto_SHA1+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypto $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char SHA1 (void); +int +main (void) +{ +return SHA1 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_crypto_SHA1=yes +else $as_nop + ac_cv_lib_crypto_SHA1=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_SHA1" >&5 +printf "%s\n" "$ac_cv_lib_crypto_SHA1" >&6; } +if test "x$ac_cv_lib_crypto_SHA1" = xyes +then : + for ac_header in openssl/sha.h +do : + ac_fn_c_check_header_compile "$LINENO" "openssl/sha.h" "ac_cv_header_openssl_sha_h" "$ac_includes_default" +if test "x$ac_cv_header_openssl_sha_h" = xyes +then : + printf "%s\n" "#define HAVE_OPENSSL_SHA_H 1" >>confdefs.h + LIB_CRYPTO=-lcrypto + +printf "%s\n" "#define HAVE_OPENSSL_SHA1 1" >>confdefs.h + +fi + +done +fi + + fi + if test "x$LIB_CRYPTO" = x; then + message='openssl development library not found for SHA1. + If you want to install it, first find the pre-built package name: + - On Debian and Debian-based systems: libssl-dev, + - On Red Hat distributions: openssl-devel. + - Other: https://repology.org/project/openssl/versions' + if test "x$with_openssl" = xyes; then + as_fn_error $? "$message" "$LINENO" 5 + elif test "x$with_openssl" = xoptional; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $message" >&5 +printf "%s\n" "$as_me: WARNING: $message" >&2;} + fi + fi + fi + + + + + + + + + + + + +# Check whether --with-openssl was given. +if test ${with_openssl+y} +then : + withval=$with_openssl; +else $as_nop + with_openssl=$with_openssl_default +fi + + + + if test "x$with_openssl" != xno; then + if test "x$with_openssl" = xauto-gpl-compat; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether openssl is GPL compatible" >&5 +printf %s "checking whether openssl is GPL compatible... " >&6; } +if test ${gl_cv_openssl_gpl_compat+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <openssl/opensslv.h> + #if OPENSSL_VERSION_MAJOR < 3 + #error "openssl >= version 3 not found" + #endif + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_openssl_gpl_compat=yes +else $as_nop + gl_cv_openssl_gpl_compat=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_openssl_gpl_compat" >&5 +printf "%s\n" "$gl_cv_openssl_gpl_compat" >&6; } + fi + if test "x$with_openssl" != xauto-gpl-compat || + test "x$gl_cv_openssl_gpl_compat" = xyes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SHA256 in -lcrypto" >&5 +printf %s "checking for SHA256 in -lcrypto... " >&6; } +if test ${ac_cv_lib_crypto_SHA256+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypto $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char SHA256 (void); +int +main (void) +{ +return SHA256 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_crypto_SHA256=yes +else $as_nop + ac_cv_lib_crypto_SHA256=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_SHA256" >&5 +printf "%s\n" "$ac_cv_lib_crypto_SHA256" >&6; } +if test "x$ac_cv_lib_crypto_SHA256" = xyes +then : + for ac_header in openssl/sha.h +do : + ac_fn_c_check_header_compile "$LINENO" "openssl/sha.h" "ac_cv_header_openssl_sha_h" "$ac_includes_default" +if test "x$ac_cv_header_openssl_sha_h" = xyes +then : + printf "%s\n" "#define HAVE_OPENSSL_SHA_H 1" >>confdefs.h + LIB_CRYPTO=-lcrypto + +printf "%s\n" "#define HAVE_OPENSSL_SHA256 1" >>confdefs.h + +fi + +done +fi + + fi + if test "x$LIB_CRYPTO" = x; then + message='openssl development library not found for SHA256. + If you want to install it, first find the pre-built package name: + - On Debian and Debian-based systems: libssl-dev, + - On Red Hat distributions: openssl-devel. + - Other: https://repology.org/project/openssl/versions' + if test "x$with_openssl" = xyes; then + as_fn_error $? "$message" "$LINENO" 5 + elif test "x$with_openssl" = xoptional; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $message" >&5 +printf "%s\n" "$as_me: WARNING: $message" >&2;} + fi + fi + fi + + + + + + + + + + + + +# Check whether --with-openssl was given. +if test ${with_openssl+y} +then : + withval=$with_openssl; +else $as_nop + with_openssl=$with_openssl_default +fi + + + + if test "x$with_openssl" != xno; then + if test "x$with_openssl" = xauto-gpl-compat; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether openssl is GPL compatible" >&5 +printf %s "checking whether openssl is GPL compatible... " >&6; } +if test ${gl_cv_openssl_gpl_compat+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <openssl/opensslv.h> + #if OPENSSL_VERSION_MAJOR < 3 + #error "openssl >= version 3 not found" + #endif + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_openssl_gpl_compat=yes +else $as_nop + gl_cv_openssl_gpl_compat=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_openssl_gpl_compat" >&5 +printf "%s\n" "$gl_cv_openssl_gpl_compat" >&6; } + fi + if test "x$with_openssl" != xauto-gpl-compat || + test "x$gl_cv_openssl_gpl_compat" = xyes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SHA512 in -lcrypto" >&5 +printf %s "checking for SHA512 in -lcrypto... " >&6; } +if test ${ac_cv_lib_crypto_SHA512+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypto $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char SHA512 (void); +int +main (void) +{ +return SHA512 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_crypto_SHA512=yes +else $as_nop + ac_cv_lib_crypto_SHA512=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_SHA512" >&5 +printf "%s\n" "$ac_cv_lib_crypto_SHA512" >&6; } +if test "x$ac_cv_lib_crypto_SHA512" = xyes +then : + for ac_header in openssl/sha.h +do : + ac_fn_c_check_header_compile "$LINENO" "openssl/sha.h" "ac_cv_header_openssl_sha_h" "$ac_includes_default" +if test "x$ac_cv_header_openssl_sha_h" = xyes +then : + printf "%s\n" "#define HAVE_OPENSSL_SHA_H 1" >>confdefs.h + LIB_CRYPTO=-lcrypto + +printf "%s\n" "#define HAVE_OPENSSL_SHA512 1" >>confdefs.h + +fi + +done +fi + + fi + if test "x$LIB_CRYPTO" = x; then + message='openssl development library not found for SHA512. + If you want to install it, first find the pre-built package name: + - On Debian and Debian-based systems: libssl-dev, + - On Red Hat distributions: openssl-devel. + - Other: https://repology.org/project/openssl/versions' + if test "x$with_openssl" = xyes; then + as_fn_error $? "$message" "$LINENO" 5 + elif test "x$with_openssl" = xoptional; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $message" >&5 +printf "%s\n" "$as_me: WARNING: $message" >&2;} + fi + fi + fi + + + + + + + + + + + + @@ -35592,12 +36270,6 @@ then : enableval=$enable_qmanifest; fi -# Check whether --enable-qtegrity was given. -if test ${enable_qtegrity+y} -then : - enableval=$enable_qtegrity; -fi - @@ -35729,139 +36401,6 @@ printf "%s\n" "no" >&6; } PKG_CONFIG="" fi fi -if test "x${enable_qmanifest}${enable_qtegrity}" != "xnono" -then : - - -pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libcrypto" >&5 -printf %s "checking for libcrypto... " >&6; } - -if test -n "$LIBSSL_CFLAGS"; then - pkg_cv_LIBSSL_CFLAGS="$LIBSSL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcrypto\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libcrypto") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBSSL_CFLAGS=`$PKG_CONFIG --cflags "libcrypto" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$LIBSSL_LIBS"; then - pkg_cv_LIBSSL_LIBS="$LIBSSL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcrypto\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libcrypto") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_LIBSSL_LIBS=`$PKG_CONFIG --libs "libcrypto" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - LIBSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libcrypto" 2>&1` - else - LIBSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libcrypto" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$LIBSSL_PKG_ERRORS" >&5 - - - if test "x${enable_qmanifest}" = "xyes" -then : - - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "--enable-qmanifest was given, but libcrypto.pc could not be found -See \`config.log' for more details" "$LINENO" 5; } - -fi - if test "x${enable_qtegrity}" = "xyes" -then : - - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "--enable-qtegrity was given, but libcrypto.pc could not be found -See \`config.log' for more details" "$LINENO" 5; } - -fi - LIBSSL="no: missing dependencies" - -elif test $pkg_failed = untried; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - - if test "x${enable_qmanifest}" = "xyes" -then : - - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "--enable-qmanifest was given, but libcrypto.pc could not be found -See \`config.log' for more details" "$LINENO" 5; } - -fi - if test "x${enable_qtegrity}" = "xyes" -then : - - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "--enable-qtegrity was given, but libcrypto.pc could not be found -See \`config.log' for more details" "$LINENO" 5; } - -fi - LIBSSL="no: missing dependencies" - -else - LIBSSL_CFLAGS=$pkg_cv_LIBSSL_CFLAGS - LIBSSL_LIBS=$pkg_cv_LIBSSL_LIBS - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - - -printf "%s\n" "#define HAVE_SSL 1" >>confdefs.h - - LIBSSL="yes" - -fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable qtegrity" >&5 -printf %s "checking whether to enable qtegrity... " >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${LIBSSL}" >&5 -printf "%s\n" "${LIBSSL}" >&6; } - -else $as_nop - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable qtegrity" >&5 -printf %s "checking whether to enable qtegrity... " >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no: disabled by configure argument" >&5 -printf "%s\n" "no: disabled by configure argument" >&6; } - -fi - if test "x${enable_qmanifest}" != "xno" then : @@ -36191,24 +36730,11 @@ else QMANIFEST_ENABLED_FALSE= fi - if test "x$enable_qtegrity" != xno; then - QTEGRITY_ENABLED_TRUE= - QTEGRITY_ENABLED_FALSE='#' -else - QTEGRITY_ENABLED_TRUE='#' - QTEGRITY_ENABLED_FALSE= -fi - if test "x$enable_qmanifest" != xno ; then printf "%s\n" "#define ENABLE_QMANIFEST 1" >>confdefs.h fi -if test "x$enable_qtegrity" != xno ; then - -printf "%s\n" "#define ENABLE_QTEGRITY 1" >>confdefs.h - -fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler vendor" >&5 printf %s "checking for C compiler vendor... " >&6; } @@ -37293,10 +37819,6 @@ if test -z "${QMANIFEST_ENABLED_TRUE}" && test -z "${QMANIFEST_ENABLED_FALSE}"; as_fn_error $? "conditional \"QMANIFEST_ENABLED\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${QTEGRITY_ENABLED_TRUE}" && test -z "${QTEGRITY_ENABLED_FALSE}"; then - as_fn_error $? "conditional \"QTEGRITY_ENABLED\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 diff --git a/libq/Makefile.in b/libq/Makefile.in index a19e4b1f..aab8020a 100644 --- a/libq/Makefile.in +++ b/libq/Makefile.in @@ -88,7 +88,6 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -@QMANIFEST_ENABLED_FALSE@@QTEGRITY_ENABLED_FALSE@am__append_1 = hash_md5_sha1.c hash_md5_sha1.h subdir = libq ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ @@ -99,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -146,6 +146,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -168,6 +169,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -201,11 +203,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -261,17 +267,7 @@ am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libq_a_AR = $(AR) $(ARFLAGS) libq_a_LIBADD = -am__libq_a_SOURCES_DIST = atom.c atom.h basename.c basename.h \ - busybox.h colors.c colors.h contents.c contents.h copy_file.c \ - copy_file.h dep.c dep.h eat_file.c eat_file.h hash.c hash.h \ - human_readable.c human_readable.h i18n.h move_file.c \ - move_file.h prelink.c prelink.h profile.c profile.h rmspace.c \ - rmspace.h safe_io.c safe_io.h scandirat.c scandirat.h set.c \ - set.h tree.c tree.h xarray.c xarray.h xasprintf.h xchdir.c \ - xchdir.h xmkdir.c xmkdir.h xpak.c xpak.h xregex.c xregex.h \ - xsystem.c xsystem.h hash_md5_sha1.c hash_md5_sha1.h -@QMANIFEST_ENABLED_FALSE@@QTEGRITY_ENABLED_FALSE@am__objects_1 = libq_a-hash_md5_sha1.$(OBJEXT) -am__objects_2 = libq_a-atom.$(OBJEXT) libq_a-basename.$(OBJEXT) \ +am__objects_1 = libq_a-atom.$(OBJEXT) libq_a-basename.$(OBJEXT) \ libq_a-colors.$(OBJEXT) libq_a-contents.$(OBJEXT) \ libq_a-copy_file.$(OBJEXT) libq_a-dep.$(OBJEXT) \ libq_a-eat_file.$(OBJEXT) libq_a-hash.$(OBJEXT) \ @@ -282,8 +278,8 @@ am__objects_2 = libq_a-atom.$(OBJEXT) libq_a-basename.$(OBJEXT) \ libq_a-tree.$(OBJEXT) libq_a-xarray.$(OBJEXT) \ libq_a-xchdir.$(OBJEXT) libq_a-xmkdir.$(OBJEXT) \ libq_a-xpak.$(OBJEXT) libq_a-xregex.$(OBJEXT) \ - libq_a-xsystem.$(OBJEXT) $(am__objects_1) -am_libq_a_OBJECTS = $(am__objects_2) + libq_a-xsystem.$(OBJEXT) +am_libq_a_OBJECTS = $(am__objects_1) libq_a_OBJECTS = $(am_libq_a_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -304,7 +300,7 @@ am__depfiles_remade = ./$(DEPDIR)/libq_a-atom.Po \ ./$(DEPDIR)/libq_a-basename.Po ./$(DEPDIR)/libq_a-colors.Po \ ./$(DEPDIR)/libq_a-contents.Po ./$(DEPDIR)/libq_a-copy_file.Po \ ./$(DEPDIR)/libq_a-dep.Po ./$(DEPDIR)/libq_a-eat_file.Po \ - ./$(DEPDIR)/libq_a-hash.Po ./$(DEPDIR)/libq_a-hash_md5_sha1.Po \ + ./$(DEPDIR)/libq_a-hash.Po \ ./$(DEPDIR)/libq_a-human_readable.Po \ ./$(DEPDIR)/libq_a-move_file.Po ./$(DEPDIR)/libq_a-prelink.Po \ ./$(DEPDIR)/libq_a-profile.Po ./$(DEPDIR)/libq_a-rmspace.Po \ @@ -331,7 +327,7 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libq_a_SOURCES) -DIST_SOURCES = $(am__libq_a_SOURCES_DIST) +DIST_SOURCES = $(libq_a_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -374,6 +370,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1227,11 +1224,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ @@ -1683,15 +1679,35 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -QFILES = atom.c atom.h basename.c basename.h busybox.h colors.c \ - colors.h contents.c contents.h copy_file.c copy_file.h dep.c \ - dep.h eat_file.c eat_file.h hash.c hash.h human_readable.c \ - human_readable.h i18n.h move_file.c move_file.h prelink.c \ - prelink.h profile.c profile.h rmspace.c rmspace.h safe_io.c \ - safe_io.h scandirat.c scandirat.h set.c set.h tree.c tree.h \ - xarray.c xarray.h xasprintf.h xchdir.c xchdir.h xmkdir.c \ - xmkdir.h xpak.c xpak.h xregex.c xregex.h xsystem.c xsystem.h \ - $(NULL) $(am__append_1) +QFILES = \ + atom.c atom.h \ + basename.c basename.h \ + busybox.h \ + colors.c colors.h \ + contents.c contents.h \ + copy_file.c copy_file.h \ + dep.c dep.h \ + eat_file.c eat_file.h \ + hash.c hash.h \ + human_readable.c human_readable.h \ + i18n.h \ + move_file.c move_file.h \ + prelink.c prelink.h \ + profile.c profile.h \ + rmspace.c rmspace.h \ + safe_io.c safe_io.h \ + scandirat.c scandirat.h \ + set.c set.h \ + tree.c tree.h \ + xarray.c xarray.h \ + xasprintf.h \ + xchdir.c xchdir.h \ + xmkdir.c xmkdir.h \ + xpak.c xpak.h \ + xregex.c xregex.h \ + xsystem.c xsystem.h \ + $(NULL) + noinst_LIBRARIES = libq.a libq_a_SOURCES = $(QFILES) libq_a_CPPFLAGS = \ @@ -1755,7 +1771,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libq_a-dep.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libq_a-eat_file.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libq_a-hash.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libq_a-hash_md5_sha1.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libq_a-human_readable.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libq_a-move_file.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libq_a-prelink.Po@am__quote@ # am--include-marker @@ -2114,20 +2129,6 @@ libq_a-xsystem.obj: xsystem.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libq_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libq_a-xsystem.obj `if test -f 'xsystem.c'; then $(CYGPATH_W) 'xsystem.c'; else $(CYGPATH_W) '$(srcdir)/xsystem.c'; fi` -libq_a-hash_md5_sha1.o: hash_md5_sha1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libq_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libq_a-hash_md5_sha1.o -MD -MP -MF $(DEPDIR)/libq_a-hash_md5_sha1.Tpo -c -o libq_a-hash_md5_sha1.o `test -f 'hash_md5_sha1.c' || echo '$(srcdir)/'`hash_md5_sha1.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libq_a-hash_md5_sha1.Tpo $(DEPDIR)/libq_a-hash_md5_sha1.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hash_md5_sha1.c' object='libq_a-hash_md5_sha1.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libq_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libq_a-hash_md5_sha1.o `test -f 'hash_md5_sha1.c' || echo '$(srcdir)/'`hash_md5_sha1.c - -libq_a-hash_md5_sha1.obj: hash_md5_sha1.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libq_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libq_a-hash_md5_sha1.obj -MD -MP -MF $(DEPDIR)/libq_a-hash_md5_sha1.Tpo -c -o libq_a-hash_md5_sha1.obj `if test -f 'hash_md5_sha1.c'; then $(CYGPATH_W) 'hash_md5_sha1.c'; else $(CYGPATH_W) '$(srcdir)/hash_md5_sha1.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libq_a-hash_md5_sha1.Tpo $(DEPDIR)/libq_a-hash_md5_sha1.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hash_md5_sha1.c' object='libq_a-hash_md5_sha1.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libq_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libq_a-hash_md5_sha1.obj `if test -f 'hash_md5_sha1.c'; then $(CYGPATH_W) 'hash_md5_sha1.c'; else $(CYGPATH_W) '$(srcdir)/hash_md5_sha1.c'; fi` - ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am @@ -2259,7 +2260,6 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/libq_a-dep.Po -rm -f ./$(DEPDIR)/libq_a-eat_file.Po -rm -f ./$(DEPDIR)/libq_a-hash.Po - -rm -f ./$(DEPDIR)/libq_a-hash_md5_sha1.Po -rm -f ./$(DEPDIR)/libq_a-human_readable.Po -rm -f ./$(DEPDIR)/libq_a-move_file.Po -rm -f ./$(DEPDIR)/libq_a-prelink.Po @@ -2328,7 +2328,6 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/libq_a-dep.Po -rm -f ./$(DEPDIR)/libq_a-eat_file.Po -rm -f ./$(DEPDIR)/libq_a-hash.Po - -rm -f ./$(DEPDIR)/libq_a-hash_md5_sha1.Po -rm -f ./$(DEPDIR)/libq_a-human_readable.Po -rm -f ./$(DEPDIR)/libq_a-move_file.Po -rm -f ./$(DEPDIR)/libq_a-prelink.Po diff --git a/tests/Makefile.in b/tests/Makefile.in index 666f0140..fae46b19 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -98,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -145,6 +146,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -167,6 +169,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -200,11 +203,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -353,6 +360,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1206,11 +1214,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/atom_compare/Makefile.in b/tests/atom_compare/Makefile.in index 3f4f2433..95953870 100644 --- a/tests/atom_compare/Makefile.in +++ b/tests/atom_compare/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/atom_explode/Makefile.in b/tests/atom_explode/Makefile.in index 9d0d8835..b52fcf5f 100644 --- a/tests/atom_explode/Makefile.in +++ b/tests/atom_explode/Makefile.in @@ -98,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -145,6 +146,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -167,6 +169,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -200,11 +203,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -336,6 +343,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1189,11 +1197,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/copy_file/Makefile.in b/tests/copy_file/Makefile.in index c2dd0d4a..87f2d9df 100644 --- a/tests/copy_file/Makefile.in +++ b/tests/copy_file/Makefile.in @@ -98,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -145,6 +146,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -167,6 +169,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -200,11 +203,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -337,6 +344,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1190,11 +1198,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/install/Makefile.in b/tests/install/Makefile.in index e3dc2d28..471bc160 100644 --- a/tests/install/Makefile.in +++ b/tests/install/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/mkdir/Makefile.in b/tests/mkdir/Makefile.in index 15a8c667..e81f9693 100644 --- a/tests/mkdir/Makefile.in +++ b/tests/mkdir/Makefile.in @@ -98,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -145,6 +146,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -167,6 +169,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -200,11 +203,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -336,6 +343,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1189,11 +1197,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/profile/Makefile.in b/tests/profile/Makefile.in index e2aac9f8..40735801 100644 --- a/tests/profile/Makefile.in +++ b/tests/profile/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/qatom/Makefile.in b/tests/qatom/Makefile.in index 47e4339d..ac809224 100644 --- a/tests/qatom/Makefile.in +++ b/tests/qatom/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/qcheck/Makefile.in b/tests/qcheck/Makefile.in index 1149fab6..ca9cb90b 100644 --- a/tests/qcheck/Makefile.in +++ b/tests/qcheck/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/qdepends/Makefile.in b/tests/qdepends/Makefile.in index 6913a9ba..f65fd795 100644 --- a/tests/qdepends/Makefile.in +++ b/tests/qdepends/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/qfile/Makefile.in b/tests/qfile/Makefile.in index c7e8f5f2..c5bb182d 100644 --- a/tests/qfile/Makefile.in +++ b/tests/qfile/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/qlist/Makefile.in b/tests/qlist/Makefile.in index 42365d07..6557f8f7 100644 --- a/tests/qlist/Makefile.in +++ b/tests/qlist/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/qlop/Makefile.in b/tests/qlop/Makefile.in index 0305cd9a..d0b49e59 100644 --- a/tests/qlop/Makefile.in +++ b/tests/qlop/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/qmanifest/Makefile.in b/tests/qmanifest/Makefile.in index 551129a4..4ad0f43b 100644 --- a/tests/qmanifest/Makefile.in +++ b/tests/qmanifest/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/qmerge/Makefile.in b/tests/qmerge/Makefile.in index 7bb020c7..bcba384c 100644 --- a/tests/qmerge/Makefile.in +++ b/tests/qmerge/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/qtbz2/Makefile.in b/tests/qtbz2/Makefile.in index ad2689b6..c78c834a 100644 --- a/tests/qtbz2/Makefile.in +++ b/tests/qtbz2/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/quse/Makefile.in b/tests/quse/Makefile.in index b449a194..ede1737d 100644 --- a/tests/quse/Makefile.in +++ b/tests/quse/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/qxpak/Makefile.in b/tests/qxpak/Makefile.in index 1996e377..2f329e72 100644 --- a/tests/qxpak/Makefile.in +++ b/tests/qxpak/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/rmspace/Makefile.in b/tests/rmspace/Makefile.in index 3d8a9f91..5e1552b1 100644 --- a/tests/rmspace/Makefile.in +++ b/tests/rmspace/Makefile.in @@ -98,6 +98,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -145,6 +146,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -167,6 +169,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -200,11 +203,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -336,6 +343,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1189,11 +1197,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ diff --git a/tests/source/Makefile.in b/tests/source/Makefile.in index 9c8220c5..40a76635 100644 --- a/tests/source/Makefile.in +++ b/tests/source/Makefile.in @@ -97,6 +97,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/alloca.m4 \ $(top_srcdir)/autotools/m4/assert_h.m4 \ $(top_srcdir)/autotools/m4/builtin-expect.m4 \ + $(top_srcdir)/autotools/m4/byteswap.m4 \ $(top_srcdir)/autotools/m4/c-bool.m4 \ $(top_srcdir)/autotools/m4/calloc.m4 \ $(top_srcdir)/autotools/m4/canonicalize.m4 \ @@ -144,6 +145,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/getprogname.m4 \ $(top_srcdir)/autotools/m4/gettime.m4 \ $(top_srcdir)/autotools/m4/gettimeofday.m4 \ + $(top_srcdir)/autotools/m4/gl-openssl.m4 \ $(top_srcdir)/autotools/m4/gnulib-common.m4 \ $(top_srcdir)/autotools/m4/gnulib-comp.m4 \ $(top_srcdir)/autotools/m4/group-member.m4 \ @@ -166,6 +168,7 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/math_h.m4 \ $(top_srcdir)/autotools/m4/mbrtowc.m4 \ $(top_srcdir)/autotools/m4/mbstate_t.m4 \ + $(top_srcdir)/autotools/m4/md5.m4 \ $(top_srcdir)/autotools/m4/memchr.m4 \ $(top_srcdir)/autotools/m4/mempcpy.m4 \ $(top_srcdir)/autotools/m4/memrchr.m4 \ @@ -199,11 +202,15 @@ am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/00gnulib.m4 \ $(top_srcdir)/autotools/m4/renameat.m4 \ $(top_srcdir)/autotools/m4/rmdir.m4 \ $(top_srcdir)/autotools/m4/save-cwd.m4 \ + $(top_srcdir)/autotools/m4/sha1.m4 \ + $(top_srcdir)/autotools/m4/sha256.m4 \ + $(top_srcdir)/autotools/m4/sha512.m4 \ $(top_srcdir)/autotools/m4/signbit.m4 \ $(top_srcdir)/autotools/m4/size_max.m4 \ $(top_srcdir)/autotools/m4/ssize_t.m4 \ $(top_srcdir)/autotools/m4/stat-time.m4 \ $(top_srcdir)/autotools/m4/stat.m4 \ + $(top_srcdir)/autotools/m4/stdalign.m4 \ $(top_srcdir)/autotools/m4/stddef_h.m4 \ $(top_srcdir)/autotools/m4/stdint.m4 \ $(top_srcdir)/autotools/m4/stdint_h.m4 \ @@ -292,6 +299,7 @@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BYTESWAP_H = @BYTESWAP_H@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -1145,11 +1153,10 @@ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ -LIBSSL_CFLAGS = @LIBSSL_CFLAGS@ -LIBSSL_LIBS = @LIBSSL_LIBS@ LIBZ_CFLAGS = @LIBZ_CFLAGS@ LIBZ_LIBS = @LIBZ_LIBS@ LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_CRYPTO = @LIB_CRYPTO@ LIB_EACCESS = @LIB_EACCESS@ LIMITS_H = @LIMITS_H@ LN_S = @LN_S@ |