This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by libarchive configure 3.7.2, which was generated by GNU Autoconf 2.71. Invocation command line was $ ./configure --target=arm-buildroot-linux-gnueabi --host=arm-buildroot-linux-gnueabi --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix= --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --enable-static --enable-shared --disable-bsdtar --disable-bsdcpio --disable-bsdcat --disable-acl --disable-xattr --without-bz2lib --without-libiconv-prefix --without-xml2 --with-lz4 --without-lzo2 --without-mbedtls --without-nettle --without-openssl --without-lzma --without-zstd ## --------- ## ## Platform. ## ## --------- ## hostname = build3.bootlin.com uname -m = x86_64 uname -r = 5.4.0-165-generic uname -s = Linux uname -v = #182-Ubuntu SMP Mon Oct 2 19:43:28 UTC 2023 /usr/bin/uname -p = x86_64 /bin/uname -X = unknown /bin/arch = x86_64 /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /home/thomas/autobuild/instance-3/output-1/host/bin/ PATH: /home/thomas/autobuild/instance-3/output-1/host/sbin/ PATH: /usr/local/sbin/ PATH: /usr/local/bin/ PATH: /usr/sbin/ PATH: /usr/bin/ PATH: /sbin/ PATH: /bin/ PATH: /snap/bin/ ## ----------- ## ## Core tests. ## ## ----------- ## configure:3078: looking for aux files: config.rpath ltmain.sh compile config.guess config.sub missing install-sh configure:3091: trying ./build/autoconf/ configure:3120: ./build/autoconf/config.rpath found configure:3120: ./build/autoconf/ltmain.sh found configure:3120: ./build/autoconf/compile found configure:3120: ./build/autoconf/config.guess found configure:3120: ./build/autoconf/config.sub found configure:3120: ./build/autoconf/missing found configure:3102: ./build/autoconf/install-sh found configure:3256: checking for a BSD-compatible install configure:3329: result: /usr/bin/install -c configure:3340: checking whether build environment is sane configure:3395: result: yes configure:3449: checking for arm-buildroot-linux-gnueabi-strip configure:3481: result: /bin/true configure:3552: checking for a race-free mkdir -p configure:3596: result: /usr/bin/mkdir -p configure:3603: checking for gawk configure:3624: found /usr/bin/gawk configure:3635: result: gawk configure:3646: checking whether make sets $(MAKE) configure:3669: result: yes configure:3699: checking whether make supports nested variables configure:3717: result: yes configure:3854: checking whether to enable maintainer-specific portions of Makefiles configure:3864: result: yes configure:3889: checking whether make supports nested variables configure:3907: result: yes configure:3993: checking build system type configure:4008: result: x86_64-pc-linux-gnu configure:4028: checking host system type configure:4042: result: arm-buildroot-linux-gnueabi configure:4110: checking for arm-buildroot-linux-gnueabi-gcc configure:4142: result: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc configure:4540: checking for C compiler version configure:4549: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc --version >&5 arm-none-linux-gnueabi-gcc (Sourcery CodeBench Lite 2014.05-29) 4.8.3 20140320 (prerelease) Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:4560: $? = 0 configure:4549: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -v >&5 Using built-in specs. COLLECT_GCC=/home/thomas/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/arm-none-linux-gnueabi-gcc COLLECT_LTO_WRAPPER=/home/thomas/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/../libexec/gcc/arm-none-linux-gnueabi/4.8.3/lto-wrapper Target: arm-none-linux-gnueabi Configured with: /scratch/maciej/arm-linux-2014.05-rel/src/gcc-4.8-2014.05/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} -D__CS_SOURCERYGXX_MAJ__=2014 -D__CS_SOURCERYGXX_MIN__=5 -D__CS_SOURCERYGXX_REV__=29' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery CodeBench Lite 2014.05-29' --with-bugurl=https://sourcery.mentor.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/maciej/arm-linux-2014.05-rel/install/opt/codesourcery/arm-none-linux-gnueabi/libc --with-gmp=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpfr=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpc=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-isl=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-cloog=/scratch/maciej/arm-linux-2014.05-rel/obj/pkg-2014.05-29-arm-none-linux-gnueabi/arm-2014.05-29-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --disable-libgomp --disable-libitm --enable-libatomic --disable-libssp --enable-poison-system-directories --with-build-time-tools=/scratch/maciej/arm-linux-2014.05-rel/install/opt/codesourcery/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/maciej/arm-linux-2014.05-rel/install/opt/codesourcery/arm-none-linux-gnueabi/bin SED=sed Thread model: posix gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29) configure:4560: $? = 0 configure:4549: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -V >&5 arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-V' arm-none-linux-gnueabi-gcc: fatal error: no input files compilation terminated. configure:4560: $? = 1 configure:4549: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -qversion >&5 arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-qversion' arm-none-linux-gnueabi-gcc: fatal error: no input files compilation terminated. configure:4560: $? = 1 configure:4549: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -version >&5 arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-version' arm-none-linux-gnueabi-gcc: fatal error: no input files compilation terminated. configure:4560: $? = 1 configure:4580: checking whether the C compiler works configure:4602: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:4606: $? = 0 configure:4656: result: yes configure:4659: checking for C compiler default output file name configure:4661: result: a.out configure:4667: checking for suffix of executables configure:4674: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:4678: $? = 0 configure:4701: result: configure:4723: checking whether we are cross compiling configure:4761: result: yes configure:4766: checking for suffix of object files configure:4789: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:4793: $? = 0 configure:4815: result: o configure:4819: checking whether the compiler supports GNU C configure:4839: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:4839: $? = 0 configure:4849: result: yes configure:4860: checking whether /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc accepts -g configure:4881: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -c -g -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:4881: $? = 0 configure:4925: result: yes configure:4945: checking for /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc option to enable C11 features configure:4960: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:70:3: error: #error "Compiler does not advertise C99 conformance" # error "Compiler does not advertise C99 conformance" ^ conftest.c:125:29: error: expected ';', ',' or ')' before 'text' test_restrict (ccp restrict text) ^ conftest.c:174:3: error: #error "Compiler does not advertise C11 conformance" # error "Compiler does not advertise C11 conformance" ^ conftest.c:205:12: error: 'syntax' undeclared here (not in a function) #define u8 syntax error! ^ conftest.c:206:29: note: in expansion of macro 'u8' char const utf8_literal[] = u8"happens to be ASCII" "another string"; ^ conftest.c:205:19: error: expected ',' or ';' before 'error' #define u8 syntax error! ^ conftest.c:206:29: note: in expansion of macro 'u8' char const utf8_literal[] = u8"happens to be ASCII" "another string"; ^ conftest.c: In function 'main': conftest.c:239:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'newvar' char *restrict newvar = "Another string"; ^ conftest.c:239:18: error: 'newvar' undeclared (first use in this function) conftest.c:239:18: note: each undeclared identifier is reported only once for each function it appears in conftest.c:249:3: error: 'for' loop initial declarations are only allowed in C99 mode for (int i = 0; i < ia->datasize; ++i) ^ conftest.c:249:3: note: use option -std=c99 or -std=gnu99 to compile your code configure:4960: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | /* end confdefs.h. */ | | /* Does the compiler advertise C89 conformance? | Do not test the value of __STDC__, because some compilers set it to 0 | while being otherwise adequately conformant. */ | #if !defined __STDC__ | # error "Compiler does not advertise C89 conformance" | #endif | | #include | #include | struct stat; | /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ | struct buf { int x; }; | struct buf * (*rcsopen) (struct buf *, struct stat *, int); | static char *e (p, i) | char **p; | int i; | { | return p[i]; | } | static char *f (char * (*g) (char **, int), char **p, ...) | { | char *s; | va_list v; | va_start (v,p); | s = g (p, va_arg (v,int)); | va_end (v); | return s; | } | | /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has | function prototypes and stuff, but not \xHH hex character constants. | These do not provoke an error unfortunately, instead are silently treated | as an "x". The following induces an error, until -std is added to get | proper ANSI mode. Curiously \x00 != x always comes out true, for an | array size at least. It is necessary to write \x00 == 0 to get something | that is true only with -std. */ | int osf4_cc_array ['\x00' == 0 ? 1 : -1]; | | /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters | inside strings and character constants. */ | #define FOO(x) 'x' | int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; | | int test (int i, double x); | struct s1 {int (*f) (int a);}; | struct s2 {int (*f) (double a);}; | int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), | int, int); | | // Does the compiler advertise C99 conformance? | #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L | # error "Compiler does not advertise C99 conformance" | #endif | | #include | extern int puts (const char *); | extern int printf (const char *, ...); | extern int dprintf (int, const char *, ...); | extern void *malloc (size_t); | | // Check varargs macros. These examples are taken from C99 6.10.3.5. | // dprintf is used instead of fprintf to avoid needing to declare | // FILE and stderr. | #define debug(...) dprintf (2, __VA_ARGS__) | #define showlist(...) puts (#__VA_ARGS__) | #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) | static void | test_varargs_macros (void) | { | int x = 1234; | int y = 5678; | debug ("Flag"); | debug ("X = %d\n", x); | showlist (The first, second, and third items.); | report (x>y, "x is %d but y is %d", x, y); | } | | // Check long long types. | #define BIG64 18446744073709551615ull | #define BIG32 4294967295ul | #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) | #if !BIG_OK | #error "your preprocessor is broken" | #endif | #if BIG_OK | #else | #error "your preprocessor is broken" | #endif | static long long int bignum = -9223372036854775807LL; | static unsigned long long int ubignum = BIG64; | | struct incomplete_array | { | int datasize; | double data[]; | }; | | struct named_init { | int number; | const wchar_t *name; | double average; | }; | | typedef const char *ccp; | | static inline int | test_restrict (ccp restrict text) | { | // See if C++-style comments work. | // Iterate through items via the restricted pointer. | // Also check for declarations in for loops. | for (unsigned int i = 0; *(text+i) != '\0'; ++i) | continue; | return 0; | } | | // Check varargs and va_copy. | static bool | test_varargs (const char *format, ...) | { | va_list args; | va_start (args, format); | va_list args_copy; | va_copy (args_copy, args); | | const char *str = ""; | int number = 0; | float fnumber = 0; | | while (*format) | { | switch (*format++) | { | case 's': // string | str = va_arg (args_copy, const char *); | break; | case 'd': // int | number = va_arg (args_copy, int); | break; | case 'f': // float | fnumber = va_arg (args_copy, double); | break; | default: | break; | } | } | va_end (args_copy); | va_end (args); | | return *str && number && fnumber; | } | | | // Does the compiler advertise C11 conformance? | #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L | # error "Compiler does not advertise C11 conformance" | #endif | | // Check _Alignas. | char _Alignas (double) aligned_as_double; | char _Alignas (0) no_special_alignment; | extern char aligned_as_int; | char _Alignas (0) _Alignas (int) aligned_as_int; | | // Check _Alignof. | enum | { | int_alignment = _Alignof (int), | int_array_alignment = _Alignof (int[100]), | char_alignment = _Alignof (char) | }; | _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); | | // Check _Noreturn. | int _Noreturn does_not_return (void) { for (;;) continue; } | | // Check _Static_assert. | struct test_static_assert | { | int x; | _Static_assert (sizeof (int) <= sizeof (long int), | "_Static_assert does not work in struct"); | long int y; | }; | | // Check UTF-8 literals. | #define u8 syntax error! | char const utf8_literal[] = u8"happens to be ASCII" "another string"; | | // Check duplicate typedefs. | typedef long *long_ptr; | typedef long int *long_ptr; | typedef long_ptr long_ptr; | | // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. | struct anonymous | { | union { | struct { int i; int j; }; | struct { int k; long int l; } w; | }; | int m; | } v1; | | | int | main (int argc, char **argv) | { | int ok = 0; | | ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); | | | // Check bool. | _Bool success = false; | success |= (argc != 0); | | // Check restrict. | if (test_restrict ("String literal") == 0) | success = true; | char *restrict newvar = "Another string"; | | // Check varargs. | success &= test_varargs ("s, d' f .", "string", 65, 34.234); | test_varargs_macros (); | | // Check flexible array members. | struct incomplete_array *ia = | malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); | ia->datasize = 10; | for (int i = 0; i < ia->datasize; ++i) | ia->data[i] = i * 1.234; | | // Check named initializers. | struct named_init ni = { | .number = 34, | .name = L"Test wide string", | .average = 543.34343, | }; | | ni.number = 58; | | int dynamic_array[ni.number]; | dynamic_array[0] = argv[0][0]; | dynamic_array[ni.number - 1] = 543; | | // work around unused variable warnings | ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' | || dynamic_array[ni.number - 1] != 543); | | | _Static_assert ((offsetof (struct anonymous, i) | == offsetof (struct anonymous, w.k)), | "Anonymous union alignment botch"); | v1.i = 2; | v1.w.k = 5; | ok |= v1.i != 5; | | return ok; | } | configure:4960: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:4960: $? = 0 configure:4981: result: -std=gnu11 configure:5094: checking whether /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 understands -c and -o together configure:5117: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c conftest.c -o conftest2.o configure:5120: $? = 0 configure:5117: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c conftest.c -o conftest2.o configure:5120: $? = 0 configure:5132: result: yes configure:5152: checking whether make supports the include directive configure:5167: make -f confmf.GNU && cat confinc.out make[1]: Entering directory '/home/thomas/autobuild/instance-3/output-1/build/libarchive-3.7.2' make[1]: Leaving directory '/home/thomas/autobuild/instance-3/output-1/build/libarchive-3.7.2' this is the am__doit target configure:5170: $? = 0 configure:5189: result: yes (GNU style) configure:5215: checking dependency style of /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 configure:5327: result: none configure:5348: checking how to run the C preprocessor configure:5416: result: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-cpp configure:5430: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-cpp -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c configure:5430: $? = 0 configure:5445: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-cpp -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c conftest.c:18:28: fatal error: ac_nonexistent.h: No such file or directory #include ^ compilation terminated. configure:5445: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | /* end confdefs.h. */ | #include configure:5480: checking for stdio.h configure:5480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5480: $? = 0 configure:5480: result: yes configure:5480: checking for stdlib.h configure:5480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5480: $? = 0 configure:5480: result: yes configure:5480: checking for string.h configure:5480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5480: $? = 0 configure:5480: result: yes configure:5480: checking for inttypes.h configure:5480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5480: $? = 0 configure:5480: result: yes configure:5480: checking for stdint.h configure:5480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5480: $? = 0 configure:5480: result: yes configure:5480: checking for strings.h configure:5480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5480: $? = 0 configure:5480: result: yes configure:5480: checking for sys/stat.h configure:5480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5480: $? = 0 configure:5480: result: yes configure:5480: checking for sys/types.h configure:5480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5480: $? = 0 configure:5480: result: yes configure:5480: checking for unistd.h configure:5480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5480: $? = 0 configure:5480: result: yes configure:5480: checking for wchar.h configure:5480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5480: $? = 0 configure:5480: result: yes configure:5480: checking for minix/config.h configure:5480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:56:26: fatal error: minix/config.h: No such file or directory #include ^ compilation terminated. configure:5480: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:5480: result: no configure:5480: checking for sys/time.h configure:5480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5480: $? = 0 configure:5480: result: yes configure:5511: checking whether it is safe to define __EXTENSIONS__ configure:5530: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5530: $? = 0 configure:5538: result: yes configure:5541: checking whether _XOPEN_SOURCE should be defined configure:5563: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:5563: $? = 0 configure:5590: result: no configure:6026: checking how to print strings configure:6053: result: printf configure:6074: checking for a sed that does not truncate output configure:6144: result: /usr/bin/sed configure:6162: checking for grep that handles long lines and -e configure:6226: result: /usr/bin/grep configure:6231: checking for egrep configure:6299: result: /usr/bin/grep -E configure:6304: checking for fgrep configure:6372: result: /usr/bin/grep -F configure:6408: checking for ld used by /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 configure:6476: result: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-ld configure:6483: checking if the linker (/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-ld) is GNU ld configure:6499: result: yes configure:6511: checking for BSD- or MS-compatible name lister (nm) configure:6566: result: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-nm configure:6706: checking the name lister (/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-nm) interface configure:6714: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:6717: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-nm "conftest.o" configure:6720: output 00000000 B some_variable configure:6721: result: BSD nm configure:6724: checking whether ln -s works configure:6728: result: yes configure:6736: checking the maximum length of command line arguments configure:6868: result: 1572864 configure:6916: checking how to convert x86_64-pc-linux-gnu file names to arm-buildroot-linux-gnueabi format configure:6957: result: func_convert_file_noop configure:6964: checking how to convert x86_64-pc-linux-gnu file names to toolchain format configure:6985: result: func_convert_file_noop configure:6992: checking for /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-ld option to reload object files configure:7000: result: -r configure:7034: checking for arm-buildroot-linux-gnueabi-objdump configure:7066: result: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-objdump configure:7140: checking how to recognize dependent libraries configure:7341: result: pass_all configure:7386: checking for arm-buildroot-linux-gnueabi-dlltool configure:7418: result: dlltool configure:7493: checking how to associate runtime and link libraries configure:7521: result: printf %s\n configure:7537: checking for arm-buildroot-linux-gnueabi-ar configure:7569: result: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-ar configure:7655: checking for archiver @FILE support configure:7673: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:7673: $? = 0 configure:7677: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-ar cr libconftest.a @conftest.lst >&5 configure:7680: $? = 0 configure:7685: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-ar cr libconftest.a @conftest.lst >&5 /home/thomas/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/../../../../arm-none-linux-gnueabi/bin/ar: conftest.o: No such file or directory configure:7688: $? = 1 configure:7687: result: @ configure:7705: checking for arm-buildroot-linux-gnueabi-strip configure:7737: result: /bin/true configure:7814: checking for arm-buildroot-linux-gnueabi-ranlib configure:7846: result: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-ranlib configure:7993: checking command to parse /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-nm output from /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 object configure:8147: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:8150: $? = 0 configure:8154: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-nm conftest.o | sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' > conftest.nm configure:8220: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c conftstm.o >&5 configure:8223: $? = 0 configure:8261: result: ok configure:8308: checking for sysroot configure:8339: result: no configure:8346: checking for a working dd configure:8390: result: /usr/bin/dd configure:8394: checking how to truncate binary pipes configure:8410: result: /usr/bin/dd bs=4096 count=1 configure:8702: checking for arm-buildroot-linux-gnueabi-mt configure:8737: result: no configure:8747: checking for mt configure:8768: found /usr/bin/mt configure:8779: result: mt configure:8791: WARNING: using cross tools not prefixed with host triplet configure:8802: checking if mt is a manifest tool configure:8809: mt '-?' configure:8817: result: no configure:9543: checking for dlfcn.h configure:9543: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:9543: $? = 0 configure:9543: result: yes configure:9800: checking for objdir configure:9816: result: .libs configure:10076: checking if /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 supports -fno-rtti -fno-exceptions configure:10095: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fno-rtti -fno-exceptions conftest.c >&5 cc1: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C [enabled by default] configure:10099: $? = 0 configure:10112: result: no configure:10476: checking for /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 option to produce PIC configure:10484: result: -fPIC -DPIC configure:10492: checking if /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 PIC flag -fPIC -DPIC works configure:10511: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -DPIC -DPIC conftest.c >&5 configure:10515: $? = 0 configure:10528: result: yes configure:10557: checking if /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 static flag -static works configure:10586: result: yes configure:10601: checking if /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 supports -c -o file.o configure:10623: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o out/conftest2.o conftest.c >&5 configure:10627: $? = 0 configure:10649: result: yes configure:10657: checking if /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 supports -c -o file.o configure:10705: result: yes configure:10738: checking whether the /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 linker (/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-ld) supports shared libraries configure:12008: result: yes configure:12045: checking whether -lc should be explicitly linked in configure:12054: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:12057: $? = 0 configure:12072: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -shared -fPIC -DPIC conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /usr/bin/grep -lc \>/dev/null 2\>\&1 configure:12075: $? = 0 configure:12089: result: no configure:12249: checking dynamic linker characteristics configure:12831: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wl,-rpath -Wl,/foo conftest.c >&5 configure:12831: $? = 0 configure:13082: result: GNU/Linux ld.so configure:13204: checking how to hardcode library paths into programs configure:13229: result: immediate configure:13781: checking whether stripping libraries is possible configure:13803: result: no configure:13821: checking if libtool supports shared libraries configure:13823: result: yes configure:13826: checking whether to build shared libraries configure:13851: result: yes configure:13854: checking whether to build static libraries configure:13858: result: yes configure:10658: checking for arm-buildroot-linux-gnueabi-strip configure:10690: result: /bin/true configure:11092: checking for dirent.h that defines DIR configure:11112: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11112: $? = 0 configure:11121: result: yes configure:11135: checking for library containing opendir configure:11165: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11165: $? = 0 configure:11185: result: none required configure:11256: checking for sys/wait.h that is POSIX.1 compatible configure:11283: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11283: $? = 0 configure:11291: result: yes configure:11299: checking for acl/libacl.h configure:11299: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:78:24: fatal error: acl/libacl.h: No such file or directory #include ^ compilation terminated. configure:11299: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11299: result: no configure:11305: checking for attr/xattr.h configure:11305: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:78:24: fatal error: attr/xattr.h: No such file or directory #include ^ compilation terminated. configure:11305: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11305: result: no configure:11312: checking for copyfile.h configure:11312: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:78:22: fatal error: copyfile.h: No such file or directory #include ^ compilation terminated. configure:11312: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11312: result: no configure:11318: checking for ctype.h configure:11318: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11318: $? = 0 configure:11318: result: yes configure:11325: checking for errno.h configure:11325: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11325: $? = 0 configure:11325: result: yes configure:11331: checking for ext2fs/ext2_fs.h configure:11331: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:80:28: fatal error: ext2fs/ext2_fs.h: No such file or directory #include ^ compilation terminated. configure:11331: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11331: result: no configure:11337: checking for fcntl.h configure:11337: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11337: $? = 0 configure:11337: result: yes configure:11343: checking for fnmatch.h configure:11343: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11343: $? = 0 configure:11343: result: yes configure:11349: checking for grp.h configure:11349: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11349: $? = 0 configure:11349: result: yes configure:11357: checking whether EXT2_IOC_GETFLAGS is usable configure:11375: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:56:28: fatal error: ext2fs/ext2_fs.h: No such file or directory #include ^ compilation terminated. configure:11375: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | /* end confdefs.h. */ | #include | #include | int | main (void) | { | int x = EXT2_IOC_GETFLAGS | ; | return 0; | } configure:11383: result: no configure:11393: checking for inttypes.h configure:11393: result: yes configure:11399: checking for io.h configure:11399: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:84:16: fatal error: io.h: No such file or directory #include ^ compilation terminated. configure:11399: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11399: result: no configure:11405: checking for langinfo.h configure:11405: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11405: $? = 0 configure:11405: result: yes configure:11411: checking for limits.h configure:11411: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11411: $? = 0 configure:11411: result: yes configure:11418: checking for linux/fiemap.h configure:11418: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11418: $? = 0 configure:11418: result: yes configure:11424: checking for linux/fs.h configure:11424: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11424: $? = 0 configure:11424: result: yes configure:11430: checking for linux/magic.h configure:11430: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11430: $? = 0 configure:11430: result: yes configure:11436: checking for linux/types.h configure:11436: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11436: $? = 0 configure:11436: result: yes configure:11444: checking whether FS_IOC_GETFLAGS is usable configure:11462: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11462: $? = 0 configure:11470: result: yes configure:11480: checking for locale.h configure:11480: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11480: $? = 0 configure:11480: result: yes configure:11486: checking for membership.h configure:11486: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:92:24: fatal error: membership.h: No such file or directory #include ^ compilation terminated. configure:11486: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11486: result: no configure:11492: checking for paths.h configure:11492: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11492: $? = 0 configure:11492: result: yes configure:11498: checking for poll.h configure:11498: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11498: $? = 0 configure:11498: result: yes configure:11504: checking for pthread.h configure:11504: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11504: $? = 0 configure:11504: result: yes configure:11510: checking for pwd.h configure:11510: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11510: $? = 0 configure:11510: result: yes configure:11517: checking for readpassphrase.h configure:11517: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:96:28: fatal error: readpassphrase.h: No such file or directory #include ^ compilation terminated. configure:11517: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11517: result: no configure:11523: checking for signal.h configure:11523: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11523: $? = 0 configure:11523: result: yes configure:11529: checking for spawn.h configure:11529: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11529: $? = 0 configure:11529: result: yes configure:11536: checking for stdarg.h configure:11536: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11536: $? = 0 configure:11536: result: yes configure:11542: checking for stdint.h configure:11542: result: yes configure:11548: checking for stdlib.h configure:11548: result: yes configure:11554: checking for string.h configure:11554: result: yes configure:11561: checking for sys/acl.h configure:11561: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:102:21: fatal error: sys/acl.h: No such file or directory #include ^ compilation terminated. configure:11561: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11561: result: no configure:11567: checking for sys/cdefs.h configure:11567: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11567: $? = 0 configure:11567: result: yes configure:11573: checking for sys/ea.h configure:11573: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:103:20: fatal error: sys/ea.h: No such file or directory #include ^ compilation terminated. configure:11573: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11573: result: no configure:11579: checking for sys/extattr.h configure:11579: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:103:25: fatal error: sys/extattr.h: No such file or directory #include ^ compilation terminated. configure:11579: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11579: result: no configure:11586: checking for sys/ioctl.h configure:11586: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11586: $? = 0 configure:11586: result: yes configure:11592: checking for sys/mkdev.h configure:11592: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:104:23: fatal error: sys/mkdev.h: No such file or directory #include ^ compilation terminated. configure:11592: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11592: result: no configure:11598: checking for sys/mount.h configure:11598: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11598: $? = 0 configure:11598: result: yes configure:11604: checking for sys/queue.h configure:11604: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11604: $? = 0 configure:11604: result: yes configure:11611: checking for sys/param.h configure:11611: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11611: $? = 0 configure:11611: result: yes configure:11617: checking for sys/poll.h configure:11617: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11617: $? = 0 configure:11617: result: yes configure:11623: checking for sys/richacl.h configure:11623: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:108:25: fatal error: sys/richacl.h: No such file or directory #include ^ compilation terminated. configure:11623: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11623: result: no configure:11630: checking for sys/select.h configure:11630: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11630: $? = 0 configure:11630: result: yes configure:11636: checking for sys/statfs.h configure:11636: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11636: $? = 0 configure:11636: result: yes configure:11642: checking for sys/statvfs.h configure:11642: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11642: $? = 0 configure:11642: result: yes configure:11648: checking for sys/sysmacros.h configure:11648: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11648: $? = 0 configure:11648: result: yes configure:11655: checking for sys/time.h configure:11655: result: yes configure:11661: checking for sys/utime.h configure:11661: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:113:23: fatal error: sys/utime.h: No such file or directory #include ^ compilation terminated. configure:11661: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11661: result: no configure:11667: checking for sys/utsname.h configure:11667: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11667: $? = 0 configure:11667: result: yes configure:11673: checking for sys/vfs.h configure:11673: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11673: $? = 0 configure:11673: result: yes configure:11679: checking for sys/xattr.h configure:11679: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11679: $? = 0 configure:11679: result: yes configure:11686: checking for time.h configure:11686: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11686: $? = 0 configure:11686: result: yes configure:11692: checking for unistd.h configure:11692: result: yes configure:11698: checking for utime.h configure:11698: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11698: $? = 0 configure:11698: result: yes configure:11704: checking for wchar.h configure:11704: result: yes configure:11710: checking for wctype.h configure:11710: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11710: $? = 0 configure:11710: result: yes configure:11717: checking for windows.h configure:11717: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:121:21: fatal error: windows.h: No such file or directory #include ^ compilation terminated. configure:11717: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11717: result: no configure:11725: checking for wincrypt.h configure:11725: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:98:22: fatal error: wincrypt.h: No such file or directory #include ^ compilation terminated. configure:11725: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | /* end confdefs.h. */ | #ifdef HAVE_WINDOWS_H | # include | #endif | | | #include configure:11725: result: no configure:11735: checking for winioctl.h configure:11735: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:98:22: fatal error: winioctl.h: No such file or directory #include ^ compilation terminated. configure:11735: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | /* end confdefs.h. */ | #ifdef HAVE_WINDOWS_H | # include | #endif | | | #include configure:11735: result: no configure:11757: checking for zlib.h configure:11757: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:11757: $? = 0 configure:11757: result: yes configure:11764: checking for inflate in -lz configure:11787: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lz >&5 configure:11787: $? = 0 configure:11797: result: yes configure:11911: checking for blake2.h configure:11911: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:123:20: fatal error: blake2.h: No such file or directory #include ^ compilation terminated. configure:11911: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:11911: result: no configure:11918: checking for blake2sp_init in -lb2 configure:11941: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lb2 -lz >&5 /home/thomas/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lb2 collect2: error: ld returned 1 exit status configure:11941: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | /* 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. */ | char blake2sp_init (); | int | main (void) | { | return blake2sp_init (); | ; | return 0; | } configure:11951: result: no configure:12021: checking for ld used by GCC configure:12086: result: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-ld configure:12093: checking if the linker (/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-ld) is GNU ld configure:12107: result: yes configure:12115: checking for shared library run path origin configure:12129: result: done configure:12711: checking for iconv configure:12736: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lz >&5 configure:12736: $? = 0 configure:12772: result: yes configure:12775: checking for working iconv configure:12919: result: guessing yes configure:12947: checking for iconv declaration configure:12977: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:12977: $? = 0 configure:12988: result: extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); configure:12998: checking for iconv.h configure:12998: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:12998: $? = 0 configure:12998: result: yes configure:13007: checking for localcharset.h configure:13007: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:126:26: fatal error: localcharset.h: No such file or directory #include ^ compilation terminated. configure:13007: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:13007: result: no configure:13019: checking for locale_charset configure:13019: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lz >&5 /tmp/ccY5xrZd.o: In function `main': conftest.c:(.text.startup+0x4): undefined reference to `locale_charset' collect2: error: ld returned 1 exit status configure:13019: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | /* end confdefs.h. */ | /* Define locale_charset to an innocuous variant, in case declares locale_charset. | For example, HP-UX 11i declares gettimeofday. */ | #define locale_charset innocuous_locale_charset | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char locale_charset (); below. */ | | #include | #undef locale_charset | | /* 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. */ | #ifdef __cplusplus | extern "C" | #endif | char locale_charset (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub_locale_charset || defined __stub___locale_charset | choke me | #endif | | int | main (void) | { | return locale_charset (); | ; | return 0; | } configure:13019: result: no configure:13029: checking for locale_charset in -lcharset configure:13052: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lcharset -lz >&5 /home/thomas/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lcharset collect2: error: ld returned 1 exit status configure:13052: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | /* 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. */ | char locale_charset (); | int | main (void) | { | return locale_charset (); | ; | return 0; | } configure:13062: result: no configure:13085: checking for lz4.h configure:13085: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:13085: $? = 0 configure:13085: result: yes configure:13091: checking for lz4hc.h configure:13091: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:13091: $? = 0 configure:13091: result: yes configure:13098: checking for LZ4_decompress_safe in -llz4 configure:13121: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -llz4 -lz >&5 configure:13121: $? = 0 configure:13131: result: yes configure:13855: checking for expat.h configure:13855: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:13855: $? = 0 configure:13855: result: yes configure:13862: checking for XML_ParserCreate in -lexpat configure:13885: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:13885: $? = 0 configure:13895: result: yes configure:13919: checking for regex.h configure:13919: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:13919: $? = 0 configure:13919: result: yes configure:13927: checking for regcomp configure:13927: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:13927: $? = 0 configure:13927: result: yes configure:14187: checking whether C compiler accepts -Wall configure:14207: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14207: $? = 0 configure:14217: result: yes configure:14235: : CFLAGS="$CFLAGS" configure:14238: $? = 0 configure:14187: checking whether C compiler accepts -Wformat configure:14207: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14207: $? = 0 configure:14217: result: yes configure:14235: : CFLAGS="$CFLAGS" configure:14238: $? = 0 configure:14187: checking whether C compiler accepts -Wformat-security configure:14207: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14207: $? = 0 configure:14217: result: yes configure:14235: : CFLAGS="$CFLAGS" configure:14238: $? = 0 configure:14265: checking whether ld supports --gc-sections configure:14271: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wl,--gc-sections conftest.c -lexpat -llz4 -lz >&5 conftest.c:104:13: warning: 'UnusedFunc' defined but not used [-Wunused-function] static char UnusedFunc() { return 5; } int main() { return 0;} ^ configure:14271: $? = 0 configure:14273: result: yes configure:14282: checking whether C compiler accepts -ffunction-sections configure:14302: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14302: $? = 0 configure:14312: result: yes configure:14330: : CFLAGS="$CFLAGS" configure:14333: $? = 0 configure:14282: checking whether C compiler accepts -fdata-sections configure:14302: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14302: $? = 0 configure:14312: result: yes configure:14330: : CFLAGS="$CFLAGS" configure:14333: $? = 0 configure:14367: checking for an ANSI C-conforming const configure:14434: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14434: $? = 0 configure:14442: result: yes configure:14452: checking for uid_t in sys/types.h configure:14473: result: yes configure:14488: checking for mode_t configure:14488: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14488: $? = 0 configure:14488: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:135:21: error: expected expression before ')' token if (sizeof ((mode_t))) ^ configure:14488: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | if (sizeof ((mode_t))) | return 0; | ; | return 0; | } configure:14488: result: yes configure:14500: checking for off_t configure:14500: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14500: $? = 0 configure:14500: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:135:20: error: expected expression before ')' token if (sizeof ((off_t))) ^ configure:14500: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | if (sizeof ((off_t))) | return 0; | ; | return 0; | } configure:14500: result: yes configure:14510: checking for size_t configure:14510: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14510: $? = 0 configure:14510: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:135:21: error: expected expression before ')' token if (sizeof ((size_t))) ^ configure:14510: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | if (sizeof ((size_t))) | return 0; | ; | return 0; | } configure:14510: result: yes configure:14520: checking for id_t configure:14520: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14520: $? = 0 configure:14520: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:135:19: error: expected expression before ')' token if (sizeof ((id_t))) ^ configure:14520: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | if (sizeof ((id_t))) | return 0; | ; | return 0; | } configure:14520: result: yes configure:14530: checking for uintptr_t configure:14530: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14530: $? = 0 configure:14530: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:135:24: error: expected expression before ')' token if (sizeof ((uintptr_t))) ^ configure:14530: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | if (sizeof ((uintptr_t))) | return 0; | ; | return 0; | } configure:14530: result: yes configure:14542: checking for struct tm.tm_gmtoff configure:14542: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14542: $? = 0 configure:14542: result: yes configure:14553: checking for struct tm.__tm_gmtoff configure:14553: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:113:12: error: 'struct tm' has no member named '__tm_gmtoff' if (ac_aggr.__tm_gmtoff) ^ conftest.c:112:18: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct tm ac_aggr; ^ configure:14553: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | | #include | | | int | main (void) | { | static struct tm ac_aggr; | if (ac_aggr.__tm_gmtoff) | return 0; | ; | return 0; | } configure:14553: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:113:19: error: 'struct tm' has no member named '__tm_gmtoff' if (sizeof ac_aggr.__tm_gmtoff) ^ conftest.c:112:18: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct tm ac_aggr; ^ configure:14553: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | | #include | | | int | main (void) | { | static struct tm ac_aggr; | if (sizeof ac_aggr.__tm_gmtoff) | return 0; | ; | return 0; | } configure:14553: result: no configure:14567: checking for struct statfs.f_namemax configure:14567: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:113:22: error: storage size of 'ac_aggr' isn't known static struct statfs ac_aggr; ^ conftest.c:113:22: warning: unused variable 'ac_aggr' [-Wunused-variable] configure:14567: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | | #include | #include | | | int | main (void) | { | static struct statfs ac_aggr; | if (ac_aggr.f_namemax) | return 0; | ; | return 0; | } configure:14567: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:113:22: error: storage size of 'ac_aggr' isn't known static struct statfs ac_aggr; ^ conftest.c:113:22: warning: unused variable 'ac_aggr' [-Wunused-variable] configure:14567: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | | #include | #include | | | int | main (void) | { | static struct statfs ac_aggr; | if (sizeof ac_aggr.f_namemax) | return 0; | ; | return 0; | } configure:14567: result: no configure:14582: checking for struct statfs.f_iosize configure:14582: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:113:22: error: storage size of 'ac_aggr' isn't known static struct statfs ac_aggr; ^ conftest.c:113:22: warning: unused variable 'ac_aggr' [-Wunused-variable] configure:14582: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | | #include | #include | | | int | main (void) | { | static struct statfs ac_aggr; | if (ac_aggr.f_iosize) | return 0; | ; | return 0; | } configure:14582: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:113:22: error: storage size of 'ac_aggr' isn't known static struct statfs ac_aggr; ^ conftest.c:113:22: warning: unused variable 'ac_aggr' [-Wunused-variable] configure:14582: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | | #include | #include | | | int | main (void) | { | static struct statfs ac_aggr; | if (sizeof ac_aggr.f_iosize) | return 0; | ; | return 0; | } configure:14582: result: no configure:14597: checking for struct statvfs.f_iosize configure:14597: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:113:12: error: 'struct statvfs' has no member named 'f_iosize' if (ac_aggr.f_iosize) ^ conftest.c:112:23: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct statvfs ac_aggr; ^ configure:14597: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | | #include | | | int | main (void) | { | static struct statvfs ac_aggr; | if (ac_aggr.f_iosize) | return 0; | ; | return 0; | } configure:14597: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:113:19: error: 'struct statvfs' has no member named 'f_iosize' if (sizeof ac_aggr.f_iosize) ^ conftest.c:112:23: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct statvfs ac_aggr; ^ configure:14597: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | | #include | | | int | main (void) | { | static struct statvfs ac_aggr; | if (sizeof ac_aggr.f_iosize) | return 0; | ; | return 0; | } configure:14597: result: no configure:14611: checking for struct stat.st_birthtime configure:14611: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:137:12: error: 'struct stat' has no member named 'st_birthtime' if (ac_aggr.st_birthtime) ^ conftest.c:136:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14611: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (ac_aggr.st_birthtime) | return 0; | ; | return 0; | } configure:14611: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:137:19: error: 'struct stat' has no member named 'st_birthtime' if (sizeof ac_aggr.st_birthtime) ^ conftest.c:136:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14611: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (sizeof ac_aggr.st_birthtime) | return 0; | ; | return 0; | } configure:14611: result: no configure:14622: checking for struct stat.st_birthtimespec.tv_nsec configure:14622: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:137:12: error: 'struct stat' has no member named 'st_birthtimespec' if (ac_aggr.st_birthtimespec.tv_nsec) ^ conftest.c:136:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14622: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (ac_aggr.st_birthtimespec.tv_nsec) | return 0; | ; | return 0; | } configure:14622: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:137:19: error: 'struct stat' has no member named 'st_birthtimespec' if (sizeof ac_aggr.st_birthtimespec.tv_nsec) ^ conftest.c:136:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14622: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (sizeof ac_aggr.st_birthtimespec.tv_nsec) | return 0; | ; | return 0; | } configure:14622: result: no configure:14631: checking for struct stat.st_mtimespec.tv_nsec configure:14631: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:137:12: error: 'struct stat' has no member named 'st_mtimespec' if (ac_aggr.st_mtimespec.tv_nsec) ^ conftest.c:136:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14631: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (ac_aggr.st_mtimespec.tv_nsec) | return 0; | ; | return 0; | } configure:14631: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:137:19: error: 'struct stat' has no member named 'st_mtimespec' if (sizeof ac_aggr.st_mtimespec.tv_nsec) ^ conftest.c:136:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14631: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (sizeof ac_aggr.st_mtimespec.tv_nsec) | return 0; | ; | return 0; | } configure:14631: result: no configure:14640: checking for struct stat.st_mtim.tv_nsec configure:14640: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14640: $? = 0 configure:14640: result: yes configure:14649: checking for struct stat.st_mtime_n configure:14649: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:138:12: error: 'struct stat' has no member named 'st_mtime_n' if (ac_aggr.st_mtime_n) ^ conftest.c:137:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14649: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (ac_aggr.st_mtime_n) | return 0; | ; | return 0; | } configure:14649: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:138:19: error: 'struct stat' has no member named 'st_mtime_n' if (sizeof ac_aggr.st_mtime_n) ^ conftest.c:137:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14649: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (sizeof ac_aggr.st_mtime_n) | return 0; | ; | return 0; | } configure:14649: result: no configure:14658: checking for struct stat.st_umtime configure:14658: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:138:12: error: 'struct stat' has no member named 'st_umtime' if (ac_aggr.st_umtime) ^ conftest.c:137:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14658: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (ac_aggr.st_umtime) | return 0; | ; | return 0; | } configure:14658: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:138:19: error: 'struct stat' has no member named 'st_umtime' if (sizeof ac_aggr.st_umtime) ^ conftest.c:137:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14658: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (sizeof ac_aggr.st_umtime) | return 0; | ; | return 0; | } configure:14658: result: no configure:14667: checking for struct stat.st_mtime_usec configure:14667: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:138:12: error: 'struct stat' has no member named 'st_mtime_usec' if (ac_aggr.st_mtime_usec) ^ conftest.c:137:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14667: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (ac_aggr.st_mtime_usec) | return 0; | ; | return 0; | } configure:14667: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:138:19: error: 'struct stat' has no member named 'st_mtime_usec' if (sizeof ac_aggr.st_mtime_usec) ^ conftest.c:137:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14667: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (sizeof ac_aggr.st_mtime_usec) | return 0; | ; | return 0; | } configure:14667: result: no configure:14677: checking for struct stat.st_blksize configure:14677: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14677: $? = 0 configure:14677: result: yes configure:14687: checking for struct stat.st_flags configure:14687: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:139:12: error: 'struct stat' has no member named 'st_flags' if (ac_aggr.st_flags) ^ conftest.c:138:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14687: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (ac_aggr.st_flags) | return 0; | ; | return 0; | } configure:14687: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:139:19: error: 'struct stat' has no member named 'st_flags' if (sizeof ac_aggr.st_flags) ^ conftest.c:138:20: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct stat ac_aggr; ^ configure:14687: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static struct stat ac_aggr; | if (sizeof ac_aggr.st_flags) | return 0; | ; | return 0; | } configure:14687: result: no configure:14700: checking for uintmax_t configure:14700: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14700: $? = 0 configure:14700: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:138:24: error: expected expression before ')' token if (sizeof ((uintmax_t))) ^ configure:14700: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | if (sizeof ((uintmax_t))) | return 0; | ; | return 0; | } configure:14700: result: yes configure:14708: checking for unsigned long long configure:14708: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14708: $? = 0 configure:14708: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:139:33: error: expected expression before ')' token if (sizeof ((unsigned long long))) ^ configure:14708: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | if (sizeof ((unsigned long long))) | return 0; | ; | return 0; | } configure:14708: result: yes configure:14721: checking for unsigned long long int configure:14763: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:14763: $? = 0 configure:14773: result: yes configure:14783: checking for long long int configure:14838: result: yes configure:14848: checking for intmax_t configure:14848: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14848: $? = 0 configure:14848: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:142:23: error: expected expression before ')' token if (sizeof ((intmax_t))) ^ configure:14848: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | if (sizeof ((intmax_t))) | return 0; | ; | return 0; | } configure:14848: result: yes configure:14866: checking for uintmax_t configure:14866: result: yes configure:14882: checking for int64_t configure:14882: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14882: $? = 0 configure:14882: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:146:53: warning: integer overflow in expression [-Woverflow] < (int64_t) (((((int64_t) 1 << N) << N) - 1) * 2 + 2))]; ^ conftest.c:145:12: error: storage size of 'test_array' isn't constant static int test_array [1 - 2 * !((int64_t) (((((int64_t) 1 << N) << N) - 1) * 2 + 1) ^ conftest.c:145:12: warning: unused variable 'test_array' [-Wunused-variable] configure:14882: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | enum { N = 64 / 2 - 1 }; | int | main (void) | { | static int test_array [1 - 2 * !((int64_t) (((((int64_t) 1 << N) << N) - 1) * 2 + 1) | < (int64_t) (((((int64_t) 1 << N) << N) - 1) * 2 + 2))]; | test_array [0] = 0; | return test_array [0]; | | ; | return 0; | } configure:14882: result: yes configure:14891: checking for uint64_t configure:14891: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14891: $? = 0 configure:14891: result: yes configure:14903: checking for int32_t configure:14903: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14903: $? = 0 configure:14903: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:146:53: warning: integer overflow in expression [-Woverflow] < (int32_t) (((((int32_t) 1 << N) << N) - 1) * 2 + 2))]; ^ conftest.c:145:12: error: storage size of 'test_array' isn't constant static int test_array [1 - 2 * !((int32_t) (((((int32_t) 1 << N) << N) - 1) * 2 + 1) ^ conftest.c:145:12: warning: unused variable 'test_array' [-Wunused-variable] configure:14903: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | enum { N = 32 / 2 - 1 }; | int | main (void) | { | static int test_array [1 - 2 * !((int32_t) (((((int32_t) 1 << N) << N) - 1) * 2 + 1) | < (int32_t) (((((int32_t) 1 << N) << N) - 1) * 2 + 2))]; | test_array [0] = 0; | return test_array [0]; | | ; | return 0; | } configure:14903: result: yes configure:14912: checking for uint32_t configure:14912: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14912: $? = 0 configure:14912: result: yes configure:14924: checking for int16_t configure:14924: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14924: $? = 0 configure:14924: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:145:12: error: size of array 'test_array' is negative static int test_array [1 - 2 * !((int16_t) (((((int16_t) 1 << N) << N) - 1) * 2 + 1) ^ configure:14924: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | enum { N = 16 / 2 - 1 }; | int | main (void) | { | static int test_array [1 - 2 * !((int16_t) (((((int16_t) 1 << N) << N) - 1) * 2 + 1) | < (int16_t) (((((int16_t) 1 << N) << N) - 1) * 2 + 2))]; | test_array [0] = 0; | return test_array [0]; | | ; | return 0; | } configure:14924: result: yes configure:14933: checking for uint16_t configure:14933: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14933: $? = 0 configure:14933: result: yes configure:14943: checking for uint8_t configure:14943: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:14943: $? = 0 configure:14943: result: yes configure:14956: checking for /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 options needed to detect all undeclared functions configure:14978: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:117:8: error: 'strchr' undeclared (first use in this function) (void) strchr; ^ conftest.c:117:8: note: each undeclared identifier is reported only once for each function it appears in configure:14978: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | /* end confdefs.h. */ | | int | main (void) | { | (void) strchr; | ; | return 0; | } configure:15005: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15005: $? = 0 configure:15022: result: none needed configure:15036: checking whether SIZE_MAX is declared configure:15036: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15036: $? = 0 configure:15036: result: yes configure:15044: checking whether INT32_MAX is declared configure:15044: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15044: $? = 0 configure:15044: result: yes configure:15052: checking whether INT32_MIN is declared configure:15052: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15052: $? = 0 configure:15052: result: yes configure:15061: checking whether INT64_MAX is declared configure:15061: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15061: $? = 0 configure:15061: result: yes configure:15069: checking whether INT64_MIN is declared configure:15069: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15069: $? = 0 configure:15069: result: yes configure:15077: checking whether UINT64_MAX is declared configure:15077: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15077: $? = 0 configure:15077: result: yes configure:15085: checking whether UINT32_MAX is declared configure:15085: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15085: $? = 0 configure:15085: result: yes configure:15094: checking whether INTMAX_MAX is declared configure:15094: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15094: $? = 0 configure:15094: result: yes configure:15102: checking whether INTMAX_MIN is declared configure:15102: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15102: $? = 0 configure:15102: result: yes configure:15110: checking whether UINTMAX_MAX is declared configure:15110: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15110: $? = 0 configure:15110: result: yes configure:15120: checking whether SSIZE_MAX is declared configure:15120: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15120: $? = 0 configure:15120: result: yes configure:15129: checking whether EFTYPE is declared configure:15129: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:133:10: error: 'EFTYPE' undeclared (first use in this function) (void) EFTYPE; ^ conftest.c:133:10: note: each undeclared identifier is reported only once for each function it appears in configure:15129: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | /* end confdefs.h. */ | #include | | int | main (void) | { | #ifndef EFTYPE | #ifdef __cplusplus | (void) EFTYPE; | #else | (void) EFTYPE; | #endif | #endif | | ; | return 0; | } configure:15129: result: no configure:15137: checking whether EILSEQ is declared configure:15137: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15137: $? = 0 configure:15137: result: yes configure:15145: checking for wchar_t configure:15145: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15145: $? = 0 configure:15145: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:156:22: error: expected expression before ')' token if (sizeof ((wchar_t))) ^ configure:15145: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | if (sizeof ((wchar_t))) | return 0; | ; | return 0; | } configure:15145: result: yes configure:15154: checking size of wchar_t configure:15160: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15160: $? = 0 configure:15160: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:157:12: error: size of array 'test_array' is negative static int test_array [1 - 2 * !(((long int) (sizeof (wchar_t))) <= 0)]; ^ configure:15160: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static int test_array [1 - 2 * !(((long int) (sizeof (wchar_t))) <= 0)]; | test_array [0] = 0; | return test_array [0]; | | ; | return 0; | } configure:15160: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:157:12: error: size of array 'test_array' is negative static int test_array [1 - 2 * !(((long int) (sizeof (wchar_t))) <= 1)]; ^ configure:15160: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static int test_array [1 - 2 * !(((long int) (sizeof (wchar_t))) <= 1)]; | test_array [0] = 0; | return test_array [0]; | | ; | return 0; | } configure:15160: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:157:12: error: size of array 'test_array' is negative static int test_array [1 - 2 * !(((long int) (sizeof (wchar_t))) <= 3)]; ^ configure:15160: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | int | main (void) | { | static int test_array [1 - 2 * !(((long int) (sizeof (wchar_t))) <= 3)]; | test_array [0] = 0; | return test_array [0]; | | ; | return 0; | } configure:15160: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15160: $? = 0 configure:15160: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15160: $? = 0 configure:15160: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15160: $? = 0 configure:15175: result: 4 configure:15186: checking size of int configure:15207: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15207: $? = 0 configure:15220: result: 4 configure:15226: checking size of long configure:15247: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15247: $? = 0 configure:15260: result: 4 configure:15272: checking whether /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 needs -traditional configure:15309: result: no configure:15317: checking for sys/mkdev.h configure:15317: result: no configure:15326: checking for sys/sysmacros.h configure:15326: result: yes configure:15336: checking for _LARGEFILE_SOURCE value needed for large files configure:15356: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15356: $? = 0 configure:15386: result: no configure:15405: checking for working memcmp configure:15461: result: yes configure:15470: checking whether lstat correctly handles trailing slash configure:15521: result: yes configure:15538: checking whether lstat accepts an empty string configure:15571: result: yes configure:15585: checking whether stat accepts an empty string configure:15618: result: yes configure:15632: checking whether strerror_r is declared configure:15632: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15632: $? = 0 configure:15632: result: yes configure:15651: checking whether strerror_r returns char * configure:15676: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:15676: $? = 0 configure:15685: result: yes configure:15696: checking for strftime configure:15696: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c:153:6: warning: conflicting types for built-in function 'strftime' [enabled by default] char strftime (); ^ configure:15696: $? = 0 configure:15696: result: yes configure:15752: checking for vprintf configure:15752: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c:154:6: warning: conflicting types for built-in function 'vprintf' [enabled by default] char vprintf (); ^ configure:15752: $? = 0 configure:15752: result: yes configure:15777: checking for CreateHardLinkA configure:15813: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c:148:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'CreateHardLinkA' char __stdcall CreateHardLinkA ( const char *, const char *, void * ); ^ conftest.c: In function 'main': conftest.c:160:5: error: 'CreateHardLinkA' undeclared (first use in this function) f = CreateHardLinkA; ^ conftest.c:160:5: note: each undeclared identifier is reported only once for each function it appears in configure:15813: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | /* end confdefs.h. */ | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char __stdcall CreateHardLinkA ( const char *, const char *, void * ) below. */ | #include | /* Override any gcc2 internal prototype to avoid an error. */ | #ifdef __cplusplus | extern "C" | #endif | /* We use char because int might match the return type of a gcc2 | builtin and then its argument prototype would still apply. */ | char __stdcall CreateHardLinkA ( const char *, const char *, void * ); | char (*f) ( const char *, const char *, void * ); | | int | main (void) | { | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined (__stub_CreateHardLinkA) || defined (__stub___CreateHardLinkA) | choke me | #else | f = CreateHardLinkA; | #endif | | ; | return 0; | } configure:15822: result: no configure:15828: checking for arc4random_buf configure:15828: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 /tmp/ccufNyIn.o: In function `main': conftest.c:(.text.startup.main+0x4): undefined reference to `arc4random_buf' collect2: error: ld returned 1 exit status configure:15828: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | /* end confdefs.h. */ | /* Define arc4random_buf to an innocuous variant, in case declares arc4random_buf. | For example, HP-UX 11i declares gettimeofday. */ | #define arc4random_buf innocuous_arc4random_buf | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char arc4random_buf (); below. */ | | #include | #undef arc4random_buf | | /* 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. */ | #ifdef __cplusplus | extern "C" | #endif | char arc4random_buf (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub_arc4random_buf || defined __stub___arc4random_buf | choke me | #endif | | int | main (void) | { | return arc4random_buf (); | ; | return 0; | } configure:15828: result: no configure:15834: checking for chflags configure:15834: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c:160:1: error: unknown type name 'choke' choke me ^ conftest.c:163:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int' int ^ configure:15834: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | /* end confdefs.h. */ | /* Define chflags to an innocuous variant, in case declares chflags. | For example, HP-UX 11i declares gettimeofday. */ | #define chflags innocuous_chflags | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char chflags (); below. */ | | #include | #undef chflags | | /* 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. */ | #ifdef __cplusplus | extern "C" | #endif | char chflags (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub_chflags || defined __stub___chflags | choke me | #endif | | int | main (void) | { | return chflags (); | ; | return 0; | } configure:15834: result: no configure:15840: checking for chown configure:15840: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15840: $? = 0 configure:15840: result: yes configure:15846: checking for chroot configure:15846: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15846: $? = 0 configure:15846: result: yes configure:15852: checking for ctime_r configure:15852: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15852: $? = 0 configure:15852: result: yes configure:15859: checking for fchdir configure:15859: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15859: $? = 0 configure:15859: result: yes configure:15865: checking for fchflags configure:15865: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c:164:1: error: unknown type name 'choke' choke me ^ conftest.c:167:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int' int ^ configure:15865: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | /* end confdefs.h. */ | /* Define fchflags to an innocuous variant, in case declares fchflags. | For example, HP-UX 11i declares gettimeofday. */ | #define fchflags innocuous_fchflags | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char fchflags (); below. */ | | #include | #undef fchflags | | /* 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. */ | #ifdef __cplusplus | extern "C" | #endif | char fchflags (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub_fchflags || defined __stub___fchflags | choke me | #endif | | int | main (void) | { | return fchflags (); | ; | return 0; | } configure:15865: result: no configure:15871: checking for fchmod configure:15871: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15871: $? = 0 configure:15871: result: yes configure:15877: checking for fchown configure:15877: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15877: $? = 0 configure:15877: result: yes configure:15883: checking for fcntl configure:15883: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15883: $? = 0 configure:15883: result: yes configure:15889: checking for fdopendir configure:15889: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15889: $? = 0 configure:15889: result: yes configure:15895: checking for fnmatch configure:15895: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15895: $? = 0 configure:15895: result: yes configure:15901: checking for fork configure:15901: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c:164:6: warning: conflicting types for built-in function 'fork' [enabled by default] char fork (); ^ configure:15901: $? = 0 configure:15901: result: yes configure:15908: checking for fstat configure:15908: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15908: $? = 0 configure:15908: result: yes configure:15914: checking for fstatat configure:15914: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15914: $? = 0 configure:15914: result: yes configure:15920: checking for fstatfs configure:15920: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15920: $? = 0 configure:15920: result: yes configure:15926: checking for fstatvfs configure:15926: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15926: $? = 0 configure:15926: result: yes configure:15932: checking for ftruncate configure:15932: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15932: $? = 0 configure:15932: result: yes configure:15939: checking for futimens configure:15939: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15939: $? = 0 configure:15939: result: yes configure:15945: checking for futimes configure:15945: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15945: $? = 0 configure:15945: result: yes configure:15951: checking for futimesat configure:15951: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15951: $? = 0 configure:15951: result: yes configure:15958: checking for geteuid configure:15958: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15958: $? = 0 configure:15958: result: yes configure:15964: checking for getline configure:15964: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15964: $? = 0 configure:15964: result: yes configure:15970: checking for getpid configure:15970: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15970: $? = 0 configure:15970: result: yes configure:15976: checking for getgrgid_r configure:15976: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15976: $? = 0 configure:15976: result: yes configure:15982: checking for getgrnam_r configure:15982: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15982: $? = 0 configure:15982: result: yes configure:15989: checking for getpwnam_r configure:15989: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15989: $? = 0 configure:15989: result: yes configure:15995: checking for getpwuid_r configure:15995: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:15995: $? = 0 configure:15995: result: yes configure:16001: checking for getvfsbyname configure:16001: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 /tmp/ccugVO9G.o: In function `main': conftest.c:(.text.startup.main+0x4): undefined reference to `getvfsbyname' collect2: error: ld returned 1 exit status configure:16001: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | /* end confdefs.h. */ | /* Define getvfsbyname to an innocuous variant, in case declares getvfsbyname. | For example, HP-UX 11i declares gettimeofday. */ | #define getvfsbyname innocuous_getvfsbyname | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char getvfsbyname (); below. */ | | #include | #undef getvfsbyname | | /* 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. */ | #ifdef __cplusplus | extern "C" | #endif | char getvfsbyname (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub_getvfsbyname || defined __stub___getvfsbyname | choke me | #endif | | int | main (void) | { | return getvfsbyname (); | ; | return 0; | } configure:16001: result: no configure:16007: checking for gmtime_r configure:16007: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16007: $? = 0 configure:16007: result: yes configure:16014: checking for lchflags configure:16014: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 /tmp/cciYhVtN.o: In function `main': conftest.c:(.text.startup.main+0x4): undefined reference to `lchflags' collect2: error: ld returned 1 exit status configure:16014: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | /* end confdefs.h. */ | /* Define lchflags to an innocuous variant, in case declares lchflags. | For example, HP-UX 11i declares gettimeofday. */ | #define lchflags innocuous_lchflags | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char lchflags (); below. */ | | #include | #undef lchflags | | /* 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. */ | #ifdef __cplusplus | extern "C" | #endif | char lchflags (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub_lchflags || defined __stub___lchflags | choke me | #endif | | int | main (void) | { | return lchflags (); | ; | return 0; | } configure:16014: result: no configure:16020: checking for lchmod configure:16020: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c:186:1: error: unknown type name 'choke' choke me ^ conftest.c:189:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int' int ^ configure:16020: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | /* end confdefs.h. */ | /* Define lchmod to an innocuous variant, in case declares lchmod. | For example, HP-UX 11i declares gettimeofday. */ | #define lchmod innocuous_lchmod | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char lchmod (); below. */ | | #include | #undef lchmod | | /* 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. */ | #ifdef __cplusplus | extern "C" | #endif | char lchmod (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub_lchmod || defined __stub___lchmod | choke me | #endif | | int | main (void) | { | return lchmod (); | ; | return 0; | } configure:16020: result: no configure:16026: checking for lchown configure:16026: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16026: $? = 0 configure:16026: result: yes configure:16032: checking for link configure:16032: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16032: $? = 0 configure:16032: result: yes configure:16038: checking for linkat configure:16038: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16038: $? = 0 configure:16038: result: yes configure:16044: checking for localtime_r configure:16044: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16044: $? = 0 configure:16044: result: yes configure:16050: checking for lstat configure:16050: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16050: $? = 0 configure:16050: result: yes configure:16056: checking for lutimes configure:16056: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16056: $? = 0 configure:16056: result: yes configure:16063: checking for mbrtowc configure:16063: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16063: $? = 0 configure:16063: result: yes configure:16069: checking for memmove configure:16069: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c:188:6: warning: conflicting types for built-in function 'memmove' [enabled by default] char memmove (); ^ configure:16069: $? = 0 configure:16069: result: yes configure:16075: checking for memset configure:16075: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c:189:6: warning: conflicting types for built-in function 'memset' [enabled by default] char memset (); ^ configure:16075: $? = 0 configure:16075: result: yes configure:16082: checking for mkdir configure:16082: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16082: $? = 0 configure:16082: result: yes configure:16088: checking for mkfifo configure:16088: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16088: $? = 0 configure:16088: result: yes configure:16094: checking for mknod configure:16094: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16094: $? = 0 configure:16094: result: yes configure:16100: checking for mkstemp configure:16100: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16100: $? = 0 configure:16100: result: yes configure:16107: checking for nl_langinfo configure:16107: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16107: $? = 0 configure:16107: result: yes configure:16113: checking for openat configure:16113: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16113: $? = 0 configure:16113: result: yes configure:16119: checking for pipe configure:16119: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16119: $? = 0 configure:16119: result: yes configure:16125: checking for poll configure:16125: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16125: $? = 0 configure:16125: result: yes configure:16131: checking for posix_spawnp configure:16131: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16131: $? = 0 configure:16131: result: yes configure:16137: checking for readlink configure:16137: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16137: $? = 0 configure:16137: result: yes configure:16143: checking for readlinkat configure:16143: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16143: $? = 0 configure:16143: result: yes configure:16150: checking for readpassphrase configure:16150: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 /tmp/ccoCuGy8.o: In function `main': conftest.c:(.text.startup.main+0x4): undefined reference to `readpassphrase' collect2: error: ld returned 1 exit status configure:16150: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | /* end confdefs.h. */ | /* Define readpassphrase to an innocuous variant, in case declares readpassphrase. | For example, HP-UX 11i declares gettimeofday. */ | #define readpassphrase innocuous_readpassphrase | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char readpassphrase (); below. */ | | #include | #undef readpassphrase | | /* 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. */ | #ifdef __cplusplus | extern "C" | #endif | char readpassphrase (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub_readpassphrase || defined __stub___readpassphrase | choke me | #endif | | int | main (void) | { | return readpassphrase (); | ; | return 0; | } configure:16150: result: no configure:16157: checking for select configure:16157: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16157: $? = 0 configure:16157: result: yes configure:16163: checking for setenv configure:16163: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16163: $? = 0 configure:16163: result: yes configure:16169: checking for setlocale configure:16169: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16169: $? = 0 configure:16169: result: yes configure:16175: checking for sigaction configure:16175: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16175: $? = 0 configure:16175: result: yes configure:16181: checking for statfs configure:16181: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16181: $? = 0 configure:16181: result: yes configure:16187: checking for statvfs configure:16187: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16187: $? = 0 configure:16187: result: yes configure:16194: checking for strchr configure:16194: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c:207:6: warning: conflicting types for built-in function 'strchr' [enabled by default] char strchr (); ^ configure:16194: $? = 0 configure:16194: result: yes configure:16200: checking for strdup configure:16200: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c:208:6: warning: conflicting types for built-in function 'strdup' [enabled by default] char strdup (); ^ configure:16200: $? = 0 configure:16200: result: yes configure:16206: checking for strerror configure:16206: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16206: $? = 0 configure:16206: result: yes configure:16212: checking for strncpy_s configure:16212: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 /tmp/cc4NgE5o.o: In function `main': conftest.c:(.text.startup.main+0x4): undefined reference to `strncpy_s' collect2: error: ld returned 1 exit status configure:16212: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | /* end confdefs.h. */ | /* Define strncpy_s to an innocuous variant, in case declares strncpy_s. | For example, HP-UX 11i declares gettimeofday. */ | #define strncpy_s innocuous_strncpy_s | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char strncpy_s (); below. */ | | #include | #undef strncpy_s | | /* 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. */ | #ifdef __cplusplus | extern "C" | #endif | char strncpy_s (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub_strncpy_s || defined __stub___strncpy_s | choke me | #endif | | int | main (void) | { | return strncpy_s (); | ; | return 0; | } configure:16212: result: no configure:16218: checking for strnlen configure:16218: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16218: $? = 0 configure:16218: result: yes configure:16224: checking for strrchr configure:16224: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c:211:6: warning: conflicting types for built-in function 'strrchr' [enabled by default] char strrchr (); ^ configure:16224: $? = 0 configure:16224: result: yes configure:16230: checking for symlink configure:16230: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16230: $? = 0 configure:16230: result: yes configure:16237: checking for timegm configure:16237: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16237: $? = 0 configure:16237: result: yes configure:16243: checking for tzset configure:16243: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16243: $? = 0 configure:16243: result: yes configure:16249: checking for unlinkat configure:16249: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16249: $? = 0 configure:16249: result: yes configure:16255: checking for unsetenv configure:16255: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16255: $? = 0 configure:16255: result: yes configure:16261: checking for utime configure:16261: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16261: $? = 0 configure:16261: result: yes configure:16267: checking for utimensat configure:16267: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16267: $? = 0 configure:16267: result: yes configure:16273: checking for utimes configure:16273: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16273: $? = 0 configure:16273: result: yes configure:16279: checking for vfork configure:16279: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16279: $? = 0 configure:16279: result: yes configure:16286: checking for wcrtomb configure:16286: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16286: $? = 0 configure:16286: result: yes configure:16292: checking for wcscmp configure:16292: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16292: $? = 0 configure:16292: result: yes configure:16298: checking for wcscpy configure:16298: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16298: $? = 0 configure:16298: result: yes configure:16304: checking for wcslen configure:16304: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16304: $? = 0 configure:16304: result: yes configure:16310: checking for wctomb configure:16310: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16310: $? = 0 configure:16310: result: yes configure:16316: checking for wmemcmp configure:16316: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16316: $? = 0 configure:16316: result: yes configure:16322: checking for wmemcpy configure:16322: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16322: $? = 0 configure:16322: result: yes configure:16328: checking for wmemmove configure:16328: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16328: $? = 0 configure:16328: result: yes configure:16335: checking for _fseeki64 configure:16335: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 /tmp/cc8am7XD.o: In function `main': conftest.c:(.text.startup.main+0x4): undefined reference to `_fseeki64' collect2: error: ld returned 1 exit status configure:16335: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | /* end confdefs.h. */ | /* Define _fseeki64 to an innocuous variant, in case declares _fseeki64. | For example, HP-UX 11i declares gettimeofday. */ | #define _fseeki64 innocuous__fseeki64 | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char _fseeki64 (); below. */ | | #include | #undef _fseeki64 | | /* 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. */ | #ifdef __cplusplus | extern "C" | #endif | char _fseeki64 (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub__fseeki64 || defined __stub____fseeki64 | choke me | #endif | | int | main (void) | { | return _fseeki64 (); | ; | return 0; | } configure:16335: result: no configure:16341: checking for _get_timezone configure:16341: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 /tmp/ccUvf3qI.o: In function `main': conftest.c:(.text.startup.main+0x4): undefined reference to `_get_timezone' collect2: error: ld returned 1 exit status configure:16341: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | /* end confdefs.h. */ | /* Define _get_timezone to an innocuous variant, in case declares _get_timezone. | For example, HP-UX 11i declares gettimeofday. */ | #define _get_timezone innocuous__get_timezone | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char _get_timezone (); below. */ | | #include | #undef _get_timezone | | /* 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. */ | #ifdef __cplusplus | extern "C" | #endif | char _get_timezone (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub__get_timezone || defined __stub____get_timezone | choke me | #endif | | int | main (void) | { | return _get_timezone (); | ; | return 0; | } configure:16341: result: no configure:16348: checking whether cmtime_s is declared configure:16348: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:222:10: error: 'cmtime_s' undeclared (first use in this function) (void) cmtime_s; ^ conftest.c:222:10: note: each undeclared identifier is reported only once for each function it appears in configure:16348: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | /* end confdefs.h. */ | #include | | int | main (void) | { | #ifndef cmtime_s | #ifdef __cplusplus | (void) cmtime_s; | #else | (void) cmtime_s; | #endif | #endif | | ; | return 0; | } configure:16348: result: no configure:16356: checking whether gmtime_s is declared configure:16356: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:222:10: error: 'gmtime_s' undeclared (first use in this function) (void) gmtime_s; ^ conftest.c:222:10: note: each undeclared identifier is reported only once for each function it appears in configure:16356: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | /* end confdefs.h. */ | #include | | int | main (void) | { | #ifndef gmtime_s | #ifdef __cplusplus | (void) gmtime_s; | #else | (void) gmtime_s; | #endif | #endif | | ; | return 0; | } configure:16356: result: no configure:16364: checking for localtime_s configure:16364: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:218:13: error: 'localtime_s' undeclared (first use in this function) if (sizeof (localtime_s)) ^ conftest.c:218:13: note: each undeclared identifier is reported only once for each function it appears in configure:16364: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | /* end confdefs.h. */ | #include | | int | main (void) | { | if (sizeof (localtime_s)) | return 0; | ; | return 0; | } configure:16364: result: no configure:16373: checking whether _mkgmtime is declared configure:16373: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:222:10: error: '_mkgmtime' undeclared (first use in this function) (void) _mkgmtime; ^ conftest.c:222:10: note: each undeclared identifier is reported only once for each function it appears in configure:16373: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | /* end confdefs.h. */ | #include | | int | main (void) | { | #ifndef _mkgmtime | #ifdef __cplusplus | (void) _mkgmtime; | #else | (void) _mkgmtime; | #endif | #endif | | ; | return 0; | } configure:16373: result: no configure:16383: checking for cygwin_conv_path configure:16383: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 /tmp/cc6au3HX.o: In function `main': conftest.c:(.text.startup.main+0x4): undefined reference to `cygwin_conv_path' collect2: error: ld returned 1 exit status configure:16383: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | /* end confdefs.h. */ | /* Define cygwin_conv_path to an innocuous variant, in case declares cygwin_conv_path. | For example, HP-UX 11i declares gettimeofday. */ | #define cygwin_conv_path innocuous_cygwin_conv_path | | /* System header to define __stub macros and hopefully few prototypes, | which can conflict with char cygwin_conv_path (); below. */ | | #include | #undef cygwin_conv_path | | /* 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. */ | #ifdef __cplusplus | extern "C" | #endif | char cygwin_conv_path (); | /* The GNU C library defines this for functions which it implements | to always fail with ENOSYS. Some functions are actually named | something starting with __ and the normal name is an alias. */ | #if defined __stub_cygwin_conv_path || defined __stub___cygwin_conv_path | choke me | #endif | | int | main (void) | { | return cygwin_conv_path (); | ; | return 0; | } configure:16383: result: no configure:16392: checking for struct vfsconf configure:16392: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:222:13: error: invalid application of 'sizeof' to incomplete type 'struct vfsconf' if (sizeof (struct vfsconf)) ^ configure:16392: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | /* end confdefs.h. */ | #if HAVE_SYS_TYPES_H | #include | #endif | #include | | | int | main (void) | { | if (sizeof (struct vfsconf)) | return 0; | ; | return 0; | } configure:16392: result: no configure:16407: checking for struct xvfsconf configure:16407: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:222:13: error: invalid application of 'sizeof' to incomplete type 'struct xvfsconf' if (sizeof (struct xvfsconf)) ^ configure:16407: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | /* end confdefs.h. */ | #if HAVE_SYS_TYPES_H | #include | #endif | #include | | | int | main (void) | { | if (sizeof (struct xvfsconf)) | return 0; | ; | return 0; | } configure:16407: result: no configure:16422: checking for struct statfs configure:16422: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:222:13: error: invalid application of 'sizeof' to incomplete type 'struct statfs' if (sizeof (struct statfs)) ^ configure:16422: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | /* end confdefs.h. */ | #if HAVE_SYS_TYPES_H | #include | #endif | #include | | | int | main (void) | { | if (sizeof (struct statfs)) | return 0; | ; | return 0; | } configure:16422: result: no configure:16451: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 conftest.c: In function 'main': conftest.c:218:7: warning: 'dir' is used uninitialized in this function [-Wuninitialized] return(readdir_r(dir, &e, &r)); ^ configure:16451: $? = 0 configure:16473: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:16473: $? = 0 configure:16486: checking whether D_MD_ORDER is declared configure:16486: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:227:10: error: 'D_MD_ORDER' undeclared (first use in this function) (void) D_MD_ORDER; ^ conftest.c:227:10: note: each undeclared identifier is reported only once for each function it appears in configure:16486: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | #if HAVE_LANGINFO_H | #include | #endif | | | int | main (void) | { | #ifndef D_MD_ORDER | #ifdef __cplusplus | (void) D_MD_ORDER; | #else | (void) D_MD_ORDER; | #endif | #endif | | ; | return 0; | } configure:16486: result: no configure:16501: checking for struct dirent.d_namlen configure:16501: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:224:12: error: 'struct dirent' has no member named 'd_namlen' if (ac_aggr.d_namlen) ^ conftest.c:223:22: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct dirent ac_aggr; ^ configure:16501: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | #if HAVE_DIRENT_H | #include | #endif | | | int | main (void) | { | static struct dirent ac_aggr; | if (ac_aggr.d_namlen) | return 0; | ; | return 0; | } configure:16501: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c: In function 'main': conftest.c:224:19: error: 'struct dirent' has no member named 'd_namlen' if (sizeof ac_aggr.d_namlen) ^ conftest.c:223:22: warning: variable 'ac_aggr' set but not used [-Wunused-but-set-variable] static struct dirent ac_aggr; ^ configure:16501: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | #if HAVE_DIRENT_H | #include | #endif | | | int | main (void) | { | static struct dirent ac_aggr; | if (sizeof ac_aggr.d_namlen) | return 0; | ; | return 0; | } configure:16501: result: no configure:17462: checking for special C compiler options needed for large files configure:17510: result: no configure:17516: checking for _FILE_OFFSET_BITS value needed for large files configure:17542: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 configure:17542: $? = 0 configure:17576: result: no configure:17672: checking support for ARCHIVE_CRYPTO_MD5_LIBC configure:17694: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:64:17: fatal error: md5.h: No such file or directory #include ^ compilation terminated. configure:17694: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_MD5_COMPILE_TEST | #define ARCHIVE_CRYPTO_MD5_LIBC | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_md5_ctx ctx; | archive_md5_init(&ctx); | archive_md5_update(&ctx, *argv, argc); | archive_md5_final(&ctx, NULL); | return 0; | } | configure:17705: result: no configure:17719: checking support for ARCHIVE_CRYPTO_MD5_LIBSYSTEM configure:17741: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:115:39: fatal error: CommonCrypto/CommonDigest.h: No such file or directory #include ^ compilation terminated. configure:17741: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_MD5_COMPILE_TEST | #define ARCHIVE_CRYPTO_MD5_LIBSYSTEM | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_md5_ctx ctx; | archive_md5_init(&ctx); | archive_md5_update(&ctx, *argv, argc); | archive_md5_final(&ctx, NULL); | return 0; | } | configure:17752: result: no configure:17766: checking support for ARCHIVE_CRYPTO_RMD160_LIBC configure:17788: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:67:20: fatal error: rmd160.h: No such file or directory #include ^ compilation terminated. configure:17788: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_RMD160_COMPILE_TEST | #define ARCHIVE_CRYPTO_RMD160_LIBC | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_rmd160_ctx ctx; | archive_rmd160_init(&ctx); | archive_rmd160_update(&ctx, *argv, argc); | archive_rmd160_final(&ctx, NULL); | return 0; | } | configure:17799: result: no configure:17813: checking support for ARCHIVE_CRYPTO_SHA1_LIBC configure:17835: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:70:18: fatal error: sha1.h: No such file or directory #include ^ compilation terminated. configure:17835: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA1_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA1_LIBC | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha1_ctx ctx; | archive_sha1_init(&ctx); | archive_sha1_update(&ctx, *argv, argc); | archive_sha1_final(&ctx, NULL); | return 0; | } | configure:17846: result: no configure:17860: checking support for ARCHIVE_CRYPTO_SHA1_LIBSYSTEM configure:17882: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:115:39: fatal error: CommonCrypto/CommonDigest.h: No such file or directory #include ^ compilation terminated. configure:17882: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA1_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA1_LIBSYSTEM | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha1_ctx ctx; | archive_sha1_init(&ctx); | archive_sha1_update(&ctx, *argv, argc); | archive_sha1_final(&ctx, NULL); | return 0; | } | configure:17893: result: no configure:17907: checking support for ARCHIVE_CRYPTO_SHA256_LIBC configure:17929: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:81:18: fatal error: sha2.h: No such file or directory #include ^ compilation terminated. configure:17929: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA256_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA256_LIBC | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha256_ctx ctx; | archive_sha256_init(&ctx); | archive_sha256_update(&ctx, *argv, argc); | archive_sha256_final(&ctx, NULL); | return 0; | } | configure:17940: result: no configure:17954: checking support for ARCHIVE_CRYPTO_SHA256_LIBC2 configure:17976: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:81:18: fatal error: sha2.h: No such file or directory #include ^ compilation terminated. configure:17976: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA256_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA256_LIBC2 | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha256_ctx ctx; | archive_sha256_init(&ctx); | archive_sha256_update(&ctx, *argv, argc); | archive_sha256_final(&ctx, NULL); | return 0; | } | configure:17987: result: no configure:18001: checking support for ARCHIVE_CRYPTO_SHA256_LIBC3 configure:18023: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:81:18: fatal error: sha2.h: No such file or directory #include ^ compilation terminated. configure:18023: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA256_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA256_LIBC3 | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha256_ctx ctx; | archive_sha256_init(&ctx); | archive_sha256_update(&ctx, *argv, argc); | archive_sha256_final(&ctx, NULL); | return 0; | } | configure:18034: result: no configure:18048: checking support for ARCHIVE_CRYPTO_SHA256_LIBSYSTEM configure:18070: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:115:39: fatal error: CommonCrypto/CommonDigest.h: No such file or directory #include ^ compilation terminated. configure:18070: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA256_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA256_LIBSYSTEM | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha256_ctx ctx; | archive_sha256_init(&ctx); | archive_sha256_update(&ctx, *argv, argc); | archive_sha256_final(&ctx, NULL); | return 0; | } | configure:18081: result: no configure:18095: checking support for ARCHIVE_CRYPTO_SHA384_LIBC configure:18117: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:81:18: fatal error: sha2.h: No such file or directory #include ^ compilation terminated. configure:18117: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA384_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA384_LIBC | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha384_ctx ctx; | archive_sha384_init(&ctx); | archive_sha384_update(&ctx, *argv, argc); | archive_sha384_final(&ctx, NULL); | return 0; | } | configure:18128: result: no configure:18142: checking support for ARCHIVE_CRYPTO_SHA384_LIBC2 configure:18164: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:81:18: fatal error: sha2.h: No such file or directory #include ^ compilation terminated. configure:18164: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA384_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA384_LIBC2 | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha384_ctx ctx; | archive_sha384_init(&ctx); | archive_sha384_update(&ctx, *argv, argc); | archive_sha384_final(&ctx, NULL); | return 0; | } | configure:18175: result: no configure:18189: checking support for ARCHIVE_CRYPTO_SHA384_LIBC3 configure:18211: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:81:18: fatal error: sha2.h: No such file or directory #include ^ compilation terminated. configure:18211: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA384_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA384_LIBC3 | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha384_ctx ctx; | archive_sha384_init(&ctx); | archive_sha384_update(&ctx, *argv, argc); | archive_sha384_final(&ctx, NULL); | return 0; | } | configure:18222: result: no configure:18236: checking support for ARCHIVE_CRYPTO_SHA384_LIBSYSTEM configure:18258: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:115:39: fatal error: CommonCrypto/CommonDigest.h: No such file or directory #include ^ compilation terminated. configure:18258: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA384_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA384_LIBSYSTEM | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha384_ctx ctx; | archive_sha384_init(&ctx); | archive_sha384_update(&ctx, *argv, argc); | archive_sha384_final(&ctx, NULL); | return 0; | } | configure:18269: result: no configure:18283: checking support for ARCHIVE_CRYPTO_SHA512_LIBC configure:18305: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:81:18: fatal error: sha2.h: No such file or directory #include ^ compilation terminated. configure:18305: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA512_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA512_LIBC | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha512_ctx ctx; | archive_sha512_init(&ctx); | archive_sha512_update(&ctx, *argv, argc); | archive_sha512_final(&ctx, NULL); | return 0; | } | configure:18316: result: no configure:18330: checking support for ARCHIVE_CRYPTO_SHA512_LIBC2 configure:18352: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:81:18: fatal error: sha2.h: No such file or directory #include ^ compilation terminated. configure:18352: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA512_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA512_LIBC2 | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha512_ctx ctx; | archive_sha512_init(&ctx); | archive_sha512_update(&ctx, *argv, argc); | archive_sha512_final(&ctx, NULL); | return 0; | } | configure:18363: result: no configure:18377: checking support for ARCHIVE_CRYPTO_SHA512_LIBC3 configure:18399: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:81:18: fatal error: sha2.h: No such file or directory #include ^ compilation terminated. configure:18399: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA512_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA512_LIBC3 | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha512_ctx ctx; | archive_sha512_init(&ctx); | archive_sha512_update(&ctx, *argv, argc); | archive_sha512_final(&ctx, NULL); | return 0; | } | configure:18410: result: no configure:18424: checking support for ARCHIVE_CRYPTO_SHA512_LIBSYSTEM configure:18446: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:115:39: fatal error: CommonCrypto/CommonDigest.h: No such file or directory #include ^ compilation terminated. configure:18446: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA512_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA512_LIBSYSTEM | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha512_ctx ctx; | archive_sha512_init(&ctx); | archive_sha512_update(&ctx, *argv, argc); | archive_sha512_final(&ctx, NULL); | return 0; | } | configure:18457: result: no configure:18472: checking for bcrypt.h configure:18472: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:220:20: fatal error: bcrypt.h: No such file or directory #include ^ compilation terminated. configure:18472: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | #ifdef HAVE_WINDOWS_H | # include | #endif | | | #include configure:18472: result: no configure:19557: checking for md5.h configure:19557: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:243:17: fatal error: md5.h: No such file or directory #include ^ compilation terminated. configure:19557: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:19557: result: no configure:19563: checking for ripemd.h configure:19563: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:243:20: fatal error: ripemd.h: No such file or directory #include ^ compilation terminated. configure:19563: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:19563: result: no configure:19569: checking for sha.h configure:19569: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:243:17: fatal error: sha.h: No such file or directory #include ^ compilation terminated. configure:19569: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:19569: result: no configure:19575: checking for sha256.h configure:19575: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:243:20: fatal error: sha256.h: No such file or directory #include ^ compilation terminated. configure:19575: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:19575: result: no configure:19581: checking for sha512.h configure:19581: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:243:20: fatal error: sha512.h: No such file or directory #include ^ compilation terminated. configure:19581: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | #include | #ifdef HAVE_STDIO_H | # include | #endif | #ifdef HAVE_STDLIB_H | # include | #endif | #ifdef HAVE_STRING_H | # include | #endif | #ifdef HAVE_INTTYPES_H | # include | #endif | #ifdef HAVE_STDINT_H | # include | #endif | #ifdef HAVE_STRINGS_H | # include | #endif | #ifdef HAVE_SYS_TYPES_H | # include | #endif | #ifdef HAVE_SYS_STAT_H | # include | #endif | #ifdef HAVE_UNISTD_H | # include | #endif | #include configure:19581: result: no configure:19589: checking for MD5Init in -lmd configure:19612: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lmd -lexpat -llz4 -lz >&5 /home/thomas/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lmd collect2: error: ld returned 1 exit status configure:19612: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* 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. */ | char MD5Init (); | int | main (void) | { | return MD5Init (); | ; | return 0; | } configure:19622: result: no configure:19637: checking support for ARCHIVE_CRYPTO_MD5_LIBMD configure:19659: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:94:17: fatal error: md5.h: No such file or directory #include ^ compilation terminated. configure:19659: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_MD5_COMPILE_TEST | #define ARCHIVE_CRYPTO_MD5_LIBMD | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_md5_ctx ctx; | archive_md5_init(&ctx); | archive_md5_update(&ctx, *argv, argc); | archive_md5_final(&ctx, NULL); | return 0; | } | configure:19670: result: no configure:19684: checking support for ARCHIVE_CRYPTO_RMD160_LIBMD configure:19706: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:97:20: fatal error: ripemd.h: No such file or directory #include ^ compilation terminated. configure:19706: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_RMD160_COMPILE_TEST | #define ARCHIVE_CRYPTO_RMD160_LIBMD | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_rmd160_ctx ctx; | archive_rmd160_init(&ctx); | archive_rmd160_update(&ctx, *argv, argc); | archive_rmd160_final(&ctx, NULL); | return 0; | } | configure:19717: result: no configure:19731: checking support for ARCHIVE_CRYPTO_SHA1_LIBMD configure:19753: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:100:17: fatal error: sha.h: No such file or directory #include ^ compilation terminated. configure:19753: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA1_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA1_LIBMD | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha1_ctx ctx; | archive_sha1_init(&ctx); | archive_sha1_update(&ctx, *argv, argc); | archive_sha1_final(&ctx, NULL); | return 0; | } | configure:19764: result: no configure:19778: checking support for ARCHIVE_CRYPTO_SHA256_LIBMD configure:19800: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:103:20: fatal error: sha256.h: No such file or directory #include ^ compilation terminated. configure:19800: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA256_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA256_LIBMD | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha256_ctx ctx; | archive_sha256_init(&ctx); | archive_sha256_update(&ctx, *argv, argc); | archive_sha256_final(&ctx, NULL); | return 0; | } | configure:19811: result: no configure:19825: checking support for ARCHIVE_CRYPTO_SHA512_LIBMD configure:19847: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I. -I. -I./libarchive conftest.c -lexpat -llz4 -lz >&5 In file included from conftest.c:250:0: ./libarchive/archive_digest_private.h:106:20: fatal error: sha512.h: No such file or directory #include ^ compilation terminated. configure:19847: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libarchive" | #define PACKAGE_TARNAME "libarchive" | #define PACKAGE_VERSION "3.7.2" | #define PACKAGE_STRING "libarchive 3.7.2" | #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" | #define PACKAGE_URL "" | #define PACKAGE "libarchive" | #define VERSION "3.7.2" | #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 | #define LIBARCHIVE_VERSION_STRING "3.7.2" | #define LIBARCHIVE_VERSION_NUMBER "3007002" | #define BSDCPIO_VERSION_STRING "3.7.2" | #define BSDTAR_VERSION_STRING "3.7.2" | #define BSDCAT_VERSION_STRING "3.7.2" | #define BSDUNZIP_VERSION_STRING "3.7.2" | #define HAVE_STDIO_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_SYS_TIME_H 1 | #define STDC_HEADERS 1 | #define _ALL_SOURCE 1 | #define _DARWIN_C_SOURCE 1 | #define _GNU_SOURCE 1 | #define _HPUX_ALT_XOPEN_SOCKET_API 1 | #define _NETBSD_SOURCE 1 | #define _OPENBSD_SOURCE 1 | #define _POSIX_PTHREAD_SEMANTICS 1 | #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 | #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 | #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 | #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 | #define __STDC_WANT_LIB_EXT2__ 1 | #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 | #define _TANDEM_SOURCE 1 | #define __EXTENSIONS__ 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | #define HAVE_DIRENT_H 1 | #define HAVE_SYS_WAIT_H 1 | #define HAVE_CTYPE_H 1 | #define HAVE_ERRNO_H 1 | #define HAVE_FCNTL_H 1 | #define HAVE_FNMATCH_H 1 | #define HAVE_GRP_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_LANGINFO_H 1 | #define HAVE_LIMITS_H 1 | #define HAVE_LINUX_FIEMAP_H 1 | #define HAVE_LINUX_FS_H 1 | #define HAVE_LINUX_MAGIC_H 1 | #define HAVE_LINUX_TYPES_H 1 | #define HAVE_WORKING_FS_IOC_GETFLAGS 1 | #define HAVE_LOCALE_H 1 | #define HAVE_PATHS_H 1 | #define HAVE_POLL_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PWD_H 1 | #define HAVE_SIGNAL_H 1 | #define HAVE_SPAWN_H 1 | #define HAVE_STDARG_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_SYS_CDEFS_H 1 | #define HAVE_SYS_IOCTL_H 1 | #define HAVE_SYS_MOUNT_H 1 | #define HAVE_SYS_QUEUE_H 1 | #define HAVE_SYS_PARAM_H 1 | #define HAVE_SYS_POLL_H 1 | #define HAVE_SYS_SELECT_H 1 | #define HAVE_SYS_STATFS_H 1 | #define HAVE_SYS_STATVFS_H 1 | #define HAVE_SYS_SYSMACROS_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_SYS_UTSNAME_H 1 | #define HAVE_SYS_VFS_H 1 | #define HAVE_SYS_XATTR_H 1 | #define HAVE_TIME_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_UTIME_H 1 | #define HAVE_WCHAR_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_ZLIB_H 1 | #define HAVE_LIBZ 1 | #define HAVE_ICONV 1 | #define ICONV_CONST | #define HAVE_ICONV_H 1 | #define HAVE_LZ4_H 1 | #define HAVE_LZ4HC_H 1 | #define HAVE_LIBLZ4 1 | #define HAVE_EXPAT_H 1 | #define HAVE_LIBEXPAT 1 | #define HAVE_REGEX_H 1 | #define HAVE_STRUCT_TM_TM_GMTOFF 1 | #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 | #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_UNSIGNED_LONG_LONG 1 | #define HAVE_UNSIGNED_LONG_LONG_INT 1 | #define HAVE_LONG_LONG_INT 1 | #define HAVE_INTMAX_T 1 | #define HAVE_UINTMAX_T 1 | #define HAVE_DECL_SIZE_MAX 1 | #define HAVE_DECL_INT32_MAX 1 | #define HAVE_DECL_INT32_MIN 1 | #define HAVE_DECL_INT64_MAX 1 | #define HAVE_DECL_INT64_MIN 1 | #define HAVE_DECL_UINT64_MAX 1 | #define HAVE_DECL_UINT32_MAX 1 | #define HAVE_DECL_INTMAX_MAX 1 | #define HAVE_DECL_INTMAX_MIN 1 | #define HAVE_DECL_UINTMAX_MAX 1 | #define HAVE_DECL_SSIZE_MAX 1 | #define HAVE_EILSEQ 1 | #define HAVE_WCHAR_T 1 | #define SIZEOF_WCHAR_T 4 | #define SIZEOF_INT 4 | #define SIZEOF_LONG 4 | #define MAJOR_IN_SYSMACROS 1 | #define HAVE_FSEEKO 1 | #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 | #define HAVE_LSTAT_EMPTY_STRING_BUG 1 | #define HAVE_STAT_EMPTY_STRING_BUG 1 | #define HAVE_DECL_STRERROR_R 1 | #define HAVE_STRERROR_R 1 | #define STRERROR_R_CHAR_P 1 | #define HAVE_STRFTIME 1 | #define HAVE_VPRINTF 1 | #define HAVE_CHOWN 1 | #define HAVE_CHROOT 1 | #define HAVE_CTIME_R 1 | #define HAVE_FCHDIR 1 | #define HAVE_FCHMOD 1 | #define HAVE_FCHOWN 1 | #define HAVE_FCNTL 1 | #define HAVE_FDOPENDIR 1 | #define HAVE_FNMATCH 1 | #define HAVE_FORK 1 | #define HAVE_FSTAT 1 | #define HAVE_FSTATAT 1 | #define HAVE_FSTATFS 1 | #define HAVE_FSTATVFS 1 | #define HAVE_FTRUNCATE 1 | #define HAVE_FUTIMENS 1 | #define HAVE_FUTIMES 1 | #define HAVE_FUTIMESAT 1 | #define HAVE_GETEUID 1 | #define HAVE_GETLINE 1 | #define HAVE_GETPID 1 | #define HAVE_GETGRGID_R 1 | #define HAVE_GETGRNAM_R 1 | #define HAVE_GETPWNAM_R 1 | #define HAVE_GETPWUID_R 1 | #define HAVE_GMTIME_R 1 | #define HAVE_LCHOWN 1 | #define HAVE_LINK 1 | #define HAVE_LINKAT 1 | #define HAVE_LOCALTIME_R 1 | #define HAVE_LSTAT 1 | #define HAVE_LUTIMES 1 | #define HAVE_MBRTOWC 1 | #define HAVE_MEMMOVE 1 | #define HAVE_MEMSET 1 | #define HAVE_MKDIR 1 | #define HAVE_MKFIFO 1 | #define HAVE_MKNOD 1 | #define HAVE_MKSTEMP 1 | #define HAVE_NL_LANGINFO 1 | #define HAVE_OPENAT 1 | #define HAVE_PIPE 1 | #define HAVE_POLL 1 | #define HAVE_POSIX_SPAWNP 1 | #define HAVE_READLINK 1 | #define HAVE_READLINKAT 1 | #define HAVE_SELECT 1 | #define HAVE_SETENV 1 | #define HAVE_SETLOCALE 1 | #define HAVE_SIGACTION 1 | #define HAVE_STATFS 1 | #define HAVE_STATVFS 1 | #define HAVE_STRCHR 1 | #define HAVE_STRDUP 1 | #define HAVE_STRERROR 1 | #define HAVE_STRNLEN 1 | #define HAVE_STRRCHR 1 | #define HAVE_SYMLINK 1 | #define HAVE_TIMEGM 1 | #define HAVE_TZSET 1 | #define HAVE_UNLINKAT 1 | #define HAVE_UNSETENV 1 | #define HAVE_UTIME 1 | #define HAVE_UTIMENSAT 1 | #define HAVE_UTIMES 1 | #define HAVE_VFORK 1 | #define HAVE_WCRTOMB 1 | #define HAVE_WCSCMP 1 | #define HAVE_WCSCPY 1 | #define HAVE_WCSLEN 1 | #define HAVE_WCTOMB 1 | #define HAVE_WMEMCMP 1 | #define HAVE_WMEMCPY 1 | #define HAVE_WMEMMOVE 1 | #define HAVE_READDIR_R 1 | #define HAVE_DIRFD 1 | /* end confdefs.h. */ | | #define ARCHIVE_SHA512_COMPILE_TEST | #define ARCHIVE_CRYPTO_SHA512_LIBMD | #define PLATFORM_CONFIG_H "check_crypto_md.h" | | /*- | * Copyright (c) 2003-2007 Tim Kientzle | * Copyright (c) 2011 Andres Mejia | * Copyright (c) 2011 Michihiro NAKAJIMA | * All rights reserved. | * | * Redistribution and use in source and binary forms, with or without | * modification, are permitted provided that the following conditions | * are met: | * 1. Redistributions of source code must retain the above copyright | * notice, this list of conditions and the following disclaimer. | * 2. Redistributions in binary form must reproduce the above copyright | * notice, this list of conditions and the following disclaimer in the | * documentation and/or other materials provided with the distribution. | * | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | */ | | #include "archive_platform.h" | | #include "archive.h" | #include "archive_digest_private.h" | | /* In particular, force the configure probe to break if it tries | * to test a combination of OpenSSL and libmd. */ | #if defined(ARCHIVE_CRYPTO_OPENSSL) && defined(ARCHIVE_CRYPTO_LIBMD) | #error Cannot use both OpenSSL and libmd. | #endif | | /* Common in other bcrypt implementations, but missing from VS2008. */ | #ifndef BCRYPT_SUCCESS | #define BCRYPT_SUCCESS(r) ((NTSTATUS)(r) == STATUS_SUCCESS) | #endif | | /* | * Message digest functions for Windows platform. | */ | #if defined(ARCHIVE_CRYPTO_MD5_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA1_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA256_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA384_WIN) ||\ | defined(ARCHIVE_CRYPTO_SHA512_WIN) | | /* | * Initialize a Message digest. | */ | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | static int | win_crypto_init(Digest_CTX *ctx, const WCHAR *algo) | { | NTSTATUS status; | ctx->valid = 0; | | status = BCryptOpenAlgorithmProvider(&ctx->hAlg, algo, NULL, 0); | if (!BCRYPT_SUCCESS(status)) | return (ARCHIVE_FAILED); | status = BCryptCreateHash(ctx->hAlg, &ctx->hHash, NULL, 0, NULL, 0, 0); | if (!BCRYPT_SUCCESS(status)) { | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #else | static int | win_crypto_init(Digest_CTX *ctx, DWORD prov, ALG_ID algId) | { | | ctx->valid = 0; | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_VERIFYCONTEXT)) { | if (GetLastError() != (DWORD)NTE_BAD_KEYSET) | return (ARCHIVE_FAILED); | if (!CryptAcquireContext(&ctx->cryptProv, NULL, NULL, | prov, CRYPT_NEWKEYSET)) | return (ARCHIVE_FAILED); | } | | if (!CryptCreateHash(ctx->cryptProv, algId, 0, 0, &ctx->hash)) { | CryptReleaseContext(ctx->cryptProv, 0); | return (ARCHIVE_FAILED); | } | | ctx->valid = 1; | return (ARCHIVE_OK); | } | #endif | | /* | * Update a Message digest. | */ | static int | win_crypto_Update(Digest_CTX *ctx, const unsigned char *buf, size_t len) | { | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptHashData(ctx->hHash, | (PUCHAR)(uintptr_t)buf, | (ULONG)len, 0); | #else | CryptHashData(ctx->hash, | (unsigned char *)(uintptr_t)buf, | (DWORD)len, 0); | #endif | return (ARCHIVE_OK); | } | | static int | win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx) | { | #if !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA) | DWORD siglen = (DWORD)bufsize; | #endif | | if (!ctx->valid) | return (ARCHIVE_FAILED); | | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | BCryptFinishHash(ctx->hHash, buf, (ULONG)bufsize, 0); | BCryptDestroyHash(ctx->hHash); | BCryptCloseAlgorithmProvider(ctx->hAlg, 0); | #else | CryptGetHashParam(ctx->hash, HP_HASHVAL, buf, &siglen, 0); | CryptDestroyHash(ctx->hash); | CryptReleaseContext(ctx->cryptProv, 0); | #endif | ctx->valid = 0; | return (ARCHIVE_OK); | } | | #endif /* defined(ARCHIVE_CRYPTO_*_WIN) */ | | | /* MD5 implementations */ | #if defined(ARCHIVE_CRYPTO_MD5_LIBC) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBMD) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | MD5Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | MD5Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | MD5Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | CC_MD5_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | CC_MD5_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | CC_MD5_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | mbedtls_md5_init(ctx); | if (mbedtls_md5_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_md5_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | if (mbedtls_md5_finish_ret(ctx, md) == 0) { | mbedtls_md5_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_md5_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_MD5_NETTLE) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | md5_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | md5_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | md5_digest(ctx, MD5_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_md5())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_MD5_WIN) | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_MD5_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_MD5)); | #endif | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 16, ctx)); | } | | #else | | static int | __archive_md5init(archive_md5_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5update(archive_md5_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_md5final(archive_md5_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* RIPEMD160 implementations */ | #if defined(ARCHIVE_CRYPTO_RMD160_LIBC) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RMD160Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RMD160Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RMD160Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | RIPEMD160_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | RIPEMD160_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | RIPEMD160_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | mbedtls_ripemd160_init(ctx); | if (mbedtls_ripemd160_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_ripemd160_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | ripemd160_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | ripemd160_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL) | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_ripemd160())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #else | | static int | __archive_ripemd160init(archive_rmd160_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA1 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA1_LIBC) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | CC_SHA1_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA1_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | CC_SHA1_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | mbedtls_sha1_init(ctx); | if (mbedtls_sha1_starts_ret(ctx) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | if (mbedtls_sha1_finish_ret(ctx, md) == 0) { | mbedtls_sha1_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha1_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | sha1_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | sha1_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | sha1_digest(ctx, SHA1_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha1())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | /* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so | * this is meant to cope with that. Real fix is probably to fix | * archive_write_set_format_xar.c | */ | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA1_WIN) | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA1_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_FULL, CALG_SHA1)); | #endif | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 20, ctx)); | } | | #else | | static int | __archive_sha1init(archive_sha1_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1update(archive_sha1_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha1final(archive_sha1_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA256 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA256_LIBC) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | CC_SHA256_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA256_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | CC_SHA256_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | mbedtls_sha256_init(ctx); | if (mbedtls_sha256_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (mbedtls_sha256_finish_ret(ctx, md) == 0) { | mbedtls_sha256_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha256_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | sha256_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | sha256_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | sha256_digest(ctx, SHA256_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha256())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA256_WIN) | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA256_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_256)); | #endif | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 32, ctx)); | } | | #else | | static int | __archive_sha256init(archive_sha256_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256update(archive_sha256_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha256final(archive_sha256_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA384 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA384_LIBC) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | SHA384Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | SHA384Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | SHA384Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | CC_SHA384_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA384_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | CC_SHA384_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 1) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | sha384_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | sha384_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | sha384_digest(ctx, SHA384_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha384())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA384_WIN) | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA384_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_384)); | #endif | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 48, ctx)); | } | | #else | | static int | __archive_sha384init(archive_sha384_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384update(archive_sha384_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha384final(archive_sha384_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* SHA512 implementations */ | #if defined(ARCHIVE_CRYPTO_SHA512_LIBC) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | CC_SHA512_Init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | CC_SHA512_Update(ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | CC_SHA512_Final(md, ctx); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | mbedtls_sha512_init(ctx); | if (mbedtls_sha512_starts_ret(ctx, 0) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0) | return (ARCHIVE_OK); | else | return (ARCHIVE_FATAL); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (mbedtls_sha512_finish_ret(ctx, md) == 0) { | mbedtls_sha512_free(ctx); | return (ARCHIVE_OK); | } else { | mbedtls_sha512_free(ctx); | return (ARCHIVE_FATAL); | } | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | sha512_init(ctx); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | sha512_update(ctx, insize, indata); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | sha512_digest(ctx, SHA512_DIGEST_SIZE, md); | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | if ((*ctx = EVP_MD_CTX_new()) == NULL) | return (ARCHIVE_FAILED); | if (!EVP_DigestInit(*ctx, EVP_sha512())) | return (ARCHIVE_FAILED); | return (ARCHIVE_OK); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | EVP_DigestUpdate(*ctx, indata, insize); | return (ARCHIVE_OK); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | if (*ctx) { | EVP_DigestFinal(*ctx, md, NULL); | EVP_MD_CTX_free(*ctx); | *ctx = NULL; | } | return (ARCHIVE_OK); | } | | #elif defined(ARCHIVE_CRYPTO_SHA512_WIN) | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | #if defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA | return (win_crypto_init(ctx, BCRYPT_SHA512_ALGORITHM)); | #else | return (win_crypto_init(ctx, PROV_RSA_AES, CALG_SHA_512)); | #endif | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | return (win_crypto_Update(ctx, indata, insize)); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | return (win_crypto_Final(md, 64, ctx)); | } | | #else | | static int | __archive_sha512init(archive_sha512_ctx *ctx) | { | (void)ctx; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512update(archive_sha512_ctx *ctx, const void *indata, | size_t insize) | { | (void)ctx; /* UNUSED */ | (void)indata; /* UNUSED */ | (void)insize; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | static int | __archive_sha512final(archive_sha512_ctx *ctx, void *md) | { | (void)ctx; /* UNUSED */ | (void)md; /* UNUSED */ | return (ARCHIVE_FAILED); | } | | #endif | | /* NOTE: Message Digest functions are set based on availability and by the | * following order of preference. | * 1. libc | * 2. libc2 | * 3. libc3 | * 4. libSystem | * 5. Nettle | * 6. OpenSSL | * 7. libmd | * 8. Windows API | */ | const struct archive_digest __archive_digest = | { | /* MD5 */ | &__archive_md5init, | &__archive_md5update, | &__archive_md5final, | | /* RIPEMD160 */ | &__archive_ripemd160init, | &__archive_ripemd160update, | &__archive_ripemd160final, | | /* SHA1 */ | &__archive_sha1init, | &__archive_sha1update, | &__archive_sha1final, | | /* SHA256 */ | &__archive_sha256init, | &__archive_sha256update, | &__archive_sha256final, | | /* SHA384 */ | &__archive_sha384init, | &__archive_sha384update, | &__archive_sha384final, | | /* SHA512 */ | &__archive_sha512init, | &__archive_sha512update, | &__archive_sha512final | }; | | int | main(int argc, char **argv) | { | archive_sha512_ctx ctx; | archive_sha512_init(&ctx); | archive_sha512_update(&ctx, *argv, argc); | archive_sha512_final(&ctx, NULL); | return 0; | } | configure:19858: result: no configure:20073: checking whether compiler supports visibility annotations configure:20088: /home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11 -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -fvisibility=hidden -Werror -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lexpat -llz4 -lz >&5 configure:20088: $? = 0 configure:20091: result: yes configure:20206: checking that generated files are newer than configure configure:20212: result: done configure:20299: creating ./config.status ## ---------------------- ## ## Running config.status. ## ## ---------------------- ## This file was extended by libarchive config.status 3.7.2, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = CONFIG_HEADERS = CONFIG_LINKS = CONFIG_COMMANDS = $ ./config.status on build3.bootlin.com config.status:1323: creating Makefile config.status:1323: creating build/pkgconfig/libarchive.pc config.status:1323: creating config.h config.status:1552: executing depfiles commands config.status:1552: executing libtool commands config.status:1552: executing mkdirs commands configure:22444: WARNING: unrecognized options: --disable-gtk-doc, --disable-gtk-doc-html, --disable-doc, --disable-docs, --disable-documentation, --with-xmlto, --with-fop, --enable-ipv6, --disable-nls ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_build=x86_64-pc-linux-gnu ac_cv_c_bigendian=no ac_cv_c_compiler_gnu=yes ac_cv_c_const=yes ac_cv_c_int16_t=yes ac_cv_c_int32_t=yes ac_cv_c_int64_t=yes ac_cv_c_uint16_t=yes ac_cv_c_uint32_t=yes ac_cv_c_uint64_t=yes ac_cv_c_uint8_t=yes ac_cv_c_undeclared_builtin_options='none needed' ac_cv_env_CC_set=set ac_cv_env_CC_value=/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc ac_cv_env_CFLAGS_set=set ac_cv_env_CFLAGS_value='-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1' ac_cv_env_CPPFLAGS_set=set ac_cv_env_CPPFLAGS_value='-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' ac_cv_env_CPP_set=set ac_cv_env_CPP_value=/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-cpp ac_cv_env_LDFLAGS_set=set ac_cv_env_LDFLAGS_value= ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_LIBXML2_PC_CFLAGS_set= ac_cv_env_LIBXML2_PC_CFLAGS_value= ac_cv_env_LIBXML2_PC_LIBS_set= ac_cv_env_LIBXML2_PC_LIBS_value= ac_cv_env_LT_SYS_LIBRARY_PATH_set= ac_cv_env_LT_SYS_LIBRARY_PATH_value= ac_cv_env_PKG_CONFIG_LIBDIR_set= ac_cv_env_PKG_CONFIG_LIBDIR_value= ac_cv_env_PKG_CONFIG_PATH_set= ac_cv_env_PKG_CONFIG_PATH_value= ac_cv_env_PKG_CONFIG_set=set ac_cv_env_PKG_CONFIG_value=/home/thomas/autobuild/instance-3/output-1/host/bin/pkg-config ac_cv_env_build_alias_set=set ac_cv_env_build_alias_value=x86_64-pc-linux-gnu ac_cv_env_host_alias_set=set ac_cv_env_host_alias_value=arm-buildroot-linux-gnueabi ac_cv_env_target_alias_set=set ac_cv_env_target_alias_value=arm-buildroot-linux-gnueabi ac_cv_func_CreateHardLinkA=no ac_cv_func__fseeki64=no ac_cv_func__get_timezone=no ac_cv_func_arc4random_buf=no ac_cv_func_calloc_0_nonnull=yes ac_cv_func_chflags=no ac_cv_func_chown=yes ac_cv_func_chroot=yes ac_cv_func_ctime_r=yes ac_cv_func_cygwin_conv_path=no ac_cv_func_fchdir=yes ac_cv_func_fchflags=no ac_cv_func_fchmod=yes ac_cv_func_fchown=yes ac_cv_func_fcntl=yes ac_cv_func_fdopendir=yes ac_cv_func_fnmatch=yes ac_cv_func_fork=yes ac_cv_func_fstat=yes ac_cv_func_fstatat=yes ac_cv_func_fstatfs=yes ac_cv_func_fstatvfs=yes ac_cv_func_ftruncate=yes ac_cv_func_futimens=yes ac_cv_func_futimes=yes ac_cv_func_futimesat=yes ac_cv_func_geteuid=yes ac_cv_func_getgrgid_r=yes ac_cv_func_getgrnam_r=yes ac_cv_func_getline=yes ac_cv_func_getpid=yes ac_cv_func_getpwnam_r=yes ac_cv_func_getpwuid_r=yes ac_cv_func_getvfsbyname=no ac_cv_func_gmtime_r=yes ac_cv_func_lchflags=no ac_cv_func_lchmod=no ac_cv_func_lchown=yes ac_cv_func_link=yes ac_cv_func_linkat=yes ac_cv_func_locale_charset=no ac_cv_func_localtime_r=yes ac_cv_func_lstat=yes ac_cv_func_lstat_dereferences_slashed_symlink=yes ac_cv_func_lstat_empty_string_bug=yes ac_cv_func_lutimes=yes ac_cv_func_malloc_0_nonnull=yes ac_cv_func_mbrtowc=yes ac_cv_func_memcmp_working=yes ac_cv_func_memmove=yes ac_cv_func_memset=yes ac_cv_func_mkdir=yes ac_cv_func_mkfifo=yes ac_cv_func_mknod=yes ac_cv_func_mkstemp=yes ac_cv_func_mmap_fixed_mapped=yes ac_cv_func_nl_langinfo=yes ac_cv_func_openat=yes ac_cv_func_pipe=yes ac_cv_func_poll=yes ac_cv_func_posix_spawnp=yes ac_cv_func_readlink=yes ac_cv_func_readlinkat=yes ac_cv_func_readpassphrase=no ac_cv_func_realloc_0_nonnull=yes ac_cv_func_regcomp=yes ac_cv_func_select=yes ac_cv_func_setenv=yes ac_cv_func_setlocale=yes ac_cv_func_sigaction=yes ac_cv_func_stat_empty_string_bug=yes ac_cv_func_statfs=yes ac_cv_func_statvfs=yes ac_cv_func_strchr=yes ac_cv_func_strdup=yes ac_cv_func_strerror=yes ac_cv_func_strerror_r_char_p=yes ac_cv_func_strftime=yes ac_cv_func_strncpy_s=no ac_cv_func_strnlen=yes ac_cv_func_strrchr=yes ac_cv_func_symlink=yes ac_cv_func_timegm=yes ac_cv_func_tzset=yes ac_cv_func_unlinkat=yes ac_cv_func_unsetenv=yes ac_cv_func_utime=yes ac_cv_func_utimensat=yes ac_cv_func_utimes=yes ac_cv_func_vfork=yes ac_cv_func_vprintf=yes ac_cv_func_wcrtomb=yes ac_cv_func_wcscmp=yes ac_cv_func_wcscpy=yes ac_cv_func_wcslen=yes ac_cv_func_wctomb=yes ac_cv_func_wmemcmp=yes ac_cv_func_wmemcpy=yes ac_cv_func_wmemmove=yes ac_cv_have_decl_D_MD_ORDER=no ac_cv_have_decl_EFTYPE=no ac_cv_have_decl_EILSEQ=yes ac_cv_have_decl_EXT2_IOC_GETFLAGS=no ac_cv_have_decl_FS_IOC_GETFLAGS=yes ac_cv_have_decl_INT32_MAX=yes ac_cv_have_decl_INT32_MIN=yes ac_cv_have_decl_INT64_MAX=yes ac_cv_have_decl_INT64_MIN=yes ac_cv_have_decl_INTMAX_MAX=yes ac_cv_have_decl_INTMAX_MIN=yes ac_cv_have_decl_SIZE_MAX=yes ac_cv_have_decl_SSIZE_MAX=yes ac_cv_have_decl_UINT32_MAX=yes ac_cv_have_decl_UINT64_MAX=yes ac_cv_have_decl_UINTMAX_MAX=yes ac_cv_have_decl__mkgmtime=no ac_cv_have_decl_cmtime_s=no ac_cv_have_decl_gmtime_s=no ac_cv_have_decl_malloc=yes ac_cv_have_decl_strerror_r=yes ac_cv_header_acl_libacl_h=no ac_cv_header_attr_xattr_h=no ac_cv_header_bcrypt_h=no ac_cv_header_blake2_h=no ac_cv_header_copyfile_h=no ac_cv_header_ctype_h=yes ac_cv_header_dirent_dirent_h=yes ac_cv_header_dlfcn_h=yes ac_cv_header_errno_h=yes ac_cv_header_expat_h=yes ac_cv_header_ext2fs_ext2_fs_h=no ac_cv_header_fcntl_h=yes ac_cv_header_fnmatch_h=yes ac_cv_header_grp_h=yes ac_cv_header_iconv_h=yes ac_cv_header_inttypes_h=yes ac_cv_header_io_h=no ac_cv_header_langinfo_h=yes ac_cv_header_limits_h=yes ac_cv_header_linux_fiemap_h=yes ac_cv_header_linux_fs_h=yes ac_cv_header_linux_magic_h=yes ac_cv_header_linux_types_h=yes ac_cv_header_localcharset_h=no ac_cv_header_locale_h=yes ac_cv_header_lz4_h=yes ac_cv_header_lz4hc_h=yes ac_cv_header_md5_h=no ac_cv_header_membership_h=no ac_cv_header_minix_config_h=no ac_cv_header_paths_h=yes ac_cv_header_poll_h=yes ac_cv_header_pthread_h=yes ac_cv_header_pwd_h=yes ac_cv_header_readpassphrase_h=no ac_cv_header_regex_h=yes ac_cv_header_ripemd_h=no ac_cv_header_sha256_h=no ac_cv_header_sha512_h=no ac_cv_header_sha_h=no ac_cv_header_signal_h=yes ac_cv_header_spawn_h=yes ac_cv_header_stdarg_h=yes ac_cv_header_stdint_h=yes ac_cv_header_stdio_h=yes ac_cv_header_stdlib_h=yes ac_cv_header_string_h=yes ac_cv_header_strings_h=yes ac_cv_header_sys_acl_h=no ac_cv_header_sys_cdefs_h=yes ac_cv_header_sys_ea_h=no ac_cv_header_sys_extattr_h=no ac_cv_header_sys_ioctl_h=yes ac_cv_header_sys_mkdev_h=no ac_cv_header_sys_mount_h=yes ac_cv_header_sys_param_h=yes ac_cv_header_sys_poll_h=yes ac_cv_header_sys_queue_h=yes ac_cv_header_sys_richacl_h=no ac_cv_header_sys_select_h=yes ac_cv_header_sys_stat_h=yes ac_cv_header_sys_statfs_h=yes ac_cv_header_sys_statvfs_h=yes ac_cv_header_sys_sysmacros_h=yes ac_cv_header_sys_time_h=yes ac_cv_header_sys_types_h=yes ac_cv_header_sys_utime_h=no ac_cv_header_sys_utsname_h=yes ac_cv_header_sys_vfs_h=yes ac_cv_header_sys_wait_h=yes ac_cv_header_sys_xattr_h=yes ac_cv_header_time_h=yes ac_cv_header_unistd_h=yes ac_cv_header_utime_h=yes ac_cv_header_wchar_h=yes ac_cv_header_wctype_h=yes ac_cv_header_wincrypt_h=no ac_cv_header_windows_h=no ac_cv_header_winioctl_h=no ac_cv_header_zlib_h=yes ac_cv_host=arm-buildroot-linux-gnueabi ac_cv_lbl_unaligned_fail=yes ac_cv_lib_b2_blake2sp_init=no ac_cv_lib_charset_locale_charset=no ac_cv_lib_expat_XML_ParserCreate=yes ac_cv_lib_lz4_LZ4_decompress_safe=yes ac_cv_lib_md_MD5Init=no ac_cv_lib_z_inflate=yes ac_cv_member_struct_dirent_d_namlen=no ac_cv_member_struct_stat_st_birthtime=no ac_cv_member_struct_stat_st_birthtimespec_tv_nsec=no ac_cv_member_struct_stat_st_blksize=yes ac_cv_member_struct_stat_st_flags=no ac_cv_member_struct_stat_st_mtim_tv_nsec=yes ac_cv_member_struct_stat_st_mtime_n=no ac_cv_member_struct_stat_st_mtime_usec=no ac_cv_member_struct_stat_st_mtimespec_tv_nsec=no ac_cv_member_struct_stat_st_umtime=no ac_cv_member_struct_statfs_f_iosize=no ac_cv_member_struct_statfs_f_namemax=no ac_cv_member_struct_statvfs_f_iosize=no ac_cv_member_struct_tm___tm_gmtoff=no ac_cv_member_struct_tm_tm_gmtoff=yes ac_cv_objext=o ac_cv_path_EGREP='/usr/bin/grep -E' ac_cv_path_FGREP='/usr/bin/grep -F' ac_cv_path_GREP=/usr/bin/grep ac_cv_path_SED=/usr/bin/sed ac_cv_path_install='/usr/bin/install -c' ac_cv_path_lt_DD=/usr/bin/dd ac_cv_path_mkdir=/usr/bin/mkdir ac_cv_prog_AR=/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-ar ac_cv_prog_AWK=gawk ac_cv_prog_CC=/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc ac_cv_prog_CPP=/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-cpp ac_cv_prog_DLLTOOL=dlltool ac_cv_prog_OBJDUMP=/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-objdump ac_cv_prog_RANLIB=/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-ranlib ac_cv_prog_STRIP=/bin/true ac_cv_prog_ac_ct_MANIFEST_TOOL=mt ac_cv_prog_cc_c11=-std=gnu11 ac_cv_prog_cc_g=yes ac_cv_prog_cc_stdc=-std=gnu11 ac_cv_prog_gcc_traditional=no ac_cv_prog_make_make_set=yes ac_cv_safe_to_define___extensions__=yes ac_cv_search_opendir='none required' ac_cv_should_define__xopen_source=no ac_cv_sizeof_int=4 ac_cv_sizeof_long=4 ac_cv_sizeof_wchar_t=4 ac_cv_sys_file_offset_bits=no ac_cv_sys_largefile_CC=no ac_cv_sys_largefile_source=no ac_cv_type_id_t=yes ac_cv_type_intmax_t=yes ac_cv_type_localtime_s=no ac_cv_type_long_long_int=yes ac_cv_type_mode_t=yes ac_cv_type_off_t=yes ac_cv_type_size_t=yes ac_cv_type_struct_statfs=no ac_cv_type_struct_vfsconf=no ac_cv_type_struct_xvfsconf=no ac_cv_type_uintmax_t=yes ac_cv_type_uintptr_t=yes ac_cv_type_unsigned_long_long=yes ac_cv_type_unsigned_long_long_int=yes ac_cv_type_wchar_t=yes acl_cv_hardcode_direct=no acl_cv_hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' acl_cv_hardcode_libdir_separator= acl_cv_hardcode_minus_L=no acl_cv_libext=a acl_cv_libname_spec='lib$name' acl_cv_library_names_spec='$libname$shrext' acl_cv_path_LD=/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-ld acl_cv_prog_gnu_ld=yes acl_cv_rpath=done acl_cv_shlibext=so acl_cv_wl=-Wl, am_cv_CC_dependencies_compiler_type=none am_cv_func_iconv=yes am_cv_func_iconv_works='guessing yes' am_cv_lib_iconv=no am_cv_make_support_nested_variables=yes am_cv_prog_cc_c_o=yes am_cv_proto_iconv='extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);' am_cv_proto_iconv_arg1= ax_cv_check_cflags___Wall=yes ax_cv_check_cflags___Wformat=yes ax_cv_check_cflags___Wformat_security=yes ax_cv_check_cflags___fdata_sections=yes ax_cv_check_cflags___ffunction_sections=yes gl_cv_func_malloc_0_nonnull=yes la_cv_type_uid_t=yes lt_cv_ar_at_file=@ lt_cv_archive_cmds_need_lc=no lt_cv_deplibs_check_method=pass_all lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_ld_reload_flag=-r lt_cv_nm_interface='BSD nm' lt_cv_objdir=.libs lt_cv_path_LD=/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-ld lt_cv_path_NM=/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-nm lt_cv_path_mainfest_tool=no lt_cv_prog_compiler_c_o=yes lt_cv_prog_compiler_pic='-fPIC -DPIC' lt_cv_prog_compiler_pic_works=yes lt_cv_prog_compiler_rtti_exceptions=no lt_cv_prog_compiler_static_works=yes lt_cv_prog_gnu_ld=yes lt_cv_sharedlib_from_linklib_cmd='printf %s\n' lt_cv_shlibpath_overrides_runpath=no lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\''' lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"\1", (void *) \&\1},/p'\''' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/ {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"lib\1", (void *) \&\1},/p'\''' lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\''' lt_cv_sys_global_symbol_to_import= lt_cv_sys_lib_search_path_spec= lt_cv_sys_max_cmd_len=1572864 lt_cv_to_host_file_cmd=func_convert_file_noop lt_cv_to_tool_file_cmd=func_convert_file_noop lt_cv_truncate_bin='/usr/bin/dd bs=4096 count=1' ## ----------------- ## ## Output variables. ## ## ----------------- ## ACLOCAL='${SHELL} '\''/home/thomas/autobuild/instance-3/output-1/build/libarchive-3.7.2/build/autoconf/missing'\'' aclocal-1.16' AMDEPBACKSLASH='' AMDEP_FALSE='' AMDEP_TRUE='#' AMTAR='$${TAR-tar}' AM_BACKSLASH='\' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' AM_DEFAULT_VERBOSITY='0' AM_V='$(V)' AR='/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-ar' ARCHIVE_LIBTOOL_VERSION='20:2:7' AS='/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-as' AUTOCONF='${SHELL} '\''/home/thomas/autobuild/instance-3/output-1/build/libarchive-3.7.2/build/autoconf/missing'\'' autoconf' AUTOHEADER='${SHELL} '\''/home/thomas/autobuild/instance-3/output-1/build/libarchive-3.7.2/build/autoconf/missing'\'' autoheader' AUTOMAKE='${SHELL} '\''/home/thomas/autobuild/instance-3/output-1/build/libarchive-3.7.2/build/autoconf/missing'\'' automake-1.16' AWK='gawk' BSDCAT_VERSION_STRING='3.7.2' BSDCPIO_VERSION_STRING='3.7.2' BSDTAR_VERSION_STRING='3.7.2' BSDUNZIP_VERSION_STRING='3.7.2' BUILD_BSDCAT_FALSE='' BUILD_BSDCAT_TRUE='#' BUILD_BSDCPIO_FALSE='' BUILD_BSDCPIO_TRUE='#' BUILD_BSDTAR_FALSE='' BUILD_BSDTAR_TRUE='#' BUILD_BSDUNZIP_FALSE='#' BUILD_BSDUNZIP_TRUE='' CC='/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc -std=gnu11' CCDEPMODE='depmode=none' CFLAGS='-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Ofast -g0 -D_FORTIFY_SOURCE=1 -Wall -Wformat -Wformat-security -ffunction-sections -fdata-sections -fvisibility=hidden -D__LIBARCHIVE_ENABLE_VISIBILITY' CPP='/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-cpp' CPPFLAGS='-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' CSCOPE='cscope' CTAGS='ctags' CYGPATH_W='echo' DEFS='-DHAVE_CONFIG_H' DEPDIR='.deps' DLLTOOL='dlltool' DSYMUTIL='' DUMPBIN='' ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='/usr/bin/grep -E' ETAGS='etags' EXEEXT='' FGREP='/usr/bin/grep -F' GC_SECTIONS='-Wl,--gc-sections' GREP='/usr/bin/grep' INC_BLAKE2_FALSE='#' INC_BLAKE2_TRUE='' INC_CYGWIN_FILES_FALSE='' INC_CYGWIN_FILES_TRUE='#' INC_DARWIN_ACL_FALSE='' INC_DARWIN_ACL_TRUE='#' INC_FREEBSD_ACL_FALSE='' INC_FREEBSD_ACL_TRUE='#' INC_LINUX_ACL_FALSE='' INC_LINUX_ACL_TRUE='#' INC_SUNOS_ACL_FALSE='' INC_SUNOS_ACL_TRUE='#' INC_WINDOWS_FILES_FALSE='' INC_WINDOWS_FILES_TRUE='#' INSTALL_DATA='${INSTALL} -m 644' INSTALL_PROGRAM='${INSTALL}' INSTALL_SCRIPT='${INSTALL}' INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' LD='/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-ld' LDFLAGS='' LIBARCHIVE_VERSION_NUMBER='3007002' LIBARCHIVE_VERSION_STRING='3.7.2' LIBICONV='' LIBOBJS=' ${LIBOBJDIR}lstat$U.o ${LIBOBJDIR}stat$U.o' LIBS='-lexpat -llz4 -lz ' LIBSREQUIRED='' LIBTOOL='$(SHELL) $(top_builddir)/libtool' LIBXML2_PC_CFLAGS='' LIBXML2_PC_LIBS='' LIPO='' LN_S='ln -s' LTLIBICONV='' LTLIBOBJS=' ${LIBOBJDIR}lstat$U.lo ${LIBOBJDIR}stat$U.lo' LT_SYS_LIBRARY_PATH='' MAINT='' MAINTAINER_MODE_FALSE='#' MAINTAINER_MODE_TRUE='' MAKEINFO='${SHELL} '\''/home/thomas/autobuild/instance-3/output-1/build/libarchive-3.7.2/build/autoconf/missing'\'' makeinfo' MANIFEST_TOOL=':' MKDIR_P='/usr/bin/mkdir -p' NM='/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-nm' NMEDIT='' OBJDUMP='/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-objdump' OBJEXT='o' OTOOL64='' OTOOL='' PACKAGE='libarchive' PACKAGE_BUGREPORT='libarchive-discuss@googlegroups.com' PACKAGE_NAME='libarchive' PACKAGE_STRING='libarchive 3.7.2' PACKAGE_TARNAME='libarchive' PACKAGE_URL='' PACKAGE_VERSION='3.7.2' PATH_SEPARATOR=':' PKG_CONFIG='/home/thomas/autobuild/instance-3/output-1/host/bin/pkg-config' PKG_CONFIG_LIBDIR='' PKG_CONFIG_PATH='' PLATFORMCPPFLAGS='' RANLIB='/home/thomas/autobuild/instance-3/output-1/host/bin/arm-none-linux-gnueabi-gcc-ranlib' SED='/usr/bin/sed' SET_MAKE='' SHELL='/bin/bash' STATIC_BSDCAT_FALSE='' STATIC_BSDCAT_TRUE='#' STATIC_BSDCPIO_FALSE='' STATIC_BSDCPIO_TRUE='#' STATIC_BSDTAR_FALSE='' STATIC_BSDTAR_TRUE='#' STATIC_BSDUNZIP_FALSE='#' STATIC_BSDUNZIP_TRUE='' STRIP='/bin/true' VERSION='3.7.2' ac_ct_AR='' ac_ct_CC='' ac_ct_DUMPBIN='' am__EXEEXT_FALSE='' am__EXEEXT_TRUE='#' am__fastdepCC_FALSE='' am__fastdepCC_TRUE='#' am__include='include' am__isrc='' am__leading_dot='.' am__nodep='' am__quote='' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' bindir='${exec_prefix}/bin' build='x86_64-pc-linux-gnu' build_alias='x86_64-pc-linux-gnu' build_cpu='x86_64' build_os='linux-gnu' build_vendor='pc' datadir='${datarootdir}' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' dvidir='${docdir}' exec_prefix='/usr' host='arm-buildroot-linux-gnueabi' host_alias='arm-buildroot-linux-gnueabi' host_cpu='arm' host_os='linux-gnueabi' host_vendor='buildroot' htmldir='${docdir}' includedir='${prefix}/include' infodir='${datarootdir}/info' install_sh='${SHELL} /home/thomas/autobuild/instance-3/output-1/build/libarchive-3.7.2/build/autoconf/install-sh' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='/var' mandir='${datarootdir}/man' mkdir_p='$(MKDIR_P)' oldincludedir='/usr/include' pdfdir='${docdir}' prefix='/usr' program_transform_name='s&^&&' psdir='${docdir}' runstatedir='${localstatedir}/run' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' sysconfdir='/etc' target_alias='arm-buildroot-linux-gnueabi' ## ----------- ## ## confdefs.h. ## ## ----------- ## /* confdefs.h */ #define PACKAGE_NAME "libarchive" #define PACKAGE_TARNAME "libarchive" #define PACKAGE_VERSION "3.7.2" #define PACKAGE_STRING "libarchive 3.7.2" #define PACKAGE_BUGREPORT "libarchive-discuss@googlegroups.com" #define PACKAGE_URL "" #define PACKAGE "libarchive" #define VERSION "3.7.2" #define __LIBARCHIVE_CONFIG_H_INCLUDED 1 #define LIBARCHIVE_VERSION_STRING "3.7.2" #define LIBARCHIVE_VERSION_NUMBER "3007002" #define BSDCPIO_VERSION_STRING "3.7.2" #define BSDTAR_VERSION_STRING "3.7.2" #define BSDCAT_VERSION_STRING "3.7.2" #define BSDUNZIP_VERSION_STRING "3.7.2" #define HAVE_STDIO_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_STDINT_H 1 #define HAVE_STRINGS_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_UNISTD_H 1 #define HAVE_WCHAR_H 1 #define HAVE_SYS_TIME_H 1 #define STDC_HEADERS 1 #define _ALL_SOURCE 1 #define _DARWIN_C_SOURCE 1 #define _GNU_SOURCE 1 #define _HPUX_ALT_XOPEN_SOCKET_API 1 #define _NETBSD_SOURCE 1 #define _OPENBSD_SOURCE 1 #define _POSIX_PTHREAD_SEMANTICS 1 #define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 #define __STDC_WANT_IEC_60559_DFP_EXT__ 1 #define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 #define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 #define __STDC_WANT_LIB_EXT2__ 1 #define __STDC_WANT_MATH_SPEC_FUNCS__ 1 #define _TANDEM_SOURCE 1 #define __EXTENSIONS__ 1 #define HAVE_DLFCN_H 1 #define LT_OBJDIR ".libs/" #define HAVE_DIRENT_H 1 #define HAVE_SYS_WAIT_H 1 #define HAVE_CTYPE_H 1 #define HAVE_ERRNO_H 1 #define HAVE_FCNTL_H 1 #define HAVE_FNMATCH_H 1 #define HAVE_GRP_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_LANGINFO_H 1 #define HAVE_LIMITS_H 1 #define HAVE_LINUX_FIEMAP_H 1 #define HAVE_LINUX_FS_H 1 #define HAVE_LINUX_MAGIC_H 1 #define HAVE_LINUX_TYPES_H 1 #define HAVE_WORKING_FS_IOC_GETFLAGS 1 #define HAVE_LOCALE_H 1 #define HAVE_PATHS_H 1 #define HAVE_POLL_H 1 #define HAVE_PTHREAD_H 1 #define HAVE_PWD_H 1 #define HAVE_SIGNAL_H 1 #define HAVE_SPAWN_H 1 #define HAVE_STDARG_H 1 #define HAVE_STDINT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_SYS_CDEFS_H 1 #define HAVE_SYS_IOCTL_H 1 #define HAVE_SYS_MOUNT_H 1 #define HAVE_SYS_QUEUE_H 1 #define HAVE_SYS_PARAM_H 1 #define HAVE_SYS_POLL_H 1 #define HAVE_SYS_SELECT_H 1 #define HAVE_SYS_STATFS_H 1 #define HAVE_SYS_STATVFS_H 1 #define HAVE_SYS_SYSMACROS_H 1 #define HAVE_SYS_TIME_H 1 #define HAVE_SYS_UTSNAME_H 1 #define HAVE_SYS_VFS_H 1 #define HAVE_SYS_XATTR_H 1 #define HAVE_TIME_H 1 #define HAVE_UNISTD_H 1 #define HAVE_UTIME_H 1 #define HAVE_WCHAR_H 1 #define HAVE_WCTYPE_H 1 #define HAVE_ZLIB_H 1 #define HAVE_LIBZ 1 #define HAVE_ICONV 1 #define ICONV_CONST #define HAVE_ICONV_H 1 #define HAVE_LZ4_H 1 #define HAVE_LZ4HC_H 1 #define HAVE_LIBLZ4 1 #define HAVE_EXPAT_H 1 #define HAVE_LIBEXPAT 1 #define HAVE_REGEX_H 1 #define HAVE_STRUCT_TM_TM_GMTOFF 1 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 #define HAVE_UINTMAX_T 1 #define HAVE_UNSIGNED_LONG_LONG 1 #define HAVE_UNSIGNED_LONG_LONG_INT 1 #define HAVE_LONG_LONG_INT 1 #define HAVE_INTMAX_T 1 #define HAVE_UINTMAX_T 1 #define HAVE_DECL_SIZE_MAX 1 #define HAVE_DECL_INT32_MAX 1 #define HAVE_DECL_INT32_MIN 1 #define HAVE_DECL_INT64_MAX 1 #define HAVE_DECL_INT64_MIN 1 #define HAVE_DECL_UINT64_MAX 1 #define HAVE_DECL_UINT32_MAX 1 #define HAVE_DECL_INTMAX_MAX 1 #define HAVE_DECL_INTMAX_MIN 1 #define HAVE_DECL_UINTMAX_MAX 1 #define HAVE_DECL_SSIZE_MAX 1 #define HAVE_EILSEQ 1 #define HAVE_WCHAR_T 1 #define SIZEOF_WCHAR_T 4 #define SIZEOF_INT 4 #define SIZEOF_LONG 4 #define MAJOR_IN_SYSMACROS 1 #define HAVE_FSEEKO 1 #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 #define HAVE_LSTAT_EMPTY_STRING_BUG 1 #define HAVE_STAT_EMPTY_STRING_BUG 1 #define HAVE_DECL_STRERROR_R 1 #define HAVE_STRERROR_R 1 #define STRERROR_R_CHAR_P 1 #define HAVE_STRFTIME 1 #define HAVE_VPRINTF 1 #define HAVE_CHOWN 1 #define HAVE_CHROOT 1 #define HAVE_CTIME_R 1 #define HAVE_FCHDIR 1 #define HAVE_FCHMOD 1 #define HAVE_FCHOWN 1 #define HAVE_FCNTL 1 #define HAVE_FDOPENDIR 1 #define HAVE_FNMATCH 1 #define HAVE_FORK 1 #define HAVE_FSTAT 1 #define HAVE_FSTATAT 1 #define HAVE_FSTATFS 1 #define HAVE_FSTATVFS 1 #define HAVE_FTRUNCATE 1 #define HAVE_FUTIMENS 1 #define HAVE_FUTIMES 1 #define HAVE_FUTIMESAT 1 #define HAVE_GETEUID 1 #define HAVE_GETLINE 1 #define HAVE_GETPID 1 #define HAVE_GETGRGID_R 1 #define HAVE_GETGRNAM_R 1 #define HAVE_GETPWNAM_R 1 #define HAVE_GETPWUID_R 1 #define HAVE_GMTIME_R 1 #define HAVE_LCHOWN 1 #define HAVE_LINK 1 #define HAVE_LINKAT 1 #define HAVE_LOCALTIME_R 1 #define HAVE_LSTAT 1 #define HAVE_LUTIMES 1 #define HAVE_MBRTOWC 1 #define HAVE_MEMMOVE 1 #define HAVE_MEMSET 1 #define HAVE_MKDIR 1 #define HAVE_MKFIFO 1 #define HAVE_MKNOD 1 #define HAVE_MKSTEMP 1 #define HAVE_NL_LANGINFO 1 #define HAVE_OPENAT 1 #define HAVE_PIPE 1 #define HAVE_POLL 1 #define HAVE_POSIX_SPAWNP 1 #define HAVE_READLINK 1 #define HAVE_READLINKAT 1 #define HAVE_SELECT 1 #define HAVE_SETENV 1 #define HAVE_SETLOCALE 1 #define HAVE_SIGACTION 1 #define HAVE_STATFS 1 #define HAVE_STATVFS 1 #define HAVE_STRCHR 1 #define HAVE_STRDUP 1 #define HAVE_STRERROR 1 #define HAVE_STRNLEN 1 #define HAVE_STRRCHR 1 #define HAVE_SYMLINK 1 #define HAVE_TIMEGM 1 #define HAVE_TZSET 1 #define HAVE_UNLINKAT 1 #define HAVE_UNSETENV 1 #define HAVE_UTIME 1 #define HAVE_UTIMENSAT 1 #define HAVE_UTIMES 1 #define HAVE_VFORK 1 #define HAVE_WCRTOMB 1 #define HAVE_WCSCMP 1 #define HAVE_WCSCPY 1 #define HAVE_WCSLEN 1 #define HAVE_WCTOMB 1 #define HAVE_WMEMCMP 1 #define HAVE_WMEMCPY 1 #define HAVE_WMEMMOVE 1 #define HAVE_READDIR_R 1 #define HAVE_DIRFD 1 configure: exit 0