Import Apache apr-1.4.8 to vendor staging area.
This commit is contained in:
parent
b641829dca
commit
f2be5817e9
66
CHANGES
66
CHANGES
@ -1,11 +1,73 @@
|
|||||||
-*- coding: utf-8 -*-
|
-*- coding: utf-8 -*-
|
||||||
|
Changes for APR 1.4.8
|
||||||
|
|
||||||
|
*) Fix compiltation with FreeBSD on ARM. [Olli Hauer <ohauer gmx.de>]
|
||||||
|
|
||||||
|
*) Fix 1.4.7 regression in apr_mcast_hops() and apr_mcast_loopback()
|
||||||
|
for AF_INET (IPv4) sockets on most Unix platforms. [Joe Orton]
|
||||||
|
|
||||||
|
*) Fix the return value of apr_threadattr_detach_get() on some
|
||||||
|
platforms like OS X and Solaris. [Rainer Jung, <dusanv gmail com>]
|
||||||
|
|
||||||
|
Changes for APR 1.4.7
|
||||||
|
|
||||||
|
*) Fix apr_sockaddr_info_get() not returning an error in some cases.
|
||||||
|
PR 54779. [Jan Kaluža <jkaluza redhat com>]
|
||||||
|
|
||||||
|
*) Fix amd64 assembler version of apr_atomic_xchgptr(). PR 51851. [Mattias
|
||||||
|
Engdegård <mattiase acm org>]
|
||||||
|
|
||||||
|
*) Fix PPC atomics to work with gcc 4.0. PR 54840. [Mattias Engdegård
|
||||||
|
<mattiase acm org>]
|
||||||
|
|
||||||
|
*) configure: Fix detection of O_NONBLOCK inheritance on busy
|
||||||
|
systems. [Rainer Jung]
|
||||||
|
|
||||||
|
*) Remove unused code, fix strict C compliance bug in SHA-256
|
||||||
|
implementation. [Jan Kaluza <jkaluza redhat.com>]
|
||||||
|
|
||||||
|
*) Fix apr_ipsubnet_test() false positives when comparing IPv4
|
||||||
|
subnet representation against an IPv6 address. PR 54047. [Joe Orton]
|
||||||
|
|
||||||
|
*) apr_socket_accept_filter: Return success when trying to again set
|
||||||
|
the filter to the same value as before, avoiding an unhelpful
|
||||||
|
APR_EINVAL. PR 37863. [Jeff Trawick]
|
||||||
|
|
||||||
|
*) configure: Fix Linux 3.x detection. PR 54001. [Gilles Espinasse
|
||||||
|
<g esp free fr>]
|
||||||
|
|
||||||
|
*) apr_time_exp_*() on Windows: Fix error in the tm_yday field of
|
||||||
|
apr_time_exp_t for times within leap years. PR 53175.
|
||||||
|
[Jeff Trawick]
|
||||||
|
|
||||||
|
*) Improve platform detection by updating config.guess and config.sub.
|
||||||
|
[Rainer Jung]
|
||||||
|
|
||||||
|
*) Add support for OSX Mountain Lion (10.8) [Jim Jagielski]
|
||||||
|
|
||||||
|
*) Add various gcc function attributes. [Stefan Fritsch]
|
||||||
|
|
||||||
|
*) Fix some problems in apr_sockaddr_info_get() when trying to resolve
|
||||||
|
the loopback addresses of a protocol family that is not otherwise
|
||||||
|
configured on the system. PR 52709. [Nirgal Vourgère
|
||||||
|
<jmv_deb nirgal com>, Stefan Fritsch]
|
||||||
|
|
||||||
|
*) Fix file not being unlocked if truncate call on a file fails.
|
||||||
|
[Mladen Turk]
|
||||||
|
|
||||||
|
*) apr_mcast_hops: Fix EINVAL for IPv6 sockets caused by using byte
|
||||||
|
instead integer for setsockopt. [Mladen Turk]
|
||||||
|
|
||||||
|
*) Windows: Fix compile-time checks for 64-bit builds, resolving a
|
||||||
|
crash in httpd's mod_rewrite. PR 49155. [<anindyabaruah gmail.com>]
|
||||||
|
|
||||||
Changes for APR 1.4.6
|
Changes for APR 1.4.6
|
||||||
|
|
||||||
*) Flush write buffer before truncate call on a file.
|
*) Flush write buffer before truncate call on a file.
|
||||||
[Mladen Turk]
|
[Mladen Turk]
|
||||||
|
|
||||||
*) Security: oCERT-2011-003
|
*) Randomise hashes by providing a seed.
|
||||||
Randomise hashes by providing a seed.
|
Assigned CVE-2012-0840, oCERT-2011-003, but not known to be exploitable.
|
||||||
[Bojan Smojver, Branko Čibej, Ruediger Pluem et al.]
|
[Bojan Smojver, Branko Čibej, Ruediger Pluem et al.]
|
||||||
|
|
||||||
*) apr_random: Prevent segfault if pool used to initialize apr_random is
|
*) apr_random: Prevent segfault if pool used to initialize apr_random is
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#
|
#
|
||||||
# For example;
|
# For example;
|
||||||
#
|
#
|
||||||
# nmake -f Makefile.win PREFIX=C:\APR buildall checkall installall clean
|
# nmake -f Makefile.win PREFIX=C:\APR buildall checkall install clean
|
||||||
#
|
#
|
||||||
|
|
||||||
!IF EXIST("apr.sln") && ([devenv /help > NUL 2>&1] == 0) \
|
!IF EXIST("apr.sln") && ([devenv /help > NUL 2>&1] == 0) \
|
||||||
|
2
apr.spec
2
apr.spec
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
Summary: Apache Portable Runtime library
|
Summary: Apache Portable Runtime library
|
||||||
Name: apr
|
Name: apr
|
||||||
Version: 1.4.6
|
Version: 1.4.8
|
||||||
Release: 1
|
Release: 1
|
||||||
License: Apache Software License
|
License: Apache Software License
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
|
@ -117,7 +117,7 @@ APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem, void *with)
|
|||||||
#elif APR_SIZEOF_VOIDP == 8
|
#elif APR_SIZEOF_VOIDP == 8
|
||||||
asm volatile ("xchgq %q2, %1"
|
asm volatile ("xchgq %q2, %1"
|
||||||
: "=a" (prev), "+m" (*mem)
|
: "=a" (prev), "+m" (*mem)
|
||||||
: "r" ((unsigned long)with));
|
: "0" (with));
|
||||||
#else
|
#else
|
||||||
#error APR_SIZEOF_VOIDP value not supported
|
#error APR_SIZEOF_VOIDP value not supported
|
||||||
#endif
|
#endif
|
||||||
|
@ -43,12 +43,12 @@ APR_DECLARE(apr_uint32_t) apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint3
|
|||||||
{
|
{
|
||||||
apr_uint32_t prev, temp;
|
apr_uint32_t prev, temp;
|
||||||
|
|
||||||
asm volatile ("loop_%=:\n" /* lost reservation */
|
asm volatile ("1:\n" /* lost reservation */
|
||||||
" lwarx %0,0,%3\n" /* load and reserve */
|
" lwarx %0,0,%3\n" /* load and reserve */
|
||||||
" add %1,%0,%4\n" /* add val and prev */
|
" add %1,%0,%4\n" /* add val and prev */
|
||||||
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
||||||
" stwcx. %1,0,%3\n" /* store new value */
|
" stwcx. %1,0,%3\n" /* store new value */
|
||||||
" bne- loop_%=\n" /* loop if lost */
|
" bne- 1b\n" /* loop if lost */
|
||||||
: "=&r" (prev), "=&r" (temp), "=m" (*mem)
|
: "=&r" (prev), "=&r" (temp), "=m" (*mem)
|
||||||
: "b" (mem), "r" (val)
|
: "b" (mem), "r" (val)
|
||||||
: "cc", "memory");
|
: "cc", "memory");
|
||||||
@ -60,12 +60,12 @@ APR_DECLARE(void) apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
|
|||||||
{
|
{
|
||||||
apr_uint32_t temp;
|
apr_uint32_t temp;
|
||||||
|
|
||||||
asm volatile ("loop_%=:\n" /* lost reservation */
|
asm volatile ("1:\n" /* lost reservation */
|
||||||
" lwarx %0,0,%2\n" /* load and reserve */
|
" lwarx %0,0,%2\n" /* load and reserve */
|
||||||
" subf %0,%3,%0\n" /* subtract val */
|
" subf %0,%3,%0\n" /* subtract val */
|
||||||
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
||||||
" stwcx. %0,0,%2\n" /* store new value */
|
" stwcx. %0,0,%2\n" /* store new value */
|
||||||
" bne- loop_%=\n" /* loop if lost */
|
" bne- 1b\n" /* loop if lost */
|
||||||
: "=&r" (temp), "=m" (*mem)
|
: "=&r" (temp), "=m" (*mem)
|
||||||
: "b" (mem), "r" (val)
|
: "b" (mem), "r" (val)
|
||||||
: "cc", "memory");
|
: "cc", "memory");
|
||||||
@ -75,12 +75,12 @@ APR_DECLARE(apr_uint32_t) apr_atomic_inc32(volatile apr_uint32_t *mem)
|
|||||||
{
|
{
|
||||||
apr_uint32_t prev;
|
apr_uint32_t prev;
|
||||||
|
|
||||||
asm volatile ("loop_%=:\n" /* lost reservation */
|
asm volatile ("1:\n" /* lost reservation */
|
||||||
" lwarx %0,0,%2\n" /* load and reserve */
|
" lwarx %0,0,%2\n" /* load and reserve */
|
||||||
" addi %0,%0,1\n" /* add immediate */
|
" addi %0,%0,1\n" /* add immediate */
|
||||||
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
||||||
" stwcx. %0,0,%2\n" /* store new value */
|
" stwcx. %0,0,%2\n" /* store new value */
|
||||||
" bne- loop_%=\n" /* loop if lost */
|
" bne- 1b\n" /* loop if lost */
|
||||||
" subi %0,%0,1\n" /* return old value */
|
" subi %0,%0,1\n" /* return old value */
|
||||||
: "=&b" (prev), "=m" (*mem)
|
: "=&b" (prev), "=m" (*mem)
|
||||||
: "b" (mem), "m" (*mem)
|
: "b" (mem), "m" (*mem)
|
||||||
@ -93,12 +93,12 @@ APR_DECLARE(int) apr_atomic_dec32(volatile apr_uint32_t *mem)
|
|||||||
{
|
{
|
||||||
apr_uint32_t prev;
|
apr_uint32_t prev;
|
||||||
|
|
||||||
asm volatile ("loop_%=:\n" /* lost reservation */
|
asm volatile ("1:\n" /* lost reservation */
|
||||||
" lwarx %0,0,%2\n" /* load and reserve */
|
" lwarx %0,0,%2\n" /* load and reserve */
|
||||||
" subi %0,%0,1\n" /* subtract immediate */
|
" subi %0,%0,1\n" /* subtract immediate */
|
||||||
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
||||||
" stwcx. %0,0,%2\n" /* store new value */
|
" stwcx. %0,0,%2\n" /* store new value */
|
||||||
" bne- loop_%=\n" /* loop if lost */
|
" bne- 1b\n" /* loop if lost */
|
||||||
: "=&b" (prev), "=m" (*mem)
|
: "=&b" (prev), "=m" (*mem)
|
||||||
: "b" (mem), "m" (*mem)
|
: "b" (mem), "m" (*mem)
|
||||||
: "cc", "memory");
|
: "cc", "memory");
|
||||||
@ -111,13 +111,13 @@ APR_DECLARE(apr_uint32_t) apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint3
|
|||||||
{
|
{
|
||||||
apr_uint32_t prev;
|
apr_uint32_t prev;
|
||||||
|
|
||||||
asm volatile ("loop_%=:\n" /* lost reservation */
|
asm volatile ("1:\n" /* lost reservation */
|
||||||
" lwarx %0,0,%1\n" /* load and reserve */
|
" lwarx %0,0,%1\n" /* load and reserve */
|
||||||
" cmpw %0,%3\n" /* compare operands */
|
" cmpw %0,%3\n" /* compare operands */
|
||||||
" bne- exit_%=\n" /* skip if not equal */
|
" bne- exit_%=\n" /* skip if not equal */
|
||||||
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
||||||
" stwcx. %2,0,%1\n" /* store new value */
|
" stwcx. %2,0,%1\n" /* store new value */
|
||||||
" bne- loop_%=\n" /* loop if lost */
|
" bne- 1b\n" /* loop if lost */
|
||||||
"exit_%=:\n" /* not equal */
|
"exit_%=:\n" /* not equal */
|
||||||
: "=&r" (prev)
|
: "=&r" (prev)
|
||||||
: "b" (mem), "r" (with), "r" (cmp)
|
: "b" (mem), "r" (with), "r" (cmp)
|
||||||
@ -130,11 +130,11 @@ APR_DECLARE(apr_uint32_t) apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint
|
|||||||
{
|
{
|
||||||
apr_uint32_t prev;
|
apr_uint32_t prev;
|
||||||
|
|
||||||
asm volatile ("loop_%=:\n" /* lost reservation */
|
asm volatile ("1:\n" /* lost reservation */
|
||||||
" lwarx %0,0,%1\n" /* load and reserve */
|
" lwarx %0,0,%1\n" /* load and reserve */
|
||||||
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
||||||
" stwcx. %2,0,%1\n" /* store new value */
|
" stwcx. %2,0,%1\n" /* store new value */
|
||||||
" bne- loop_%=" /* loop if lost */
|
" bne- 1b" /* loop if lost */
|
||||||
: "=&r" (prev)
|
: "=&r" (prev)
|
||||||
: "b" (mem), "r" (val)
|
: "b" (mem), "r" (val)
|
||||||
: "cc", "memory");
|
: "cc", "memory");
|
||||||
@ -146,26 +146,26 @@ APR_DECLARE(void*) apr_atomic_casptr(volatile void **mem, void *with, const void
|
|||||||
{
|
{
|
||||||
void *prev;
|
void *prev;
|
||||||
#if APR_SIZEOF_VOIDP == 4
|
#if APR_SIZEOF_VOIDP == 4
|
||||||
asm volatile ("loop_%=:\n" /* lost reservation */
|
asm volatile ("1:\n" /* lost reservation */
|
||||||
" lwarx %0,0,%1\n" /* load and reserve */
|
" lwarx %0,0,%1\n" /* load and reserve */
|
||||||
" cmpw %0,%3\n" /* compare operands */
|
" cmpw %0,%3\n" /* compare operands */
|
||||||
" bne- exit_%=\n" /* skip if not equal */
|
" bne- 2f\n" /* skip if not equal */
|
||||||
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
||||||
" stwcx. %2,0,%1\n" /* store new value */
|
" stwcx. %2,0,%1\n" /* store new value */
|
||||||
" bne- loop_%=\n" /* loop if lost */
|
" bne- 1b\n" /* loop if lost */
|
||||||
"exit_%=:\n" /* not equal */
|
"2:\n" /* not equal */
|
||||||
: "=&r" (prev)
|
: "=&r" (prev)
|
||||||
: "b" (mem), "r" (with), "r" (cmp)
|
: "b" (mem), "r" (with), "r" (cmp)
|
||||||
: "cc", "memory");
|
: "cc", "memory");
|
||||||
#elif APR_SIZEOF_VOIDP == 8
|
#elif APR_SIZEOF_VOIDP == 8
|
||||||
asm volatile ("loop_%=:\n" /* lost reservation */
|
asm volatile ("1:\n" /* lost reservation */
|
||||||
" ldarx %0,0,%1\n" /* load and reserve */
|
" ldarx %0,0,%1\n" /* load and reserve */
|
||||||
" cmpd %0,%3\n" /* compare operands */
|
" cmpd %0,%3\n" /* compare operands */
|
||||||
" bne- exit_%=\n" /* skip if not equal */
|
" bne- 2f\n" /* skip if not equal */
|
||||||
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
||||||
" stdcx. %2,0,%1\n" /* store new value */
|
" stdcx. %2,0,%1\n" /* store new value */
|
||||||
" bne- loop_%=\n" /* loop if lost */
|
" bne- 1b\n" /* loop if lost */
|
||||||
"exit_%=:\n" /* not equal */
|
"2:\n" /* not equal */
|
||||||
: "=&r" (prev)
|
: "=&r" (prev)
|
||||||
: "b" (mem), "r" (with), "r" (cmp)
|
: "b" (mem), "r" (with), "r" (cmp)
|
||||||
: "cc", "memory");
|
: "cc", "memory");
|
||||||
@ -179,21 +179,21 @@ APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem, void *with)
|
|||||||
{
|
{
|
||||||
void *prev;
|
void *prev;
|
||||||
#if APR_SIZEOF_VOIDP == 4
|
#if APR_SIZEOF_VOIDP == 4
|
||||||
asm volatile ("loop_%=:\n" /* lost reservation */
|
asm volatile ("1:\n" /* lost reservation */
|
||||||
" lwarx %0,0,%1\n" /* load and reserve */
|
" lwarx %0,0,%1\n" /* load and reserve */
|
||||||
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
||||||
" stwcx. %2,0,%1\n" /* store new value */
|
" stwcx. %2,0,%1\n" /* store new value */
|
||||||
" bne- loop_%=\n" /* loop if lost */
|
" bne- 1b\n" /* loop if lost */
|
||||||
" isync\n" /* memory barrier */
|
" isync\n" /* memory barrier */
|
||||||
: "=&r" (prev)
|
: "=&r" (prev)
|
||||||
: "b" (mem), "r" (with)
|
: "b" (mem), "r" (with)
|
||||||
: "cc", "memory");
|
: "cc", "memory");
|
||||||
#elif APR_SIZEOF_VOIDP == 8
|
#elif APR_SIZEOF_VOIDP == 8
|
||||||
asm volatile ("loop_%=:\n" /* lost reservation */
|
asm volatile ("1:\n" /* lost reservation */
|
||||||
" ldarx %0,0,%1\n" /* load and reserve */
|
" ldarx %0,0,%1\n" /* load and reserve */
|
||||||
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
|
||||||
" stdcx. %2,0,%1\n" /* store new value */
|
" stdcx. %2,0,%1\n" /* store new value */
|
||||||
" bne- loop_%=\n" /* loop if lost */
|
" bne- 1b\n" /* loop if lost */
|
||||||
" isync\n" /* memory barrier */
|
" isync\n" /* memory barrier */
|
||||||
: "=&r" (prev)
|
: "=&r" (prev)
|
||||||
: "b" (mem), "r" (with)
|
: "b" (mem), "r" (with)
|
||||||
|
435
configure
vendored
435
configure
vendored
@ -1,11 +1,9 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.68.
|
# Generated by GNU Autoconf 2.69.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||||
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
|
|
||||||
# Foundation, Inc.
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# This configure script is free software; the Free Software Foundation
|
# This configure script is free software; the Free Software Foundation
|
||||||
@ -134,6 +132,31 @@ export LANGUAGE
|
|||||||
# CDPATH.
|
# CDPATH.
|
||||||
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
|
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
|
||||||
|
|
||||||
|
# Use a proper internal environment variable to ensure we don't fall
|
||||||
|
# into an infinite loop, continuously re-executing ourselves.
|
||||||
|
if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
|
||||||
|
_as_can_reexec=no; export _as_can_reexec;
|
||||||
|
# We cannot yet assume a decent shell, so we have to provide a
|
||||||
|
# neutralization value for shells without unset; and this also
|
||||||
|
# works around shells that cannot unset nonexistent variables.
|
||||||
|
# Preserve -v and -x to the replacement shell.
|
||||||
|
BASH_ENV=/dev/null
|
||||||
|
ENV=/dev/null
|
||||||
|
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
|
||||||
|
case $- in # ((((
|
||||||
|
*v*x* | *x*v* ) as_opts=-vx ;;
|
||||||
|
*v* ) as_opts=-v ;;
|
||||||
|
*x* ) as_opts=-x ;;
|
||||||
|
* ) as_opts= ;;
|
||||||
|
esac
|
||||||
|
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
|
||||||
|
# Admittedly, this is quite paranoid, since all the known shells bail
|
||||||
|
# out after a failed `exec'.
|
||||||
|
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
|
||||||
|
as_fn_exit 255
|
||||||
|
fi
|
||||||
|
# We don't want this to propagate to other subprocesses.
|
||||||
|
{ _as_can_reexec=; unset _as_can_reexec;}
|
||||||
if test "x$CONFIG_SHELL" = x; then
|
if test "x$CONFIG_SHELL" = x; then
|
||||||
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
|
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
|
||||||
emulate sh
|
emulate sh
|
||||||
@ -167,7 +190,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
|
|||||||
else
|
else
|
||||||
exitcode=1; echo positional parameters were not saved.
|
exitcode=1; echo positional parameters were not saved.
|
||||||
fi
|
fi
|
||||||
test x\$exitcode = x0 || exit 1"
|
test x\$exitcode = x0 || exit 1
|
||||||
|
test -x / || exit 1"
|
||||||
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
|
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
|
||||||
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
|
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
|
||||||
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
|
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
|
||||||
@ -220,6 +244,7 @@ IFS=$as_save_IFS
|
|||||||
|
|
||||||
|
|
||||||
if test "x$CONFIG_SHELL" != x; then :
|
if test "x$CONFIG_SHELL" != x; then :
|
||||||
|
export CONFIG_SHELL
|
||||||
# We cannot yet assume a decent shell, so we have to provide a
|
# We cannot yet assume a decent shell, so we have to provide a
|
||||||
# neutralization value for shells without unset; and this also
|
# neutralization value for shells without unset; and this also
|
||||||
# works around shells that cannot unset nonexistent variables.
|
# works around shells that cannot unset nonexistent variables.
|
||||||
@ -227,14 +252,17 @@ IFS=$as_save_IFS
|
|||||||
BASH_ENV=/dev/null
|
BASH_ENV=/dev/null
|
||||||
ENV=/dev/null
|
ENV=/dev/null
|
||||||
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
|
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
|
||||||
export CONFIG_SHELL
|
|
||||||
case $- in # ((((
|
case $- in # ((((
|
||||||
*v*x* | *x*v* ) as_opts=-vx ;;
|
*v*x* | *x*v* ) as_opts=-vx ;;
|
||||||
*v* ) as_opts=-v ;;
|
*v* ) as_opts=-v ;;
|
||||||
*x* ) as_opts=-x ;;
|
*x* ) as_opts=-x ;;
|
||||||
* ) as_opts= ;;
|
* ) as_opts= ;;
|
||||||
esac
|
esac
|
||||||
exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
|
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
|
||||||
|
# Admittedly, this is quite paranoid, since all the known shells bail
|
||||||
|
# out after a failed `exec'.
|
||||||
|
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
|
||||||
|
exit 255
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$as_have_required = xno; then :
|
if test x$as_have_required = xno; then :
|
||||||
@ -336,6 +364,14 @@ $as_echo X"$as_dir" |
|
|||||||
|
|
||||||
|
|
||||||
} # as_fn_mkdir_p
|
} # as_fn_mkdir_p
|
||||||
|
|
||||||
|
# as_fn_executable_p FILE
|
||||||
|
# -----------------------
|
||||||
|
# Test if FILE is an executable regular file.
|
||||||
|
as_fn_executable_p ()
|
||||||
|
{
|
||||||
|
test -f "$1" && test -x "$1"
|
||||||
|
} # as_fn_executable_p
|
||||||
# as_fn_append VAR VALUE
|
# as_fn_append VAR VALUE
|
||||||
# ----------------------
|
# ----------------------
|
||||||
# Append the text in VALUE to the end of the definition contained in VAR. Take
|
# Append the text in VALUE to the end of the definition contained in VAR. Take
|
||||||
@ -457,6 +493,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
|
|||||||
chmod +x "$as_me.lineno" ||
|
chmod +x "$as_me.lineno" ||
|
||||||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
|
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
|
||||||
|
|
||||||
|
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
|
||||||
|
# already done that, so ensure we don't try to do so again and fall
|
||||||
|
# in an infinite loop. This has already happened in practice.
|
||||||
|
_as_can_reexec=no; export _as_can_reexec
|
||||||
# Don't try to exec as it changes $[0], causing all sort of problems
|
# Don't try to exec as it changes $[0], causing all sort of problems
|
||||||
# (the dirname of $[0] is not the place where we might find the
|
# (the dirname of $[0] is not the place where we might find the
|
||||||
# original and so on. Autoconf is especially sensitive to this).
|
# original and so on. Autoconf is especially sensitive to this).
|
||||||
@ -491,16 +531,16 @@ if (echo >conf$$.file) 2>/dev/null; then
|
|||||||
# ... but there are two gotchas:
|
# ... but there are two gotchas:
|
||||||
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
|
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
|
||||||
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
|
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
|
||||||
# In both cases, we have to default to `cp -p'.
|
# In both cases, we have to default to `cp -pR'.
|
||||||
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
|
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
|
||||||
as_ln_s='cp -p'
|
as_ln_s='cp -pR'
|
||||||
elif ln conf$$.file conf$$ 2>/dev/null; then
|
elif ln conf$$.file conf$$ 2>/dev/null; then
|
||||||
as_ln_s=ln
|
as_ln_s=ln
|
||||||
else
|
else
|
||||||
as_ln_s='cp -p'
|
as_ln_s='cp -pR'
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
as_ln_s='cp -p'
|
as_ln_s='cp -pR'
|
||||||
fi
|
fi
|
||||||
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
|
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
|
||||||
rmdir conf$$.dir 2>/dev/null
|
rmdir conf$$.dir 2>/dev/null
|
||||||
@ -512,28 +552,8 @@ else
|
|||||||
as_mkdir_p=false
|
as_mkdir_p=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -x / >/dev/null 2>&1; then
|
|
||||||
as_test_x='test -x'
|
as_test_x='test -x'
|
||||||
else
|
as_executable_p=as_fn_executable_p
|
||||||
if ls -dL / >/dev/null 2>&1; then
|
|
||||||
as_ls_L_option=L
|
|
||||||
else
|
|
||||||
as_ls_L_option=
|
|
||||||
fi
|
|
||||||
as_test_x='
|
|
||||||
eval sh -c '\''
|
|
||||||
if test -d "$1"; then
|
|
||||||
test -d "$1/.";
|
|
||||||
else
|
|
||||||
case $1 in #(
|
|
||||||
-*)set "./$1";;
|
|
||||||
esac;
|
|
||||||
case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
|
|
||||||
???[sx]*):;;*)false;;esac;fi
|
|
||||||
'\'' sh
|
|
||||||
'
|
|
||||||
fi
|
|
||||||
as_executable_p=$as_test_x
|
|
||||||
|
|
||||||
# Sed expression to map a string onto a valid CPP name.
|
# Sed expression to map a string onto a valid CPP name.
|
||||||
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
||||||
@ -1371,8 +1391,6 @@ target=$target_alias
|
|||||||
if test "x$host_alias" != x; then
|
if test "x$host_alias" != x; then
|
||||||
if test "x$build_alias" = x; then
|
if test "x$build_alias" = x; then
|
||||||
cross_compiling=maybe
|
cross_compiling=maybe
|
||||||
$as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
|
|
||||||
If a cross compiler is detected then cross compile mode will be used" >&2
|
|
||||||
elif test "x$build_alias" != "x$host_alias"; then
|
elif test "x$build_alias" != "x$host_alias"; then
|
||||||
cross_compiling=yes
|
cross_compiling=yes
|
||||||
fi
|
fi
|
||||||
@ -1642,9 +1660,9 @@ test -n "$ac_init_help" && exit $ac_status
|
|||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
configure
|
configure
|
||||||
generated by GNU Autoconf 2.68
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
This configure script is free software; the Free Software Foundation
|
This configure script is free software; the Free Software Foundation
|
||||||
gives unlimited permission to copy, distribute and modify it.
|
gives unlimited permission to copy, distribute and modify it.
|
||||||
_ACEOF
|
_ACEOF
|
||||||
@ -1917,7 +1935,7 @@ $as_echo "$ac_try_echo"; } >&5
|
|||||||
test ! -s conftest.err
|
test ! -s conftest.err
|
||||||
} && test -s conftest$ac_exeext && {
|
} && test -s conftest$ac_exeext && {
|
||||||
test "$cross_compiling" = yes ||
|
test "$cross_compiling" = yes ||
|
||||||
$as_test_x conftest$ac_exeext
|
test -x conftest$ac_exeext
|
||||||
}; then :
|
}; then :
|
||||||
ac_retval=0
|
ac_retval=0
|
||||||
else
|
else
|
||||||
@ -2074,7 +2092,8 @@ int
|
|||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
static int test_array [1 - 2 * !(($2) >= 0)];
|
static int test_array [1 - 2 * !(($2) >= 0)];
|
||||||
test_array [0] = 0
|
test_array [0] = 0;
|
||||||
|
return test_array [0];
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
@ -2090,7 +2109,8 @@ int
|
|||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
|
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
|
||||||
test_array [0] = 0
|
test_array [0] = 0;
|
||||||
|
return test_array [0];
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
@ -2116,7 +2136,8 @@ int
|
|||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
static int test_array [1 - 2 * !(($2) < 0)];
|
static int test_array [1 - 2 * !(($2) < 0)];
|
||||||
test_array [0] = 0
|
test_array [0] = 0;
|
||||||
|
return test_array [0];
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
@ -2132,7 +2153,8 @@ int
|
|||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
|
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
|
||||||
test_array [0] = 0
|
test_array [0] = 0;
|
||||||
|
return test_array [0];
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
@ -2166,7 +2188,8 @@ int
|
|||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
|
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
|
||||||
test_array [0] = 0
|
test_array [0] = 0;
|
||||||
|
return test_array [0];
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
@ -2342,7 +2365,7 @@ This file contains any messages produced by compilers while
|
|||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by $as_me, which was
|
It was created by $as_me, which was
|
||||||
generated by GNU Autoconf 2.68. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
|
|
||||||
@ -3192,14 +3215,6 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
|
|||||||
# _LT_LANG
|
# _LT_LANG
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
############################################################
|
|
||||||
# NOTE: This macro has been submitted for inclusion into #
|
|
||||||
# GNU Autoconf as AC_PROG_GO. When it is available in #
|
|
||||||
# a released version of Autoconf we should remove this #
|
|
||||||
# macro and use it instead. #
|
|
||||||
############################################################
|
|
||||||
#m4_defun
|
|
||||||
#m4_ifndef
|
#m4_ifndef
|
||||||
|
|
||||||
|
|
||||||
@ -5069,7 +5084,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_CC="${ac_tool_prefix}gcc"
|
ac_cv_prog_CC="${ac_tool_prefix}gcc"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -5109,7 +5124,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_CC="gcc"
|
ac_cv_prog_ac_ct_CC="gcc"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -5162,7 +5177,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_CC="${ac_tool_prefix}cc"
|
ac_cv_prog_CC="${ac_tool_prefix}cc"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -5203,7 +5218,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
|
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
|
||||||
ac_prog_rejected=yes
|
ac_prog_rejected=yes
|
||||||
continue
|
continue
|
||||||
@ -5261,7 +5276,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
|
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -5305,7 +5320,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_CC="$ac_prog"
|
ac_cv_prog_ac_ct_CC="$ac_prog"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -5751,8 +5766,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|||||||
/* end confdefs.h. */
|
/* end confdefs.h. */
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
struct stat;
|
||||||
#include <sys/stat.h>
|
|
||||||
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
|
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
|
||||||
struct buf { int x; };
|
struct buf { int x; };
|
||||||
FILE * (*rcsopen) (struct buf *, struct stat *, int);
|
FILE * (*rcsopen) (struct buf *, struct stat *, int);
|
||||||
@ -5860,7 +5874,7 @@ do
|
|||||||
for ac_prog in sed gsed; do
|
for ac_prog in sed gsed; do
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
|
ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
|
||||||
{ test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
|
as_fn_executable_p "$ac_path_SED" || continue
|
||||||
# Check for GNU ac_path_SED and select it if it is found.
|
# Check for GNU ac_path_SED and select it if it is found.
|
||||||
# Check for GNU $ac_path_SED
|
# Check for GNU $ac_path_SED
|
||||||
case `"$ac_path_SED" --version 2>&1` in
|
case `"$ac_path_SED" --version 2>&1` in
|
||||||
@ -6444,83 +6458,12 @@ if test "x$apr_preload_done" != "xyes" ; then
|
|||||||
|
|
||||||
;;
|
;;
|
||||||
*-linux*)
|
*-linux*)
|
||||||
case `uname -r` in
|
|
||||||
2.* )
|
|
||||||
if test "x$CPPFLAGS" = "x"; then
|
|
||||||
test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-DLINUX=2\""
|
|
||||||
CPPFLAGS="-DLINUX=2"
|
|
||||||
else
|
|
||||||
apr_addto_bugger="-DLINUX=2"
|
|
||||||
for i in $apr_addto_bugger; do
|
|
||||||
apr_addto_duplicate="0"
|
|
||||||
for j in $CPPFLAGS; do
|
|
||||||
if test "x$i" = "x$j"; then
|
|
||||||
apr_addto_duplicate="1"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test $apr_addto_duplicate = "0"; then
|
|
||||||
test "x$silent" != "xyes" && echo " adding \"$i\" to CPPFLAGS"
|
|
||||||
CPPFLAGS="$CPPFLAGS $i"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
;;
|
|
||||||
1.* )
|
|
||||||
if test "x$CPPFLAGS" = "x"; then
|
|
||||||
test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-DLINUX=1\""
|
|
||||||
CPPFLAGS="-DLINUX=1"
|
|
||||||
else
|
|
||||||
apr_addto_bugger="-DLINUX=1"
|
|
||||||
for i in $apr_addto_bugger; do
|
|
||||||
apr_addto_duplicate="0"
|
|
||||||
for j in $CPPFLAGS; do
|
|
||||||
if test "x$i" = "x$j"; then
|
|
||||||
apr_addto_duplicate="1"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test $apr_addto_duplicate = "0"; then
|
|
||||||
test "x$silent" != "xyes" && echo " adding \"$i\" to CPPFLAGS"
|
|
||||||
CPPFLAGS="$CPPFLAGS $i"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
;;
|
|
||||||
* )
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if test "x$CPPFLAGS" = "x"; then
|
if test "x$CPPFLAGS" = "x"; then
|
||||||
test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-D_REENTRANT -D_GNU_SOURCE\""
|
test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-DLINUX -D_REENTRANT -D_GNU_SOURCE\""
|
||||||
CPPFLAGS="-D_REENTRANT -D_GNU_SOURCE"
|
CPPFLAGS="-DLINUX -D_REENTRANT -D_GNU_SOURCE"
|
||||||
else
|
else
|
||||||
apr_addto_bugger="-D_REENTRANT -D_GNU_SOURCE"
|
apr_addto_bugger="-DLINUX -D_REENTRANT -D_GNU_SOURCE"
|
||||||
for i in $apr_addto_bugger; do
|
|
||||||
apr_addto_duplicate="0"
|
|
||||||
for j in $CPPFLAGS; do
|
|
||||||
if test "x$i" = "x$j"; then
|
|
||||||
apr_addto_duplicate="1"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test $apr_addto_duplicate = "0"; then
|
|
||||||
test "x$silent" != "xyes" && echo " adding \"$i\" to CPPFLAGS"
|
|
||||||
CPPFLAGS="$CPPFLAGS $i"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
;;
|
|
||||||
*-GNU*)
|
|
||||||
|
|
||||||
if test "x$CPPFLAGS" = "x"; then
|
|
||||||
test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-DHURD -D_GNU_SOURCE\""
|
|
||||||
CPPFLAGS="-DHURD -D_GNU_SOURCE"
|
|
||||||
else
|
|
||||||
apr_addto_bugger="-DHURD -D_GNU_SOURCE"
|
|
||||||
for i in $apr_addto_bugger; do
|
for i in $apr_addto_bugger; do
|
||||||
apr_addto_duplicate="0"
|
apr_addto_duplicate="0"
|
||||||
for j in $CPPFLAGS; do
|
for j in $CPPFLAGS; do
|
||||||
@ -6769,6 +6712,29 @@ if test "x$apr_preload_done" != "xyes" ; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
*-gnu*|*-GNU*)
|
||||||
|
|
||||||
|
if test "x$CPPFLAGS" = "x"; then
|
||||||
|
test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-D_REENTRANT -D_GNU_SOURCE -DHURD\""
|
||||||
|
CPPFLAGS="-D_REENTRANT -D_GNU_SOURCE -DHURD"
|
||||||
|
else
|
||||||
|
apr_addto_bugger="-D_REENTRANT -D_GNU_SOURCE -DHURD"
|
||||||
|
for i in $apr_addto_bugger; do
|
||||||
|
apr_addto_duplicate="0"
|
||||||
|
for j in $CPPFLAGS; do
|
||||||
|
if test "x$i" = "x$j"; then
|
||||||
|
apr_addto_duplicate="1"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if test $apr_addto_duplicate = "0"; then
|
||||||
|
test "x$silent" != "xyes" && echo " adding \"$i\" to CPPFLAGS"
|
||||||
|
CPPFLAGS="$CPPFLAGS $i"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
;;
|
;;
|
||||||
*-next-nextstep*)
|
*-next-nextstep*)
|
||||||
|
|
||||||
@ -6898,7 +6864,7 @@ if test "x$apr_preload_done" != "xyes" ; then
|
|||||||
fi
|
fi
|
||||||
# See issue 34332
|
# See issue 34332
|
||||||
;;
|
;;
|
||||||
*-apple-darwin1[01].*)
|
*-apple-darwin1?.*)
|
||||||
|
|
||||||
if test "x$CPPFLAGS" = "x"; then
|
if test "x$CPPFLAGS" = "x"; then
|
||||||
test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-DDARWIN_10\""
|
test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-DDARWIN_10\""
|
||||||
@ -9512,7 +9478,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_AWK="$ac_prog"
|
ac_cv_prog_AWK="$ac_prog"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -9564,7 +9530,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
|
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -9604,7 +9570,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_RANLIB="ranlib"
|
ac_cv_prog_ac_ct_RANLIB="ranlib"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -9676,7 +9642,7 @@ case $as_dir/ in #((
|
|||||||
# by default.
|
# by default.
|
||||||
for ac_prog in ginstall scoinst install; do
|
for ac_prog in ginstall scoinst install; do
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
|
||||||
if test $ac_prog = install &&
|
if test $ac_prog = install &&
|
||||||
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
|
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
|
||||||
# AIX install. It has an incompatible calling convention.
|
# AIX install. It has an incompatible calling convention.
|
||||||
@ -9748,7 +9714,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_RM="rm"
|
ac_cv_prog_RM="rm"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -9785,7 +9751,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_AS="as"
|
ac_cv_prog_AS="as"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -9822,7 +9788,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ASCPP="cpp"
|
ac_cv_prog_ASCPP="cpp"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -9860,7 +9826,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_AR="${ac_tool_prefix}ar"
|
ac_cv_prog_AR="${ac_tool_prefix}ar"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -9900,7 +9866,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_AR="ar"
|
ac_cv_prog_ac_ct_AR="ar"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -9955,7 +9921,7 @@ do
|
|||||||
for ac_prog in grep ggrep; do
|
for ac_prog in grep ggrep; do
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
|
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||||
{ test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
|
as_fn_executable_p "$ac_path_GREP" || continue
|
||||||
# Check for GNU ac_path_GREP and select it if it is found.
|
# Check for GNU ac_path_GREP and select it if it is found.
|
||||||
# Check for GNU $ac_path_GREP
|
# Check for GNU $ac_path_GREP
|
||||||
case `"$ac_path_GREP" --version 2>&1` in
|
case `"$ac_path_GREP" --version 2>&1` in
|
||||||
@ -10021,7 +9987,7 @@ do
|
|||||||
for ac_prog in egrep; do
|
for ac_prog in egrep; do
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
|
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||||
{ test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
|
as_fn_executable_p "$ac_path_EGREP" || continue
|
||||||
# Check for GNU ac_path_EGREP and select it if it is found.
|
# Check for GNU ac_path_EGREP and select it if it is found.
|
||||||
# Check for GNU $ac_path_EGREP
|
# Check for GNU $ac_path_EGREP
|
||||||
case `"$ac_path_EGREP" --version 2>&1` in
|
case `"$ac_path_EGREP" --version 2>&1` in
|
||||||
@ -10421,7 +10387,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_AS="${ac_tool_prefix}as"
|
ac_cv_prog_AS="${ac_tool_prefix}as"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -10461,7 +10427,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_AS="as"
|
ac_cv_prog_ac_ct_AS="as"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -10513,7 +10479,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
|
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -10553,7 +10519,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
|
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -10605,7 +10571,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
|
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -10645,7 +10611,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_OBJDUMP="objdump"
|
ac_cv_prog_ac_ct_OBJDUMP="objdump"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -10819,7 +10785,7 @@ do
|
|||||||
for ac_prog in sed gsed; do
|
for ac_prog in sed gsed; do
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
|
ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
|
||||||
{ test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
|
as_fn_executable_p "$ac_path_SED" || continue
|
||||||
# Check for GNU ac_path_SED and select it if it is found.
|
# Check for GNU ac_path_SED and select it if it is found.
|
||||||
# Check for GNU $ac_path_SED
|
# Check for GNU $ac_path_SED
|
||||||
case `"$ac_path_SED" --version 2>&1` in
|
case `"$ac_path_SED" --version 2>&1` in
|
||||||
@ -10898,7 +10864,7 @@ do
|
|||||||
for ac_prog in fgrep; do
|
for ac_prog in fgrep; do
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
|
ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||||
{ test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
|
as_fn_executable_p "$ac_path_FGREP" || continue
|
||||||
# Check for GNU ac_path_FGREP and select it if it is found.
|
# Check for GNU ac_path_FGREP and select it if it is found.
|
||||||
# Check for GNU $ac_path_FGREP
|
# Check for GNU $ac_path_FGREP
|
||||||
case `"$ac_path_FGREP" --version 2>&1` in
|
case `"$ac_path_FGREP" --version 2>&1` in
|
||||||
@ -11154,7 +11120,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
|
ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -11198,7 +11164,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
|
ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -11611,7 +11577,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
|
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -11651,7 +11617,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_OBJDUMP="objdump"
|
ac_cv_prog_ac_ct_OBJDUMP="objdump"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -11954,7 +11920,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
|
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -11994,7 +11960,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
|
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -12094,7 +12060,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
|
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -12138,7 +12104,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_AR="$ac_prog"
|
ac_cv_prog_ac_ct_AR="$ac_prog"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -12263,7 +12229,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
|
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -12303,7 +12269,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_STRIP="strip"
|
ac_cv_prog_ac_ct_STRIP="strip"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -12362,7 +12328,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
|
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -12402,7 +12368,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_RANLIB="ranlib"
|
ac_cv_prog_ac_ct_RANLIB="ranlib"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -13051,7 +13017,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
|
ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -13091,7 +13057,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
|
ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -13171,7 +13137,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
|
ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -13211,7 +13177,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
|
ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -13263,7 +13229,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
|
ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -13303,7 +13269,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_NMEDIT="nmedit"
|
ac_cv_prog_ac_ct_NMEDIT="nmedit"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -13355,7 +13321,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
|
ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -13395,7 +13361,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_LIPO="lipo"
|
ac_cv_prog_ac_ct_LIPO="lipo"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -13447,7 +13413,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
|
ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -13487,7 +13453,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_OTOOL="otool"
|
ac_cv_prog_ac_ct_OTOOL="otool"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -13539,7 +13505,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
|
ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -13579,7 +13545,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_OTOOL64="otool64"
|
ac_cv_prog_ac_ct_OTOOL64="otool64"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -21805,23 +21771,20 @@ else
|
|||||||
/* end confdefs.h. */
|
/* end confdefs.h. */
|
||||||
$ac_includes_default
|
$ac_includes_default
|
||||||
int
|
int
|
||||||
find_stack_direction ()
|
find_stack_direction (int *addr, int depth)
|
||||||
{
|
|
||||||
static char *addr = 0;
|
|
||||||
auto char dummy;
|
|
||||||
if (addr == 0)
|
|
||||||
{
|
{
|
||||||
|
int dir, dummy = 0;
|
||||||
|
if (! addr)
|
||||||
addr = &dummy;
|
addr = &dummy;
|
||||||
return find_stack_direction ();
|
*addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
|
||||||
}
|
dir = depth ? find_stack_direction (addr, depth - 1) : 0;
|
||||||
else
|
return dir + dummy;
|
||||||
return (&dummy > addr) ? 1 : -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
return find_stack_direction () < 0;
|
return find_stack_direction (0, argc + !argv + 20) < 0;
|
||||||
}
|
}
|
||||||
_ACEOF
|
_ACEOF
|
||||||
if ac_fn_c_try_run "$LINENO"; then :
|
if ac_fn_c_try_run "$LINENO"; then :
|
||||||
@ -22960,11 +22923,11 @@ else
|
|||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
/* FIXME: Include the comments suggested by Paul. */
|
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
/* Ultrix mips cc rejects this. */
|
/* Ultrix mips cc rejects this sort of thing. */
|
||||||
typedef int charset[2];
|
typedef int charset[2];
|
||||||
const charset cs;
|
const charset cs = { 0, 0 };
|
||||||
/* SunOS 4.1.1 cc rejects this. */
|
/* SunOS 4.1.1 cc rejects this. */
|
||||||
char const *const *pcpcc;
|
char const *const *pcpcc;
|
||||||
char **ppc;
|
char **ppc;
|
||||||
@ -22981,8 +22944,9 @@ main ()
|
|||||||
++pcpcc;
|
++pcpcc;
|
||||||
ppc = (char**) pcpcc;
|
ppc = (char**) pcpcc;
|
||||||
pcpcc = (char const *const *) ppc;
|
pcpcc = (char const *const *) ppc;
|
||||||
{ /* SCO 3.2v4 cc rejects this. */
|
{ /* SCO 3.2v4 cc rejects this sort of thing. */
|
||||||
char *t;
|
char tx;
|
||||||
|
char *t = &tx;
|
||||||
char const *s = 0 ? (char *) 0 : (char const *) 0;
|
char const *s = 0 ? (char *) 0 : (char const *) 0;
|
||||||
|
|
||||||
*t++ = 0;
|
*t++ = 0;
|
||||||
@ -22998,10 +22962,10 @@ main ()
|
|||||||
iptr p = 0;
|
iptr p = 0;
|
||||||
++p;
|
++p;
|
||||||
}
|
}
|
||||||
{ /* AIX XL C 1.02.0.0 rejects this saying
|
{ /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
|
||||||
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
|
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
|
||||||
struct s { int j; const int *ap[3]; };
|
struct s { int j; const int *ap[3]; } bx;
|
||||||
struct s *b; b->j = 5;
|
struct s *b = &bx; b->j = 5;
|
||||||
}
|
}
|
||||||
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
|
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
|
||||||
const int foo = 10;
|
const int foo = 10;
|
||||||
@ -27149,13 +27113,24 @@ else
|
|||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
/* end confdefs.h. */
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
#ifdef HAVE_STDLIB_H
|
||||||
|
#include <stdlib.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STRING_H
|
||||||
|
#include <string.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STDIO_H
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_SYS_SOCKET_H
|
#ifdef HAVE_SYS_SOCKET_H
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_SYS_SELECT_H
|
||||||
|
#include <sys/select.h>
|
||||||
|
#endif
|
||||||
#ifdef HAVE_NETINET_IN_H
|
#ifdef HAVE_NETINET_IN_H
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#endif
|
#endif
|
||||||
@ -27226,6 +27201,26 @@ int main(void) {
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
sa_len = sizeof sa;
|
sa_len = sizeof sa;
|
||||||
|
/* 1 second select timeout */
|
||||||
|
tv.tv_sec = 1;
|
||||||
|
tv.tv_usec = 0;
|
||||||
|
/* Set up fd set */
|
||||||
|
FD_ZERO(&fds);
|
||||||
|
FD_SET(listen_s, &fds);
|
||||||
|
/* Wait for socket to become readable */
|
||||||
|
rc = select(listen_s + 1, &fds, NULL, NULL, &tv);
|
||||||
|
if (rc < 0) {
|
||||||
|
perror("select");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (rc == 0) {
|
||||||
|
fprintf(stderr, "Socket failed to become readable (timeout)\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (!FD_ISSET(listen_s, &fds)) {
|
||||||
|
fprintf(stderr, "Socket failed to become readable (selected another fd)\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
connected_s = accept(listen_s, (struct sockaddr *)&sa, &sa_len);
|
connected_s = accept(listen_s, (struct sockaddr *)&sa, &sa_len);
|
||||||
if (connected_s < 0) {
|
if (connected_s < 0) {
|
||||||
perror("accept");
|
perror("accept");
|
||||||
@ -28875,16 +28870,16 @@ if (echo >conf$$.file) 2>/dev/null; then
|
|||||||
# ... but there are two gotchas:
|
# ... but there are two gotchas:
|
||||||
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
|
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
|
||||||
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
|
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
|
||||||
# In both cases, we have to default to `cp -p'.
|
# In both cases, we have to default to `cp -pR'.
|
||||||
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
|
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
|
||||||
as_ln_s='cp -p'
|
as_ln_s='cp -pR'
|
||||||
elif ln conf$$.file conf$$ 2>/dev/null; then
|
elif ln conf$$.file conf$$ 2>/dev/null; then
|
||||||
as_ln_s=ln
|
as_ln_s=ln
|
||||||
else
|
else
|
||||||
as_ln_s='cp -p'
|
as_ln_s='cp -pR'
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
as_ln_s='cp -p'
|
as_ln_s='cp -pR'
|
||||||
fi
|
fi
|
||||||
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
|
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
|
||||||
rmdir conf$$.dir 2>/dev/null
|
rmdir conf$$.dir 2>/dev/null
|
||||||
@ -28944,28 +28939,16 @@ else
|
|||||||
as_mkdir_p=false
|
as_mkdir_p=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -x / >/dev/null 2>&1; then
|
|
||||||
|
# as_fn_executable_p FILE
|
||||||
|
# -----------------------
|
||||||
|
# Test if FILE is an executable regular file.
|
||||||
|
as_fn_executable_p ()
|
||||||
|
{
|
||||||
|
test -f "$1" && test -x "$1"
|
||||||
|
} # as_fn_executable_p
|
||||||
as_test_x='test -x'
|
as_test_x='test -x'
|
||||||
else
|
as_executable_p=as_fn_executable_p
|
||||||
if ls -dL / >/dev/null 2>&1; then
|
|
||||||
as_ls_L_option=L
|
|
||||||
else
|
|
||||||
as_ls_L_option=
|
|
||||||
fi
|
|
||||||
as_test_x='
|
|
||||||
eval sh -c '\''
|
|
||||||
if test -d "$1"; then
|
|
||||||
test -d "$1/.";
|
|
||||||
else
|
|
||||||
case $1 in #(
|
|
||||||
-*)set "./$1";;
|
|
||||||
esac;
|
|
||||||
case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
|
|
||||||
???[sx]*):;;*)false;;esac;fi
|
|
||||||
'\'' sh
|
|
||||||
'
|
|
||||||
fi
|
|
||||||
as_executable_p=$as_test_x
|
|
||||||
|
|
||||||
# Sed expression to map a string onto a valid CPP name.
|
# Sed expression to map a string onto a valid CPP name.
|
||||||
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
||||||
@ -28987,7 +28970,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by $as_me, which was
|
This file was extended by $as_me, which was
|
||||||
generated by GNU Autoconf 2.68. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
CONFIG_HEADERS = $CONFIG_HEADERS
|
CONFIG_HEADERS = $CONFIG_HEADERS
|
||||||
@ -29053,10 +29036,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
|||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
config.status
|
config.status
|
||||||
configured by $0, generated by GNU Autoconf 2.68,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
This config.status script is free software; the Free Software Foundation
|
This config.status script is free software; the Free Software Foundation
|
||||||
gives unlimited permission to copy, distribute and modify it."
|
gives unlimited permission to copy, distribute and modify it."
|
||||||
|
|
||||||
@ -29146,7 +29129,7 @@ fi
|
|||||||
_ACEOF
|
_ACEOF
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
if \$ac_cs_recheck; then
|
if \$ac_cs_recheck; then
|
||||||
set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
|
set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
|
||||||
shift
|
shift
|
||||||
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
|
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
|
||||||
CONFIG_SHELL='$SHELL'
|
CONFIG_SHELL='$SHELL'
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div align="right">
|
<div align="right">
|
||||||
Last modified at [$Date: 2004-11-25 09:51:51 +1100 (Thu, 25 Nov 2004) $]
|
Last modified at [$Date: 2004-11-24 17:51:51 -0500 (Wed, 24 Nov 2004) $]
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1>Using APR Pools</h1>
|
<h1>Using APR Pools</h1>
|
||||||
|
@ -117,10 +117,10 @@ apr_status_t apr_file_trunc(apr_file_t *fp, apr_off_t offset)
|
|||||||
/* Reset buffer positions for write mode */
|
/* Reset buffer positions for write mode */
|
||||||
fp->bufpos = fp->direction = fp->dataRead = 0;
|
fp->bufpos = fp->direction = fp->dataRead = 0;
|
||||||
}
|
}
|
||||||
|
file_unlock(fp);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
file_unlock(fp);
|
|
||||||
}
|
}
|
||||||
if (ftruncate(fp->filedes, offset) == -1) {
|
if (ftruncate(fp->filedes, offset) == -1) {
|
||||||
return errno;
|
return errno;
|
||||||
|
@ -36,6 +36,12 @@
|
|||||||
* for Win32 or Netware by those build environments, respectively.
|
* for Win32 or Netware by those build environments, respectively.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Make sure we have our platform identifier macro defined we ask for later.
|
||||||
|
*/
|
||||||
|
#if defined(_WIN32) && !defined(WIN32)
|
||||||
|
#define WIN32 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(WIN32) || defined(DOXYGEN)
|
#if defined(WIN32) || defined(DOXYGEN)
|
||||||
|
|
||||||
/* Ignore most warnings (back down to /W3) for poorly constructed headers
|
/* Ignore most warnings (back down to /W3) for poorly constructed headers
|
||||||
@ -377,7 +383,7 @@ typedef int apr_off_t;
|
|||||||
typedef int apr_socklen_t;
|
typedef int apr_socklen_t;
|
||||||
typedef apr_uint64_t apr_ino_t;
|
typedef apr_uint64_t apr_ino_t;
|
||||||
|
|
||||||
#ifdef WIN64
|
#ifdef _WIN64
|
||||||
#define APR_SIZEOF_VOIDP 8
|
#define APR_SIZEOF_VOIDP 8
|
||||||
#else
|
#else
|
||||||
#define APR_SIZEOF_VOIDP 4
|
#define APR_SIZEOF_VOIDP 4
|
||||||
@ -552,7 +558,7 @@ typedef apr_uint32_t apr_uintptr_t;
|
|||||||
#define APR_DECLARE_DATA __declspec(dllimport)
|
#define APR_DECLARE_DATA __declspec(dllimport)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WIN64
|
#ifdef _WIN64
|
||||||
#define APR_SSIZE_T_FMT "I64d"
|
#define APR_SSIZE_T_FMT "I64d"
|
||||||
#define APR_SIZE_T_FMT "I64u"
|
#define APR_SIZE_T_FMT "I64u"
|
||||||
#else
|
#else
|
||||||
|
@ -71,7 +71,8 @@ struct apr_memnode_t {
|
|||||||
* @param allocator The allocator we have just created.
|
* @param allocator The allocator we have just created.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_status_t) apr_allocator_create(apr_allocator_t **allocator);
|
APR_DECLARE(apr_status_t) apr_allocator_create(apr_allocator_t **allocator)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroy an allocator
|
* Destroy an allocator
|
||||||
@ -79,7 +80,8 @@ APR_DECLARE(apr_status_t) apr_allocator_create(apr_allocator_t **allocator);
|
|||||||
* @remark Any memnodes not given back to the allocator prior to destroying
|
* @remark Any memnodes not given back to the allocator prior to destroying
|
||||||
* will _not_ be free()d.
|
* will _not_ be free()d.
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_allocator_destroy(apr_allocator_t *allocator);
|
APR_DECLARE(void) apr_allocator_destroy(apr_allocator_t *allocator)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allocate a block of mem from the allocator
|
* Allocate a block of mem from the allocator
|
||||||
@ -88,7 +90,8 @@ APR_DECLARE(void) apr_allocator_destroy(apr_allocator_t *allocator);
|
|||||||
* memnode structure)
|
* memnode structure)
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_memnode_t *) apr_allocator_alloc(apr_allocator_t *allocator,
|
APR_DECLARE(apr_memnode_t *) apr_allocator_alloc(apr_allocator_t *allocator,
|
||||||
apr_size_t size);
|
apr_size_t size)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Free a list of blocks of mem, giving them back to the allocator.
|
* Free a list of blocks of mem, giving them back to the allocator.
|
||||||
@ -98,7 +101,8 @@ APR_DECLARE(apr_memnode_t *) apr_allocator_alloc(apr_allocator_t *allocator,
|
|||||||
* @param memnode The memory node to return
|
* @param memnode The memory node to return
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_allocator_free(apr_allocator_t *allocator,
|
APR_DECLARE(void) apr_allocator_free(apr_allocator_t *allocator,
|
||||||
apr_memnode_t *memnode);
|
apr_memnode_t *memnode)
|
||||||
|
__attribute__((nonnull(1,2)));
|
||||||
|
|
||||||
#include "apr_pools.h"
|
#include "apr_pools.h"
|
||||||
|
|
||||||
@ -114,13 +118,15 @@ APR_DECLARE(void) apr_allocator_free(apr_allocator_t *allocator,
|
|||||||
* the allocator will never be destroyed.
|
* the allocator will never be destroyed.
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_allocator_owner_set(apr_allocator_t *allocator,
|
APR_DECLARE(void) apr_allocator_owner_set(apr_allocator_t *allocator,
|
||||||
apr_pool_t *pool);
|
apr_pool_t *pool)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the current owner of the allocator
|
* Get the current owner of the allocator
|
||||||
* @param allocator The allocator to get the owner from
|
* @param allocator The allocator to get the owner from
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_pool_t *) apr_allocator_owner_get(apr_allocator_t *allocator);
|
APR_DECLARE(apr_pool_t *) apr_allocator_owner_get(apr_allocator_t *allocator)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the current threshold at which the allocator should start
|
* Set the current threshold at which the allocator should start
|
||||||
@ -129,7 +135,8 @@ APR_DECLARE(apr_pool_t *) apr_allocator_owner_get(apr_allocator_t *allocator);
|
|||||||
* @param size The threshold. 0 == unlimited.
|
* @param size The threshold. 0 == unlimited.
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_allocator_max_free_set(apr_allocator_t *allocator,
|
APR_DECLARE(void) apr_allocator_max_free_set(apr_allocator_t *allocator,
|
||||||
apr_size_t size);
|
apr_size_t size)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
#include "apr_thread_mutex.h"
|
#include "apr_thread_mutex.h"
|
||||||
|
|
||||||
@ -140,14 +147,16 @@ APR_DECLARE(void) apr_allocator_max_free_set(apr_allocator_t *allocator,
|
|||||||
* @param mutex The mutex
|
* @param mutex The mutex
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_allocator_mutex_set(apr_allocator_t *allocator,
|
APR_DECLARE(void) apr_allocator_mutex_set(apr_allocator_t *allocator,
|
||||||
apr_thread_mutex_t *mutex);
|
apr_thread_mutex_t *mutex)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the mutex currently set for the allocator
|
* Get the mutex currently set for the allocator
|
||||||
* @param allocator The allocator
|
* @param allocator The allocator
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_thread_mutex_t *) apr_allocator_mutex_get(
|
APR_DECLARE(apr_thread_mutex_t *) apr_allocator_mutex_get(
|
||||||
apr_allocator_t *allocator);
|
apr_allocator_t *allocator)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
#endif /* APR_HAS_THREADS */
|
#endif /* APR_HAS_THREADS */
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ typedef int apr_signum_t;
|
|||||||
* @return offset
|
* @return offset
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(CRAY) || (defined(__arm) && !defined(LINUX))
|
#if defined(CRAY) || (defined(__arm) && !(defined(LINUX) || defined(__FreeBSD__)))
|
||||||
#ifdef __STDC__
|
#ifdef __STDC__
|
||||||
#define APR_OFFSET(p_type,field) _Offsetof(p_type,field)
|
#define APR_OFFSET(p_type,field) _Offsetof(p_type,field)
|
||||||
#else
|
#else
|
||||||
|
@ -756,6 +756,8 @@ APR_DECLARE(int) apr_ipsubnet_test(apr_ipsubnet_t *ipsub, apr_sockaddr_t *sa);
|
|||||||
* @param name The accept filter
|
* @param name The accept filter
|
||||||
* @param args Any extra args to the accept filter. Passing NULL here removes
|
* @param args Any extra args to the accept filter. Passing NULL here removes
|
||||||
* the accept filter.
|
* the accept filter.
|
||||||
|
* @bug name and args should have been declared as const char *, as they are in
|
||||||
|
* APR 2.0
|
||||||
*/
|
*/
|
||||||
apr_status_t apr_socket_accept_filter(apr_socket_t *sock, char *name,
|
apr_status_t apr_socket_accept_filter(apr_socket_t *sock, char *name,
|
||||||
char *args);
|
char *args);
|
||||||
|
@ -196,7 +196,8 @@ APR_DECLARE(void) apr_pool_terminate(void);
|
|||||||
APR_DECLARE(apr_status_t) apr_pool_create_ex(apr_pool_t **newpool,
|
APR_DECLARE(apr_status_t) apr_pool_create_ex(apr_pool_t **newpool,
|
||||||
apr_pool_t *parent,
|
apr_pool_t *parent,
|
||||||
apr_abortfunc_t abort_fn,
|
apr_abortfunc_t abort_fn,
|
||||||
apr_allocator_t *allocator);
|
apr_allocator_t *allocator)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new pool.
|
* Create a new pool.
|
||||||
@ -220,7 +221,8 @@ APR_DECLARE(apr_status_t) apr_pool_create_core_ex(apr_pool_t **newpool,
|
|||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_status_t) apr_pool_create_unmanaged_ex(apr_pool_t **newpool,
|
APR_DECLARE(apr_status_t) apr_pool_create_unmanaged_ex(apr_pool_t **newpool,
|
||||||
apr_abortfunc_t abort_fn,
|
apr_abortfunc_t abort_fn,
|
||||||
apr_allocator_t *allocator);
|
apr_allocator_t *allocator)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Debug version of apr_pool_create_ex.
|
* Debug version of apr_pool_create_ex.
|
||||||
@ -242,7 +244,8 @@ APR_DECLARE(apr_status_t) apr_pool_create_ex_debug(apr_pool_t **newpool,
|
|||||||
apr_pool_t *parent,
|
apr_pool_t *parent,
|
||||||
apr_abortfunc_t abort_fn,
|
apr_abortfunc_t abort_fn,
|
||||||
apr_allocator_t *allocator,
|
apr_allocator_t *allocator,
|
||||||
const char *file_line);
|
const char *file_line)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
#if APR_POOL_DEBUG
|
#if APR_POOL_DEBUG
|
||||||
#define apr_pool_create_ex(newpool, parent, abort_fn, allocator) \
|
#define apr_pool_create_ex(newpool, parent, abort_fn, allocator) \
|
||||||
@ -277,7 +280,8 @@ APR_DECLARE(apr_status_t) apr_pool_create_core_ex_debug(apr_pool_t **newpool,
|
|||||||
APR_DECLARE(apr_status_t) apr_pool_create_unmanaged_ex_debug(apr_pool_t **newpool,
|
APR_DECLARE(apr_status_t) apr_pool_create_unmanaged_ex_debug(apr_pool_t **newpool,
|
||||||
apr_abortfunc_t abort_fn,
|
apr_abortfunc_t abort_fn,
|
||||||
apr_allocator_t *allocator,
|
apr_allocator_t *allocator,
|
||||||
const char *file_line);
|
const char *file_line)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
#if APR_POOL_DEBUG
|
#if APR_POOL_DEBUG
|
||||||
#define apr_pool_create_core_ex(newpool, abort_fn, allocator) \
|
#define apr_pool_create_core_ex(newpool, abort_fn, allocator) \
|
||||||
@ -343,7 +347,8 @@ APR_DECLARE(apr_status_t) apr_pool_create_unmanaged(apr_pool_t **newpool);
|
|||||||
* Find the pool's allocator
|
* Find the pool's allocator
|
||||||
* @param pool The pool to get the allocator from.
|
* @param pool The pool to get the allocator from.
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_allocator_t *) apr_pool_allocator_get(apr_pool_t *pool);
|
APR_DECLARE(apr_allocator_t *) apr_pool_allocator_get(apr_pool_t *pool)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear all memory in the pool and run all the cleanups. This also destroys all
|
* Clear all memory in the pool and run all the cleanups. This also destroys all
|
||||||
@ -353,7 +358,7 @@ APR_DECLARE(apr_allocator_t *) apr_pool_allocator_get(apr_pool_t *pool);
|
|||||||
* to re-use this memory for the next allocation.
|
* to re-use this memory for the next allocation.
|
||||||
* @see apr_pool_destroy()
|
* @see apr_pool_destroy()
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_pool_clear(apr_pool_t *p);
|
APR_DECLARE(void) apr_pool_clear(apr_pool_t *p) __attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Debug version of apr_pool_clear.
|
* Debug version of apr_pool_clear.
|
||||||
@ -369,7 +374,8 @@ APR_DECLARE(void) apr_pool_clear(apr_pool_t *p);
|
|||||||
* and don't call apr_pool_destroy_clear directly.
|
* and don't call apr_pool_destroy_clear directly.
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *p,
|
APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *p,
|
||||||
const char *file_line);
|
const char *file_line)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
#if APR_POOL_DEBUG
|
#if APR_POOL_DEBUG
|
||||||
#define apr_pool_clear(p) \
|
#define apr_pool_clear(p) \
|
||||||
@ -382,7 +388,7 @@ APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *p,
|
|||||||
* @param p The pool to destroy
|
* @param p The pool to destroy
|
||||||
* @remark This will actually free the memory
|
* @remark This will actually free the memory
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_pool_destroy(apr_pool_t *p);
|
APR_DECLARE(void) apr_pool_destroy(apr_pool_t *p) __attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Debug version of apr_pool_destroy.
|
* Debug version of apr_pool_destroy.
|
||||||
@ -398,7 +404,8 @@ APR_DECLARE(void) apr_pool_destroy(apr_pool_t *p);
|
|||||||
* and don't call apr_pool_destroy_debug directly.
|
* and don't call apr_pool_destroy_debug directly.
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_pool_destroy_debug(apr_pool_t *p,
|
APR_DECLARE(void) apr_pool_destroy_debug(apr_pool_t *p,
|
||||||
const char *file_line);
|
const char *file_line)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
#if APR_POOL_DEBUG
|
#if APR_POOL_DEBUG
|
||||||
#define apr_pool_destroy(p) \
|
#define apr_pool_destroy(p) \
|
||||||
@ -416,7 +423,11 @@ APR_DECLARE(void) apr_pool_destroy_debug(apr_pool_t *p,
|
|||||||
* @param size The amount of memory to allocate
|
* @param size The amount of memory to allocate
|
||||||
* @return The allocated memory
|
* @return The allocated memory
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void *) apr_palloc(apr_pool_t *p, apr_size_t size);
|
APR_DECLARE(void *) apr_palloc(apr_pool_t *p, apr_size_t size)
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
|
||||||
|
__attribute__((alloc_size(2)))
|
||||||
|
#endif
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Debug version of apr_palloc
|
* Debug version of apr_palloc
|
||||||
@ -427,7 +438,11 @@ APR_DECLARE(void *) apr_palloc(apr_pool_t *p, apr_size_t size);
|
|||||||
* @return See: apr_palloc
|
* @return See: apr_palloc
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void *) apr_palloc_debug(apr_pool_t *p, apr_size_t size,
|
APR_DECLARE(void *) apr_palloc_debug(apr_pool_t *p, apr_size_t size,
|
||||||
const char *file_line);
|
const char *file_line)
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
|
||||||
|
__attribute__((alloc_size(2)))
|
||||||
|
#endif
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
#if APR_POOL_DEBUG
|
#if APR_POOL_DEBUG
|
||||||
#define apr_palloc(p, size) \
|
#define apr_palloc(p, size) \
|
||||||
@ -455,7 +470,8 @@ APR_DECLARE(void *) apr_pcalloc(apr_pool_t *p, apr_size_t size);
|
|||||||
* @return See: apr_pcalloc
|
* @return See: apr_pcalloc
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void *) apr_pcalloc_debug(apr_pool_t *p, apr_size_t size,
|
APR_DECLARE(void *) apr_pcalloc_debug(apr_pool_t *p, apr_size_t size,
|
||||||
const char *file_line);
|
const char *file_line)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
#if APR_POOL_DEBUG
|
#if APR_POOL_DEBUG
|
||||||
#define apr_pcalloc(p, size) \
|
#define apr_pcalloc(p, size) \
|
||||||
@ -476,21 +492,24 @@ APR_DECLARE(void *) apr_pcalloc_debug(apr_pool_t *p, apr_size_t size,
|
|||||||
* deal with the error accordingly.
|
* deal with the error accordingly.
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_pool_abort_set(apr_abortfunc_t abortfunc,
|
APR_DECLARE(void) apr_pool_abort_set(apr_abortfunc_t abortfunc,
|
||||||
apr_pool_t *pool);
|
apr_pool_t *pool)
|
||||||
|
__attribute__((nonnull(2)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the abort function associated with the specified pool.
|
* Get the abort function associated with the specified pool.
|
||||||
* @param pool The pool for retrieving the abort function.
|
* @param pool The pool for retrieving the abort function.
|
||||||
* @return The abort function for the given pool.
|
* @return The abort function for the given pool.
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_abortfunc_t) apr_pool_abort_get(apr_pool_t *pool);
|
APR_DECLARE(apr_abortfunc_t) apr_pool_abort_get(apr_pool_t *pool)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the parent pool of the specified pool.
|
* Get the parent pool of the specified pool.
|
||||||
* @param pool The pool for retrieving the parent pool.
|
* @param pool The pool for retrieving the parent pool.
|
||||||
* @return The parent of the given pool.
|
* @return The parent of the given pool.
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_pool_t *) apr_pool_parent_get(apr_pool_t *pool);
|
APR_DECLARE(apr_pool_t *) apr_pool_parent_get(apr_pool_t *pool)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine if pool a is an ancestor of pool b.
|
* Determine if pool a is an ancestor of pool b.
|
||||||
@ -510,7 +529,8 @@ APR_DECLARE(int) apr_pool_is_ancestor(apr_pool_t *a, apr_pool_t *b);
|
|||||||
* @param pool The pool to tag
|
* @param pool The pool to tag
|
||||||
* @param tag The tag
|
* @param tag The tag
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_pool_tag(apr_pool_t *pool, const char *tag);
|
APR_DECLARE(void) apr_pool_tag(apr_pool_t *pool, const char *tag)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -536,11 +556,11 @@ APR_DECLARE(void) apr_pool_tag(apr_pool_t *pool, const char *tag);
|
|||||||
* key names is a typical way to help ensure this uniqueness.
|
* key names is a typical way to help ensure this uniqueness.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_status_t) apr_pool_userdata_set(
|
APR_DECLARE(apr_status_t) apr_pool_userdata_set(const void *data,
|
||||||
const void *data,
|
|
||||||
const char *key,
|
const char *key,
|
||||||
apr_status_t (*cleanup)(void *),
|
apr_status_t (*cleanup)(void *),
|
||||||
apr_pool_t *pool);
|
apr_pool_t *pool)
|
||||||
|
__attribute__((nonnull(2,4)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the data associated with the current pool
|
* Set the data associated with the current pool
|
||||||
@ -562,10 +582,10 @@ APR_DECLARE(apr_status_t) apr_pool_userdata_set(
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_status_t) apr_pool_userdata_setn(
|
APR_DECLARE(apr_status_t) apr_pool_userdata_setn(
|
||||||
const void *data,
|
const void *data, const char *key,
|
||||||
const char *key,
|
|
||||||
apr_status_t (*cleanup)(void *),
|
apr_status_t (*cleanup)(void *),
|
||||||
apr_pool_t *pool);
|
apr_pool_t *pool)
|
||||||
|
__attribute__((nonnull(2,4)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the data associated with the current pool.
|
* Return the data associated with the current pool.
|
||||||
@ -574,7 +594,8 @@ APR_DECLARE(apr_status_t) apr_pool_userdata_setn(
|
|||||||
* @param pool The current pool.
|
* @param pool The current pool.
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_status_t) apr_pool_userdata_get(void **data, const char *key,
|
APR_DECLARE(apr_status_t) apr_pool_userdata_get(void **data, const char *key,
|
||||||
apr_pool_t *pool);
|
apr_pool_t *pool)
|
||||||
|
__attribute__((nonnull(1,2,3)));
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -601,10 +622,10 @@ APR_DECLARE(apr_status_t) apr_pool_userdata_get(void **data, const char *key,
|
|||||||
* to exec - this function is called in the child, obviously!
|
* to exec - this function is called in the child, obviously!
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_pool_cleanup_register(
|
APR_DECLARE(void) apr_pool_cleanup_register(
|
||||||
apr_pool_t *p,
|
apr_pool_t *p, const void *data,
|
||||||
const void *data,
|
|
||||||
apr_status_t (*plain_cleanup)(void *),
|
apr_status_t (*plain_cleanup)(void *),
|
||||||
apr_status_t (*child_cleanup)(void *));
|
apr_status_t (*child_cleanup)(void *))
|
||||||
|
__attribute__((nonnull(3,4)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register a function to be called when a pool is cleared or destroyed.
|
* Register a function to be called when a pool is cleared or destroyed.
|
||||||
@ -619,9 +640,9 @@ APR_DECLARE(void) apr_pool_cleanup_register(
|
|||||||
* or destroyed
|
* or destroyed
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_pool_pre_cleanup_register(
|
APR_DECLARE(void) apr_pool_pre_cleanup_register(
|
||||||
apr_pool_t *p,
|
apr_pool_t *p, const void *data,
|
||||||
const void *data,
|
apr_status_t (*plain_cleanup)(void *))
|
||||||
apr_status_t (*plain_cleanup)(void *));
|
__attribute__((nonnull(3)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove a previously registered cleanup function.
|
* Remove a previously registered cleanup function.
|
||||||
@ -636,7 +657,8 @@ APR_DECLARE(void) apr_pool_pre_cleanup_register(
|
|||||||
* function
|
* function
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_pool_cleanup_kill(apr_pool_t *p, const void *data,
|
APR_DECLARE(void) apr_pool_cleanup_kill(apr_pool_t *p, const void *data,
|
||||||
apr_status_t (*cleanup)(void *));
|
apr_status_t (*cleanup)(void *))
|
||||||
|
__attribute__((nonnull(3)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Replace the child cleanup function of a previously registered cleanup.
|
* Replace the child cleanup function of a previously registered cleanup.
|
||||||
@ -651,10 +673,10 @@ APR_DECLARE(void) apr_pool_cleanup_kill(apr_pool_t *p, const void *data,
|
|||||||
* @param child_cleanup The function to register as the child cleanup
|
* @param child_cleanup The function to register as the child cleanup
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_pool_child_cleanup_set(
|
APR_DECLARE(void) apr_pool_child_cleanup_set(
|
||||||
apr_pool_t *p,
|
apr_pool_t *p, const void *data,
|
||||||
const void *data,
|
|
||||||
apr_status_t (*plain_cleanup)(void *),
|
apr_status_t (*plain_cleanup)(void *),
|
||||||
apr_status_t (*child_cleanup)(void *));
|
apr_status_t (*child_cleanup)(void *))
|
||||||
|
__attribute__((nonnull(3,4)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Run the specified cleanup function immediately and unregister it.
|
* Run the specified cleanup function immediately and unregister it.
|
||||||
@ -667,10 +689,9 @@ APR_DECLARE(void) apr_pool_child_cleanup_set(
|
|||||||
* @param data The data to remove from cleanup
|
* @param data The data to remove from cleanup
|
||||||
* @param cleanup The function to remove from cleanup
|
* @param cleanup The function to remove from cleanup
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_status_t) apr_pool_cleanup_run(
|
APR_DECLARE(apr_status_t) apr_pool_cleanup_run(apr_pool_t *p, void *data,
|
||||||
apr_pool_t *p,
|
apr_status_t (*cleanup)(void *))
|
||||||
void *data,
|
__attribute__((nonnull(3)));
|
||||||
apr_status_t (*cleanup)(void *));
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An empty cleanup function.
|
* An empty cleanup function.
|
||||||
@ -739,7 +760,8 @@ APR_DECLARE(void) apr_pool_cleanup_for_exec(void);
|
|||||||
* @param p The parent pool
|
* @param p The parent pool
|
||||||
* @param sub The subpool
|
* @param sub The subpool
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void) apr_pool_join(apr_pool_t *p, apr_pool_t *sub);
|
APR_DECLARE(void) apr_pool_join(apr_pool_t *p, apr_pool_t *sub)
|
||||||
|
__attribute__((nonnull(2)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find a pool from something allocated in it.
|
* Find a pool from something allocated in it.
|
||||||
@ -754,7 +776,8 @@ APR_DECLARE(apr_pool_t *) apr_pool_find(const void *mem);
|
|||||||
* @param recurse Recurse/include the subpools' sizes
|
* @param recurse Recurse/include the subpools' sizes
|
||||||
* @return The number of bytes
|
* @return The number of bytes
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(apr_size_t) apr_pool_num_bytes(apr_pool_t *p, int recurse);
|
APR_DECLARE(apr_size_t) apr_pool_num_bytes(apr_pool_t *p, int recurse)
|
||||||
|
__attribute__((nonnull(1)));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lock a pool
|
* Lock a pool
|
||||||
|
@ -106,7 +106,11 @@ APR_DECLARE(char *) apr_pstrdup(apr_pool_t *p, const char *s);
|
|||||||
* has 'n' or more characters. If the string might contain
|
* has 'n' or more characters. If the string might contain
|
||||||
* fewer characters, use apr_pstrndup.
|
* fewer characters, use apr_pstrndup.
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(char *) apr_pstrmemdup(apr_pool_t *p, const char *s, apr_size_t n);
|
APR_DECLARE(char *) apr_pstrmemdup(apr_pool_t *p, const char *s, apr_size_t n)
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
|
||||||
|
__attribute__((alloc_size(3)))
|
||||||
|
#endif
|
||||||
|
;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Duplicate at most n characters of a string into memory allocated
|
* Duplicate at most n characters of a string into memory allocated
|
||||||
@ -128,7 +132,11 @@ APR_DECLARE(char *) apr_pstrndup(apr_pool_t *p, const char *s, apr_size_t n);
|
|||||||
* @param n The number of bytes to duplicate
|
* @param n The number of bytes to duplicate
|
||||||
* @return The new block of memory
|
* @return The new block of memory
|
||||||
*/
|
*/
|
||||||
APR_DECLARE(void *) apr_pmemdup(apr_pool_t *p, const void *m, apr_size_t n);
|
APR_DECLARE(void *) apr_pmemdup(apr_pool_t *p, const void *m, apr_size_t n)
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
|
||||||
|
__attribute__((alloc_size(3)))
|
||||||
|
#endif
|
||||||
|
;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Concatenate multiple strings, allocating memory out a pool
|
* Concatenate multiple strings, allocating memory out a pool
|
||||||
|
@ -315,7 +315,7 @@ APR_DECLARE(apr_status_t) apr_thread_once(apr_thread_once_t *control,
|
|||||||
APR_DECLARE(apr_status_t) apr_thread_detach(apr_thread_t *thd);
|
APR_DECLARE(apr_status_t) apr_thread_detach(apr_thread_t *thd);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the pool associated with the current thread.
|
* Return user data associated with the current thread.
|
||||||
* @param data The user data associated with the thread.
|
* @param data The user data associated with the thread.
|
||||||
* @param key The key to associate with the data
|
* @param key The key to associate with the data
|
||||||
* @param thread The currently open thread.
|
* @param thread The currently open thread.
|
||||||
@ -324,7 +324,7 @@ APR_DECLARE(apr_status_t) apr_thread_data_get(void **data, const char *key,
|
|||||||
apr_thread_t *thread);
|
apr_thread_t *thread);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the pool associated with the current thread.
|
* Set user data associated with the current thread.
|
||||||
* @param data The user data to associate with the thread.
|
* @param data The user data to associate with the thread.
|
||||||
* @param key The key to use for associating the data with the thread
|
* @param key The key to use for associating the data with the thread
|
||||||
* @param cleanup The cleanup routine to use when the thread is destroyed.
|
* @param cleanup The cleanup routine to use when the thread is destroyed.
|
||||||
|
@ -38,6 +38,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define APR_COPYRIGHT "Copyright (c) 2013 The Apache Software " \
|
||||||
|
"Foundation or its licensors, as applicable."
|
||||||
|
|
||||||
/* The numeric compile-time version constants. These constants are the
|
/* The numeric compile-time version constants. These constants are the
|
||||||
* authoritative version numbers for APR.
|
* authoritative version numbers for APR.
|
||||||
*/
|
*/
|
||||||
@ -59,7 +62,7 @@
|
|||||||
* The Patch Level never includes API changes, simply bug fixes.
|
* The Patch Level never includes API changes, simply bug fixes.
|
||||||
* Reset to 0 when upgrading APR_MINOR_VERSION
|
* Reset to 0 when upgrading APR_MINOR_VERSION
|
||||||
*/
|
*/
|
||||||
#define APR_PATCH_VERSION 6
|
#define APR_PATCH_VERSION 8
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The symbol APR_IS_DEV_VERSION is only defined for internal,
|
* The symbol APR_IS_DEV_VERSION is only defined for internal,
|
||||||
@ -87,7 +90,9 @@
|
|||||||
|
|
||||||
#if defined(APR_IS_DEV_VERSION) || defined(DOXYGEN)
|
#if defined(APR_IS_DEV_VERSION) || defined(DOXYGEN)
|
||||||
/** Internal: string form of the "is dev" flag */
|
/** Internal: string form of the "is dev" flag */
|
||||||
|
#ifndef APR_IS_DEV_STRING
|
||||||
#define APR_IS_DEV_STRING "-dev"
|
#define APR_IS_DEV_STRING "-dev"
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
#define APR_IS_DEV_STRING ""
|
#define APR_IS_DEV_STRING ""
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
#include "apr_version.h"
|
#include "apr_version.h"
|
||||||
|
|
||||||
#define APR_COPYRIGHT "Copyright (c) 2011 The Apache Software " \
|
|
||||||
"Foundation or its licensors, as applicable."
|
|
||||||
|
|
||||||
#define APR_LICENSE \
|
#define APR_LICENSE \
|
||||||
"Licensed to the Apache Software Foundation (ASF) under one or more " \
|
"Licensed to the Apache Software Foundation (ASF) under one or more " \
|
||||||
"contributor license agreements. See the NOTICE file distributed with " \
|
"contributor license agreements. See the NOTICE file distributed with " \
|
||||||
|
@ -193,36 +193,39 @@ static apr_status_t do_mcast(int type, apr_socket_t *sock,
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Set the IP_MULTICAST_TTL or IP_MULTICAST_LOOP option, or IPv6
|
||||||
|
* equivalents, for the socket, to the given value. Note that this
|
||||||
|
* function *only works* for those particular option types. */
|
||||||
static apr_status_t do_mcast_opt(int type, apr_socket_t *sock,
|
static apr_status_t do_mcast_opt(int type, apr_socket_t *sock,
|
||||||
apr_byte_t value)
|
apr_byte_t value)
|
||||||
{
|
{
|
||||||
apr_status_t rv = APR_SUCCESS;
|
apr_status_t rv = APR_SUCCESS;
|
||||||
|
|
||||||
if (sock_is_ipv4(sock)) {
|
if (sock_is_ipv4(sock)) {
|
||||||
|
/* For the IP_MULTICAST_* options, this must be a (char *)
|
||||||
|
* pointer. */
|
||||||
if (setsockopt(sock->socketdes, IPPROTO_IP, type,
|
if (setsockopt(sock->socketdes, IPPROTO_IP, type,
|
||||||
(const void *) &value, sizeof(value)) == -1) {
|
(const void *) &value, sizeof(value)) == -1) {
|
||||||
rv = errno;
|
rv = errno;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if APR_HAVE_IPV6
|
#if APR_HAVE_IPV6
|
||||||
else if (sock_is_ipv6(sock) && type == IP_MULTICAST_LOOP) {
|
|
||||||
unsigned int loopopt = value;
|
|
||||||
type = IPV6_MULTICAST_LOOP;
|
|
||||||
if (setsockopt(sock->socketdes, IPPROTO_IPV6, type,
|
|
||||||
(const void *) &loopopt, sizeof(loopopt)) == -1) {
|
|
||||||
rv = errno;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (sock_is_ipv6(sock)) {
|
else if (sock_is_ipv6(sock)) {
|
||||||
|
/* For the IPV6_* options, an (int *) pointer must be used. */
|
||||||
|
int ivalue = value;
|
||||||
|
|
||||||
if (type == IP_MULTICAST_TTL) {
|
if (type == IP_MULTICAST_TTL) {
|
||||||
type = IPV6_MULTICAST_HOPS;
|
type = IPV6_MULTICAST_HOPS;
|
||||||
}
|
}
|
||||||
|
else if (type == IP_MULTICAST_LOOP) {
|
||||||
|
type = IPV6_MULTICAST_LOOP;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
return APR_ENOTIMPL;
|
return APR_ENOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (setsockopt(sock->socketdes, IPPROTO_IPV6, type,
|
if (setsockopt(sock->socketdes, IPPROTO_IPV6, type,
|
||||||
&value, sizeof(value)) == -1) {
|
(const void *) &ivalue, sizeof(ivalue)) == -1) {
|
||||||
rv = errno;
|
rv = errno;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -174,7 +174,14 @@ apr_status_t apr_socket_recvfrom(apr_sockaddr_t *from, apr_socket_t *sock,
|
|||||||
return errno;
|
return errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
apr_sockaddr_vars_set(from, from->sa.sin.sin_family, ntohs(from->sa.sin.sin_port));
|
/*
|
||||||
|
* Check if we have a valid address. recvfrom() with MSG_PEEK may return
|
||||||
|
* success without filling in the address.
|
||||||
|
*/
|
||||||
|
if (from->salen > APR_OFFSETOF(struct sockaddr_in, sin_port)) {
|
||||||
|
apr_sockaddr_vars_set(from, from->sa.sin.sin_family,
|
||||||
|
ntohs(from->sa.sin.sin_port));
|
||||||
|
}
|
||||||
|
|
||||||
(*len) = rv;
|
(*len) = rv;
|
||||||
if (rv == 0 && sock->type == SOCK_STREAM) {
|
if (rv == 0 && sock->type == SOCK_STREAM) {
|
||||||
@ -245,7 +252,7 @@ do_select:
|
|||||||
/* Define a structure to pass in when we have a NULL header value */
|
/* Define a structure to pass in when we have a NULL header value */
|
||||||
static apr_hdtr_t no_hdtr;
|
static apr_hdtr_t no_hdtr;
|
||||||
|
|
||||||
#if defined(__linux__) && defined(HAVE_WRITEV)
|
#if (defined(__linux__) || defined(__GNU__)) && defined(HAVE_WRITEV)
|
||||||
|
|
||||||
apr_status_t apr_socket_sendfile(apr_socket_t *sock, apr_file_t *file,
|
apr_status_t apr_socket_sendfile(apr_socket_t *sock, apr_file_t *file,
|
||||||
apr_hdtr_t *hdtr, apr_off_t *offset,
|
apr_hdtr_t *hdtr, apr_off_t *offset,
|
||||||
@ -285,9 +292,6 @@ apr_status_t apr_socket_sendfile(apr_socket_t *sock, apr_file_t *file,
|
|||||||
hdtr = &no_hdtr;
|
hdtr = &no_hdtr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Ignore flags for now. */
|
|
||||||
flags = 0;
|
|
||||||
|
|
||||||
if (hdtr->numheaders > 0) {
|
if (hdtr->numheaders > 0) {
|
||||||
apr_size_t hdrbytes;
|
apr_size_t hdrbytes;
|
||||||
|
|
||||||
|
@ -356,9 +356,27 @@ static apr_status_t call_resolver(apr_sockaddr_t **sa,
|
|||||||
}
|
}
|
||||||
error = getaddrinfo(hostname, servname, &hints, &ai_list);
|
error = getaddrinfo(hostname, servname, &hints, &ai_list);
|
||||||
#ifdef HAVE_GAI_ADDRCONFIG
|
#ifdef HAVE_GAI_ADDRCONFIG
|
||||||
if (error == EAI_BADFLAGS && family == APR_UNSPEC) {
|
/*
|
||||||
/* Retry with no flags if AI_ADDRCONFIG was rejected. */
|
* Using AI_ADDRCONFIG involves some unfortunate guesswork because it
|
||||||
hints.ai_flags = 0;
|
* does not consider loopback addresses when trying to determine if
|
||||||
|
* IPv4 or IPv6 is configured on a system (see RFC 3493).
|
||||||
|
* This is a problem if one actually wants to listen on or connect to
|
||||||
|
* the loopback address of a protocol family that is not otherwise
|
||||||
|
* configured on the system. See PR 52709.
|
||||||
|
* To work around some of the problems, retry without AI_ADDRCONFIG
|
||||||
|
* in case of EAI_ADDRFAMILY.
|
||||||
|
* XXX: apr_sockaddr_info_get() should really accept a flag to determine
|
||||||
|
* XXX: if AI_ADDRCONFIG's guesswork is wanted and if the address is
|
||||||
|
* XXX: to be used for listen() or connect().
|
||||||
|
*
|
||||||
|
* In case of EAI_BADFLAGS, AI_ADDRCONFIG is not supported.
|
||||||
|
*/
|
||||||
|
if ((family == APR_UNSPEC) && (error == EAI_BADFLAGS
|
||||||
|
#ifdef EAI_ADDRFAMILY
|
||||||
|
|| error == EAI_ADDRFAMILY
|
||||||
|
#endif
|
||||||
|
)) {
|
||||||
|
hints.ai_flags &= ~AI_ADDRCONFIG;
|
||||||
error = getaddrinfo(hostname, servname, &hints, &ai_list);
|
error = getaddrinfo(hostname, servname, &hints, &ai_list);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -367,7 +385,7 @@ static apr_status_t call_resolver(apr_sockaddr_t **sa,
|
|||||||
return apr_get_netos_error();
|
return apr_get_netos_error();
|
||||||
#else
|
#else
|
||||||
if (error == EAI_SYSTEM) {
|
if (error == EAI_SYSTEM) {
|
||||||
return errno;
|
return errno ? errno : APR_EGENERAL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -422,6 +440,15 @@ static apr_status_t call_resolver(apr_sockaddr_t **sa,
|
|||||||
ai = ai->ai_next;
|
ai = ai->ai_next;
|
||||||
}
|
}
|
||||||
freeaddrinfo(ai_list);
|
freeaddrinfo(ai_list);
|
||||||
|
|
||||||
|
if (prev_sa == NULL) {
|
||||||
|
/*
|
||||||
|
* getaddrinfo returned only useless entries and *sa is still empty.
|
||||||
|
* This should be treated as an error.
|
||||||
|
*/
|
||||||
|
return APR_EGENERAL;
|
||||||
|
}
|
||||||
|
|
||||||
return APR_SUCCESS;
|
return APR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -555,6 +582,11 @@ static apr_status_t find_addresses(apr_sockaddr_t **sa,
|
|||||||
++curaddr;
|
++curaddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (prev_sa == NULL) {
|
||||||
|
/* this should not happen but no result should be treated as error */
|
||||||
|
return APR_EGENERAL;
|
||||||
|
}
|
||||||
|
|
||||||
return APR_SUCCESS;
|
return APR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1010,7 +1042,7 @@ APR_DECLARE(int) apr_ipsubnet_test(apr_ipsubnet_t *ipsub, apr_sockaddr_t *sa)
|
|||||||
/* XXX This line will segv on Win32 build with APR_HAVE_IPV6,
|
/* XXX This line will segv on Win32 build with APR_HAVE_IPV6,
|
||||||
* but without the IPV6 drivers installed.
|
* but without the IPV6 drivers installed.
|
||||||
*/
|
*/
|
||||||
if (sa->sa.sin.sin_family == AF_INET) {
|
if (sa->family == AF_INET) {
|
||||||
if (ipsub->family == AF_INET &&
|
if (ipsub->family == AF_INET &&
|
||||||
((sa->sa.sin.sin_addr.s_addr & ipsub->mask[0]) == ipsub->sub[0])) {
|
((sa->sa.sin.sin_addr.s_addr & ipsub->mask[0]) == ipsub->sub[0])) {
|
||||||
return 1;
|
return 1;
|
||||||
@ -1022,7 +1054,7 @@ APR_DECLARE(int) apr_ipsubnet_test(apr_ipsubnet_t *ipsub, apr_sockaddr_t *sa)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else if (sa->family == AF_INET6 && ipsub->family == AF_INET6) {
|
||||||
apr_uint32_t *addr = (apr_uint32_t *)sa->ipaddr_ptr;
|
apr_uint32_t *addr = (apr_uint32_t *)sa->ipaddr_ptr;
|
||||||
|
|
||||||
if ((addr[0] & ipsub->mask[0]) == ipsub->sub[0] &&
|
if ((addr[0] & ipsub->mask[0]) == ipsub->sub[0] &&
|
||||||
|
@ -381,12 +381,33 @@ apr_status_t apr_gethostname(char *buf, apr_int32_t len, apr_pool_t *cont)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if APR_HAS_SO_ACCEPTFILTER
|
#if APR_HAS_SO_ACCEPTFILTER
|
||||||
apr_status_t apr_socket_accept_filter(apr_socket_t *sock, char *name,
|
apr_status_t apr_socket_accept_filter(apr_socket_t *sock, char *nonconst_name,
|
||||||
char *args)
|
char *nonconst_args)
|
||||||
{
|
{
|
||||||
|
/* these should have been const; act like they are */
|
||||||
|
const char *name = nonconst_name;
|
||||||
|
const char *args = nonconst_args;
|
||||||
|
|
||||||
struct accept_filter_arg af;
|
struct accept_filter_arg af;
|
||||||
strncpy(af.af_name, name, 16);
|
socklen_t optlen = sizeof(af);
|
||||||
strncpy(af.af_arg, args, 256 - 16);
|
|
||||||
|
/* FreeBSD returns an error if the filter is already set; ignore
|
||||||
|
* this call if we previously set it to the same value.
|
||||||
|
*/
|
||||||
|
if ((getsockopt(sock->socketdes, SOL_SOCKET, SO_ACCEPTFILTER,
|
||||||
|
&af, &optlen)) == 0) {
|
||||||
|
if (!strcmp(name, af.af_name) && !strcmp(args, af.af_arg)) {
|
||||||
|
return APR_SUCCESS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Uhh, at least in FreeBSD 9 the fields are declared as arrays of
|
||||||
|
* these lengths; did sizeof not work in some ancient release?
|
||||||
|
*
|
||||||
|
* FreeBSD kernel sets the last byte to a '\0'.
|
||||||
|
*/
|
||||||
|
apr_cpystrn(af.af_name, name, 16);
|
||||||
|
apr_cpystrn(af.af_arg, args, 256 - 16);
|
||||||
|
|
||||||
if ((setsockopt(sock->socketdes, SOL_SOCKET, SO_ACCEPTFILTER,
|
if ((setsockopt(sock->socketdes, SOL_SOCKET, SO_ACCEPTFILTER,
|
||||||
&af, sizeof(af))) < 0) {
|
&af, sizeof(af))) < 0) {
|
||||||
|
@ -52,8 +52,6 @@ typedef apr_uint64_t sha2_word64; /* Exactly 8 bytes */
|
|||||||
/*** SHA-256/384/512 Various Length Definitions ***********************/
|
/*** SHA-256/384/512 Various Length Definitions ***********************/
|
||||||
/* NOTE: Most of these are in sha2.h */
|
/* NOTE: Most of these are in sha2.h */
|
||||||
#define SHA256_SHORT_BLOCK_LENGTH (SHA256_BLOCK_LENGTH - 8)
|
#define SHA256_SHORT_BLOCK_LENGTH (SHA256_BLOCK_LENGTH - 8)
|
||||||
#define SHA384_SHORT_BLOCK_LENGTH (SHA384_BLOCK_LENGTH - 16)
|
|
||||||
#define SHA512_SHORT_BLOCK_LENGTH (SHA512_BLOCK_LENGTH - 16)
|
|
||||||
|
|
||||||
|
|
||||||
/*** ENDIAN REVERSAL MACROS *******************************************/
|
/*** ENDIAN REVERSAL MACROS *******************************************/
|
||||||
@ -150,9 +148,7 @@ typedef apr_uint64_t sha2_word64; /* Exactly 8 bytes */
|
|||||||
* library -- they are intended for private internal visibility/use
|
* library -- they are intended for private internal visibility/use
|
||||||
* only.
|
* only.
|
||||||
*/
|
*/
|
||||||
void apr__SHA512_Last(SHA512_CTX*);
|
|
||||||
void apr__SHA256_Transform(SHA256_CTX*, const sha2_word32*);
|
void apr__SHA256_Transform(SHA256_CTX*, const sha2_word32*);
|
||||||
void apr__SHA512_Transform(SHA512_CTX*, const sha2_word64*);
|
|
||||||
|
|
||||||
|
|
||||||
/*** SHA-XYZ INITIAL HASH VALUES AND CONSTANTS ************************/
|
/*** SHA-XYZ INITIAL HASH VALUES AND CONSTANTS ************************/
|
||||||
@ -188,74 +184,6 @@ static const sha2_word32 sha256_initial_hash_value[8] = {
|
|||||||
0x5be0cd19UL
|
0x5be0cd19UL
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Hash constant words K for SHA-384 and SHA-512: */
|
|
||||||
static const sha2_word64 K512[80] = {
|
|
||||||
APR_UINT64_C(0x428a2f98d728ae22), APR_UINT64_C(0x7137449123ef65cd),
|
|
||||||
APR_UINT64_C(0xb5c0fbcfec4d3b2f), APR_UINT64_C(0xe9b5dba58189dbbc),
|
|
||||||
APR_UINT64_C(0x3956c25bf348b538), APR_UINT64_C(0x59f111f1b605d019),
|
|
||||||
APR_UINT64_C(0x923f82a4af194f9b), APR_UINT64_C(0xab1c5ed5da6d8118),
|
|
||||||
APR_UINT64_C(0xd807aa98a3030242), APR_UINT64_C(0x12835b0145706fbe),
|
|
||||||
APR_UINT64_C(0x243185be4ee4b28c), APR_UINT64_C(0x550c7dc3d5ffb4e2),
|
|
||||||
APR_UINT64_C(0x72be5d74f27b896f), APR_UINT64_C(0x80deb1fe3b1696b1),
|
|
||||||
APR_UINT64_C(0x9bdc06a725c71235), APR_UINT64_C(0xc19bf174cf692694),
|
|
||||||
APR_UINT64_C(0xe49b69c19ef14ad2), APR_UINT64_C(0xefbe4786384f25e3),
|
|
||||||
APR_UINT64_C(0x0fc19dc68b8cd5b5), APR_UINT64_C(0x240ca1cc77ac9c65),
|
|
||||||
APR_UINT64_C(0x2de92c6f592b0275), APR_UINT64_C(0x4a7484aa6ea6e483),
|
|
||||||
APR_UINT64_C(0x5cb0a9dcbd41fbd4), APR_UINT64_C(0x76f988da831153b5),
|
|
||||||
APR_UINT64_C(0x983e5152ee66dfab), APR_UINT64_C(0xa831c66d2db43210),
|
|
||||||
APR_UINT64_C(0xb00327c898fb213f), APR_UINT64_C(0xbf597fc7beef0ee4),
|
|
||||||
APR_UINT64_C(0xc6e00bf33da88fc2), APR_UINT64_C(0xd5a79147930aa725),
|
|
||||||
APR_UINT64_C(0x06ca6351e003826f), APR_UINT64_C(0x142929670a0e6e70),
|
|
||||||
APR_UINT64_C(0x27b70a8546d22ffc), APR_UINT64_C(0x2e1b21385c26c926),
|
|
||||||
APR_UINT64_C(0x4d2c6dfc5ac42aed), APR_UINT64_C(0x53380d139d95b3df),
|
|
||||||
APR_UINT64_C(0x650a73548baf63de), APR_UINT64_C(0x766a0abb3c77b2a8),
|
|
||||||
APR_UINT64_C(0x81c2c92e47edaee6), APR_UINT64_C(0x92722c851482353b),
|
|
||||||
APR_UINT64_C(0xa2bfe8a14cf10364), APR_UINT64_C(0xa81a664bbc423001),
|
|
||||||
APR_UINT64_C(0xc24b8b70d0f89791), APR_UINT64_C(0xc76c51a30654be30),
|
|
||||||
APR_UINT64_C(0xd192e819d6ef5218), APR_UINT64_C(0xd69906245565a910),
|
|
||||||
APR_UINT64_C(0xf40e35855771202a), APR_UINT64_C(0x106aa07032bbd1b8),
|
|
||||||
APR_UINT64_C(0x19a4c116b8d2d0c8), APR_UINT64_C(0x1e376c085141ab53),
|
|
||||||
APR_UINT64_C(0x2748774cdf8eeb99), APR_UINT64_C(0x34b0bcb5e19b48a8),
|
|
||||||
APR_UINT64_C(0x391c0cb3c5c95a63), APR_UINT64_C(0x4ed8aa4ae3418acb),
|
|
||||||
APR_UINT64_C(0x5b9cca4f7763e373), APR_UINT64_C(0x682e6ff3d6b2b8a3),
|
|
||||||
APR_UINT64_C(0x748f82ee5defb2fc), APR_UINT64_C(0x78a5636f43172f60),
|
|
||||||
APR_UINT64_C(0x84c87814a1f0ab72), APR_UINT64_C(0x8cc702081a6439ec),
|
|
||||||
APR_UINT64_C(0x90befffa23631e28), APR_UINT64_C(0xa4506cebde82bde9),
|
|
||||||
APR_UINT64_C(0xbef9a3f7b2c67915), APR_UINT64_C(0xc67178f2e372532b),
|
|
||||||
APR_UINT64_C(0xca273eceea26619c), APR_UINT64_C(0xd186b8c721c0c207),
|
|
||||||
APR_UINT64_C(0xeada7dd6cde0eb1e), APR_UINT64_C(0xf57d4f7fee6ed178),
|
|
||||||
APR_UINT64_C(0x06f067aa72176fba), APR_UINT64_C(0x0a637dc5a2c898a6),
|
|
||||||
APR_UINT64_C(0x113f9804bef90dae), APR_UINT64_C(0x1b710b35131c471b),
|
|
||||||
APR_UINT64_C(0x28db77f523047d84), APR_UINT64_C(0x32caab7b40c72493),
|
|
||||||
APR_UINT64_C(0x3c9ebe0a15c9bebc), APR_UINT64_C(0x431d67c49c100d4c),
|
|
||||||
APR_UINT64_C(0x4cc5d4becb3e42b6), APR_UINT64_C(0x597f299cfc657e2a),
|
|
||||||
APR_UINT64_C(0x5fcb6fab3ad6faec), APR_UINT64_C(0x6c44198c4a475817)
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Initial hash value H for SHA-384 */
|
|
||||||
static const sha2_word64 sha384_initial_hash_value[8] = {
|
|
||||||
APR_UINT64_C(0xcbbb9d5dc1059ed8),
|
|
||||||
APR_UINT64_C(0x629a292a367cd507),
|
|
||||||
APR_UINT64_C(0x9159015a3070dd17),
|
|
||||||
APR_UINT64_C(0x152fecd8f70e5939),
|
|
||||||
APR_UINT64_C(0x67332667ffc00b31),
|
|
||||||
APR_UINT64_C(0x8eb44a8768581511),
|
|
||||||
APR_UINT64_C(0xdb0c2e0d64f98fa7),
|
|
||||||
APR_UINT64_C(0x47b5481dbefa4fa4)
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Initial hash value H for SHA-512 */
|
|
||||||
static const sha2_word64 sha512_initial_hash_value[8] = {
|
|
||||||
APR_UINT64_C(0x6a09e667f3bcc908),
|
|
||||||
APR_UINT64_C(0xbb67ae8584caa73b),
|
|
||||||
APR_UINT64_C(0x3c6ef372fe94f82b),
|
|
||||||
APR_UINT64_C(0xa54ff53a5f1d36f1),
|
|
||||||
APR_UINT64_C(0x510e527fade682d1),
|
|
||||||
APR_UINT64_C(0x9b05688c2b3e6c1f),
|
|
||||||
APR_UINT64_C(0x1f83d9abfb41bd6b),
|
|
||||||
APR_UINT64_C(0x5be0cd19137e2179)
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Constant used by SHA256/384/512_End() functions for converting the
|
* Constant used by SHA256/384/512_End() functions for converting the
|
||||||
* digest to a readable hexadecimal character string:
|
* digest to a readable hexadecimal character string:
|
||||||
@ -537,7 +465,14 @@ void apr__SHA256_Final(sha2_byte digest[], SHA256_CTX* context) {
|
|||||||
*context->buffer = 0x80;
|
*context->buffer = 0x80;
|
||||||
}
|
}
|
||||||
/* Set the bit count: */
|
/* Set the bit count: */
|
||||||
*(sha2_word64*)&context->buffer[SHA256_SHORT_BLOCK_LENGTH] = context->bitcount;
|
{
|
||||||
|
union dummy {
|
||||||
|
apr_uint64_t bitcount;
|
||||||
|
apr_byte_t bytes[8];
|
||||||
|
} bitcount;
|
||||||
|
bitcount.bitcount = context->bitcount;
|
||||||
|
MEMCPY_BCOPY(&context->buffer[SHA256_SHORT_BLOCK_LENGTH], bitcount.bytes, 8);
|
||||||
|
}
|
||||||
|
|
||||||
/* Final transform: */
|
/* Final transform: */
|
||||||
apr__SHA256_Transform(context, (sha2_word32*)context->buffer);
|
apr__SHA256_Transform(context, (sha2_word32*)context->buffer);
|
||||||
@ -591,410 +526,3 @@ char* apr__SHA256_Data(const sha2_byte* data, size_t len, char digest[SHA256_DIG
|
|||||||
apr__SHA256_Update(&context, data, len);
|
apr__SHA256_Update(&context, data, len);
|
||||||
return apr__SHA256_End(&context, digest);
|
return apr__SHA256_End(&context, digest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*** SHA-512: *********************************************************/
|
|
||||||
void apr__SHA512_Init(SHA512_CTX* context) {
|
|
||||||
if (context == (SHA512_CTX*)0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
MEMCPY_BCOPY(context->state, sha512_initial_hash_value, SHA512_DIGEST_LENGTH);
|
|
||||||
MEMSET_BZERO(context->buffer, SHA512_BLOCK_LENGTH);
|
|
||||||
context->bitcount[0] = context->bitcount[1] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef SHA2_UNROLL_TRANSFORM
|
|
||||||
|
|
||||||
/* Unrolled SHA-512 round macros: */
|
|
||||||
#if !APR_IS_BIGENDIAN
|
|
||||||
|
|
||||||
#define ROUND512_0_TO_15(a,b,c,d,e,f,g,h) \
|
|
||||||
REVERSE64(*data++, W512[j]); \
|
|
||||||
T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + \
|
|
||||||
K512[j] + W512[j]; \
|
|
||||||
(d) += T1, \
|
|
||||||
(h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)), \
|
|
||||||
j++
|
|
||||||
|
|
||||||
|
|
||||||
#else /* APR_IS_BIGENDIAN */
|
|
||||||
|
|
||||||
#define ROUND512_0_TO_15(a,b,c,d,e,f,g,h) \
|
|
||||||
T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + \
|
|
||||||
K512[j] + (W512[j] = *data++); \
|
|
||||||
(d) += T1; \
|
|
||||||
(h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)); \
|
|
||||||
j++
|
|
||||||
|
|
||||||
#endif /* APR_IS_BIGENDIAN */
|
|
||||||
|
|
||||||
#define ROUND512(a,b,c,d,e,f,g,h) \
|
|
||||||
s0 = W512[(j+1)&0x0f]; \
|
|
||||||
s0 = sigma0_512(s0); \
|
|
||||||
s1 = W512[(j+14)&0x0f]; \
|
|
||||||
s1 = sigma1_512(s1); \
|
|
||||||
T1 = (h) + Sigma1_512(e) + Ch((e), (f), (g)) + K512[j] + \
|
|
||||||
(W512[j&0x0f] += s1 + W512[(j+9)&0x0f] + s0); \
|
|
||||||
(d) += T1; \
|
|
||||||
(h) = T1 + Sigma0_512(a) + Maj((a), (b), (c)); \
|
|
||||||
j++
|
|
||||||
|
|
||||||
void apr__SHA512_Transform(SHA512_CTX* context, const sha2_word64* data) {
|
|
||||||
sha2_word64 a, b, c, d, e, f, g, h, s0, s1;
|
|
||||||
sha2_word64 T1, *W512 = (sha2_word64*)context->buffer;
|
|
||||||
int j;
|
|
||||||
|
|
||||||
/* Initialize registers with the prev. intermediate value */
|
|
||||||
a = context->state[0];
|
|
||||||
b = context->state[1];
|
|
||||||
c = context->state[2];
|
|
||||||
d = context->state[3];
|
|
||||||
e = context->state[4];
|
|
||||||
f = context->state[5];
|
|
||||||
g = context->state[6];
|
|
||||||
h = context->state[7];
|
|
||||||
|
|
||||||
j = 0;
|
|
||||||
do {
|
|
||||||
ROUND512_0_TO_15(a,b,c,d,e,f,g,h);
|
|
||||||
ROUND512_0_TO_15(h,a,b,c,d,e,f,g);
|
|
||||||
ROUND512_0_TO_15(g,h,a,b,c,d,e,f);
|
|
||||||
ROUND512_0_TO_15(f,g,h,a,b,c,d,e);
|
|
||||||
ROUND512_0_TO_15(e,f,g,h,a,b,c,d);
|
|
||||||
ROUND512_0_TO_15(d,e,f,g,h,a,b,c);
|
|
||||||
ROUND512_0_TO_15(c,d,e,f,g,h,a,b);
|
|
||||||
ROUND512_0_TO_15(b,c,d,e,f,g,h,a);
|
|
||||||
} while (j < 16);
|
|
||||||
|
|
||||||
/* Now for the remaining rounds up to 79: */
|
|
||||||
do {
|
|
||||||
ROUND512(a,b,c,d,e,f,g,h);
|
|
||||||
ROUND512(h,a,b,c,d,e,f,g);
|
|
||||||
ROUND512(g,h,a,b,c,d,e,f);
|
|
||||||
ROUND512(f,g,h,a,b,c,d,e);
|
|
||||||
ROUND512(e,f,g,h,a,b,c,d);
|
|
||||||
ROUND512(d,e,f,g,h,a,b,c);
|
|
||||||
ROUND512(c,d,e,f,g,h,a,b);
|
|
||||||
ROUND512(b,c,d,e,f,g,h,a);
|
|
||||||
} while (j < 80);
|
|
||||||
|
|
||||||
/* Compute the current intermediate hash value */
|
|
||||||
context->state[0] += a;
|
|
||||||
context->state[1] += b;
|
|
||||||
context->state[2] += c;
|
|
||||||
context->state[3] += d;
|
|
||||||
context->state[4] += e;
|
|
||||||
context->state[5] += f;
|
|
||||||
context->state[6] += g;
|
|
||||||
context->state[7] += h;
|
|
||||||
|
|
||||||
/* Clean up */
|
|
||||||
a = b = c = d = e = f = g = h = T1 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#else /* SHA2_UNROLL_TRANSFORM */
|
|
||||||
|
|
||||||
void apr__SHA512_Transform(SHA512_CTX* context, const sha2_word64* data) {
|
|
||||||
sha2_word64 a, b, c, d, e, f, g, h, s0, s1;
|
|
||||||
sha2_word64 T1, T2, *W512 = (sha2_word64*)context->buffer;
|
|
||||||
int j;
|
|
||||||
|
|
||||||
/* Initialize registers with the prev. intermediate value */
|
|
||||||
a = context->state[0];
|
|
||||||
b = context->state[1];
|
|
||||||
c = context->state[2];
|
|
||||||
d = context->state[3];
|
|
||||||
e = context->state[4];
|
|
||||||
f = context->state[5];
|
|
||||||
g = context->state[6];
|
|
||||||
h = context->state[7];
|
|
||||||
|
|
||||||
j = 0;
|
|
||||||
do {
|
|
||||||
#if !APR_IS_BIGENDIAN
|
|
||||||
/* Convert TO host byte order */
|
|
||||||
REVERSE64(*data++, W512[j]);
|
|
||||||
/* Apply the SHA-512 compression function to update a..h */
|
|
||||||
T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + W512[j];
|
|
||||||
#else /* APR_IS_BIGENDIAN */
|
|
||||||
/* Apply the SHA-512 compression function to update a..h with copy */
|
|
||||||
T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + (W512[j] = *data++);
|
|
||||||
#endif /* APR_IS_BIGENDIAN */
|
|
||||||
T2 = Sigma0_512(a) + Maj(a, b, c);
|
|
||||||
h = g;
|
|
||||||
g = f;
|
|
||||||
f = e;
|
|
||||||
e = d + T1;
|
|
||||||
d = c;
|
|
||||||
c = b;
|
|
||||||
b = a;
|
|
||||||
a = T1 + T2;
|
|
||||||
|
|
||||||
j++;
|
|
||||||
} while (j < 16);
|
|
||||||
|
|
||||||
do {
|
|
||||||
/* Part of the message block expansion: */
|
|
||||||
s0 = W512[(j+1)&0x0f];
|
|
||||||
s0 = sigma0_512(s0);
|
|
||||||
s1 = W512[(j+14)&0x0f];
|
|
||||||
s1 = sigma1_512(s1);
|
|
||||||
|
|
||||||
/* Apply the SHA-512 compression function to update a..h */
|
|
||||||
T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] +
|
|
||||||
(W512[j&0x0f] += s1 + W512[(j+9)&0x0f] + s0);
|
|
||||||
T2 = Sigma0_512(a) + Maj(a, b, c);
|
|
||||||
h = g;
|
|
||||||
g = f;
|
|
||||||
f = e;
|
|
||||||
e = d + T1;
|
|
||||||
d = c;
|
|
||||||
c = b;
|
|
||||||
b = a;
|
|
||||||
a = T1 + T2;
|
|
||||||
|
|
||||||
j++;
|
|
||||||
} while (j < 80);
|
|
||||||
|
|
||||||
/* Compute the current intermediate hash value */
|
|
||||||
context->state[0] += a;
|
|
||||||
context->state[1] += b;
|
|
||||||
context->state[2] += c;
|
|
||||||
context->state[3] += d;
|
|
||||||
context->state[4] += e;
|
|
||||||
context->state[5] += f;
|
|
||||||
context->state[6] += g;
|
|
||||||
context->state[7] += h;
|
|
||||||
|
|
||||||
/* Clean up */
|
|
||||||
a = b = c = d = e = f = g = h = T1 = T2 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* SHA2_UNROLL_TRANSFORM */
|
|
||||||
|
|
||||||
void apr__SHA512_Update(SHA512_CTX* context, const sha2_byte *data, size_t len) {
|
|
||||||
unsigned int freespace, usedspace;
|
|
||||||
|
|
||||||
if (len == 0) {
|
|
||||||
/* Calling with no data is valid - we do nothing */
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Sanity check: */
|
|
||||||
assert(context != (SHA512_CTX*)0 && data != (sha2_byte*)0);
|
|
||||||
|
|
||||||
usedspace = (unsigned int)((context->bitcount[0] >> 3)
|
|
||||||
% SHA512_BLOCK_LENGTH);
|
|
||||||
if (usedspace > 0) {
|
|
||||||
/* Calculate how much free space is available in the buffer */
|
|
||||||
freespace = SHA512_BLOCK_LENGTH - usedspace;
|
|
||||||
|
|
||||||
if (len >= freespace) {
|
|
||||||
/* Fill the buffer completely and process it */
|
|
||||||
MEMCPY_BCOPY(&context->buffer[usedspace], data, freespace);
|
|
||||||
ADDINC128(context->bitcount, freespace << 3);
|
|
||||||
len -= freespace;
|
|
||||||
data += freespace;
|
|
||||||
apr__SHA512_Transform(context, (sha2_word64*)context->buffer);
|
|
||||||
} else {
|
|
||||||
/* The buffer is not yet full */
|
|
||||||
MEMCPY_BCOPY(&context->buffer[usedspace], data, len);
|
|
||||||
ADDINC128(context->bitcount, len << 3);
|
|
||||||
/* Clean up: */
|
|
||||||
usedspace = freespace = 0;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
while (len >= SHA512_BLOCK_LENGTH) {
|
|
||||||
/* Process as many complete blocks as we can */
|
|
||||||
apr__SHA512_Transform(context, (sha2_word64*)data);
|
|
||||||
ADDINC128(context->bitcount, SHA512_BLOCK_LENGTH << 3);
|
|
||||||
len -= SHA512_BLOCK_LENGTH;
|
|
||||||
data += SHA512_BLOCK_LENGTH;
|
|
||||||
}
|
|
||||||
if (len > 0) {
|
|
||||||
/* There's left-overs, so save 'em */
|
|
||||||
MEMCPY_BCOPY(context->buffer, data, len);
|
|
||||||
ADDINC128(context->bitcount, len << 3);
|
|
||||||
}
|
|
||||||
/* Clean up: */
|
|
||||||
usedspace = freespace = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void apr__SHA512_Last(SHA512_CTX* context) {
|
|
||||||
unsigned int usedspace;
|
|
||||||
|
|
||||||
usedspace = (unsigned int)((context->bitcount[0] >> 3)
|
|
||||||
% SHA512_BLOCK_LENGTH);
|
|
||||||
#if !APR_IS_BIGENDIAN
|
|
||||||
/* Convert FROM host byte order */
|
|
||||||
REVERSE64(context->bitcount[0],context->bitcount[0]);
|
|
||||||
REVERSE64(context->bitcount[1],context->bitcount[1]);
|
|
||||||
#endif
|
|
||||||
if (usedspace > 0) {
|
|
||||||
/* Begin padding with a 1 bit: */
|
|
||||||
context->buffer[usedspace++] = 0x80;
|
|
||||||
|
|
||||||
if (usedspace <= SHA512_SHORT_BLOCK_LENGTH) {
|
|
||||||
/* Set-up for the last transform: */
|
|
||||||
MEMSET_BZERO(&context->buffer[usedspace], SHA512_SHORT_BLOCK_LENGTH - usedspace);
|
|
||||||
} else {
|
|
||||||
if (usedspace < SHA512_BLOCK_LENGTH) {
|
|
||||||
MEMSET_BZERO(&context->buffer[usedspace], SHA512_BLOCK_LENGTH - usedspace);
|
|
||||||
}
|
|
||||||
/* Do second-to-last transform: */
|
|
||||||
apr__SHA512_Transform(context, (sha2_word64*)context->buffer);
|
|
||||||
|
|
||||||
/* And set-up for the last transform: */
|
|
||||||
MEMSET_BZERO(context->buffer, SHA512_BLOCK_LENGTH - 2);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
/* Prepare for final transform: */
|
|
||||||
MEMSET_BZERO(context->buffer, SHA512_SHORT_BLOCK_LENGTH);
|
|
||||||
|
|
||||||
/* Begin padding with a 1 bit: */
|
|
||||||
*context->buffer = 0x80;
|
|
||||||
}
|
|
||||||
/* Store the length of input data (in bits): */
|
|
||||||
*(sha2_word64*)&context->buffer[SHA512_SHORT_BLOCK_LENGTH] = context->bitcount[1];
|
|
||||||
*(sha2_word64*)&context->buffer[SHA512_SHORT_BLOCK_LENGTH+8] = context->bitcount[0];
|
|
||||||
|
|
||||||
/* Final transform: */
|
|
||||||
apr__SHA512_Transform(context, (sha2_word64*)context->buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
void apr__SHA512_Final(sha2_byte digest[], SHA512_CTX* context) {
|
|
||||||
sha2_word64 *d = (sha2_word64*)digest;
|
|
||||||
|
|
||||||
/* Sanity check: */
|
|
||||||
assert(context != (SHA512_CTX*)0);
|
|
||||||
|
|
||||||
/* If no digest buffer is passed, we don't bother doing this: */
|
|
||||||
if (digest != (sha2_byte*)0) {
|
|
||||||
apr__SHA512_Last(context);
|
|
||||||
|
|
||||||
/* Save the hash data for output: */
|
|
||||||
#if !APR_IS_BIGENDIAN
|
|
||||||
{
|
|
||||||
/* Convert TO host byte order */
|
|
||||||
int j;
|
|
||||||
for (j = 0; j < 8; j++) {
|
|
||||||
REVERSE64(context->state[j],context->state[j]);
|
|
||||||
*d++ = context->state[j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else /* APR_IS_BIGENDIAN */
|
|
||||||
MEMCPY_BCOPY(d, context->state, SHA512_DIGEST_LENGTH);
|
|
||||||
#endif /* APR_IS_BIGENDIAN */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Zero out state data */
|
|
||||||
MEMSET_BZERO(context, sizeof(*context));
|
|
||||||
}
|
|
||||||
|
|
||||||
char *apr__SHA512_End(SHA512_CTX* context, char buffer[]) {
|
|
||||||
sha2_byte digest[SHA512_DIGEST_LENGTH], *d = digest;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
/* Sanity check: */
|
|
||||||
assert(context != (SHA512_CTX*)0);
|
|
||||||
|
|
||||||
if (buffer != (char*)0) {
|
|
||||||
apr__SHA512_Final(digest, context);
|
|
||||||
|
|
||||||
for (i = 0; i < SHA512_DIGEST_LENGTH; i++) {
|
|
||||||
*buffer++ = sha2_hex_digits[(*d & 0xf0) >> 4];
|
|
||||||
*buffer++ = sha2_hex_digits[*d & 0x0f];
|
|
||||||
d++;
|
|
||||||
}
|
|
||||||
*buffer = (char)0;
|
|
||||||
} else {
|
|
||||||
MEMSET_BZERO(context, sizeof(*context));
|
|
||||||
}
|
|
||||||
MEMSET_BZERO(digest, SHA512_DIGEST_LENGTH);
|
|
||||||
return buffer;
|
|
||||||
}
|
|
||||||
|
|
||||||
char* apr__SHA512_Data(const sha2_byte* data, size_t len, char digest[SHA512_DIGEST_STRING_LENGTH]) {
|
|
||||||
SHA512_CTX context;
|
|
||||||
|
|
||||||
apr__SHA512_Init(&context);
|
|
||||||
apr__SHA512_Update(&context, data, len);
|
|
||||||
return apr__SHA512_End(&context, digest);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*** SHA-384: *********************************************************/
|
|
||||||
void apr__SHA384_Init(SHA384_CTX* context) {
|
|
||||||
if (context == (SHA384_CTX*)0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
MEMCPY_BCOPY(context->state, sha384_initial_hash_value, SHA512_DIGEST_LENGTH);
|
|
||||||
MEMSET_BZERO(context->buffer, SHA384_BLOCK_LENGTH);
|
|
||||||
context->bitcount[0] = context->bitcount[1] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void apr__SHA384_Update(SHA384_CTX* context, const sha2_byte* data, size_t len) {
|
|
||||||
apr__SHA512_Update((SHA512_CTX*)context, data, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
void apr__SHA384_Final(sha2_byte digest[], SHA384_CTX* context) {
|
|
||||||
sha2_word64 *d = (sha2_word64*)digest;
|
|
||||||
|
|
||||||
/* Sanity check: */
|
|
||||||
assert(context != (SHA384_CTX*)0);
|
|
||||||
|
|
||||||
/* If no digest buffer is passed, we don't bother doing this: */
|
|
||||||
if (digest != (sha2_byte*)0) {
|
|
||||||
apr__SHA512_Last((SHA512_CTX*)context);
|
|
||||||
|
|
||||||
/* Save the hash data for output: */
|
|
||||||
#if !APR_IS_BIGENDIAN
|
|
||||||
{
|
|
||||||
/* Convert TO host byte order */
|
|
||||||
int j;
|
|
||||||
for (j = 0; j < 6; j++) {
|
|
||||||
REVERSE64(context->state[j],context->state[j]);
|
|
||||||
*d++ = context->state[j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else /* APR_IS_BIGENDIAN */
|
|
||||||
MEMCPY_BCOPY(d, context->state, SHA384_DIGEST_LENGTH);
|
|
||||||
#endif /* APR_IS_BIGENDIAN */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Zero out state data */
|
|
||||||
MEMSET_BZERO(context, sizeof(*context));
|
|
||||||
}
|
|
||||||
|
|
||||||
char *apr__SHA384_End(SHA384_CTX* context, char buffer[]) {
|
|
||||||
sha2_byte digest[SHA384_DIGEST_LENGTH], *d = digest;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
/* Sanity check: */
|
|
||||||
assert(context != (SHA384_CTX*)0);
|
|
||||||
|
|
||||||
if (buffer != (char*)0) {
|
|
||||||
apr__SHA384_Final(digest, context);
|
|
||||||
|
|
||||||
for (i = 0; i < SHA384_DIGEST_LENGTH; i++) {
|
|
||||||
*buffer++ = sha2_hex_digits[(*d & 0xf0) >> 4];
|
|
||||||
*buffer++ = sha2_hex_digits[*d & 0x0f];
|
|
||||||
d++;
|
|
||||||
}
|
|
||||||
*buffer = (char)0;
|
|
||||||
} else {
|
|
||||||
MEMSET_BZERO(context, sizeof(*context));
|
|
||||||
}
|
|
||||||
MEMSET_BZERO(digest, SHA384_DIGEST_LENGTH);
|
|
||||||
return buffer;
|
|
||||||
}
|
|
||||||
|
|
||||||
char* apr__SHA384_Data(const sha2_byte* data, size_t len, char digest[SHA384_DIGEST_STRING_LENGTH]) {
|
|
||||||
SHA384_CTX context;
|
|
||||||
|
|
||||||
apr__SHA384_Init(&context);
|
|
||||||
apr__SHA384_Update(&context, data, len);
|
|
||||||
return apr__SHA384_End(&context, digest);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -29,16 +29,10 @@ extern "C" {
|
|||||||
|
|
||||||
#include "apr.h"
|
#include "apr.h"
|
||||||
|
|
||||||
/*** SHA-256/384/512 Various Length Definitions ***********************/
|
/*** SHA-256 Various Length Definitions ***********************/
|
||||||
#define SHA256_BLOCK_LENGTH 64
|
#define SHA256_BLOCK_LENGTH 64
|
||||||
#define SHA256_DIGEST_LENGTH 32
|
#define SHA256_DIGEST_LENGTH 32
|
||||||
#define SHA256_DIGEST_STRING_LENGTH (SHA256_DIGEST_LENGTH * 2 + 1)
|
#define SHA256_DIGEST_STRING_LENGTH (SHA256_DIGEST_LENGTH * 2 + 1)
|
||||||
#define SHA384_BLOCK_LENGTH 128
|
|
||||||
#define SHA384_DIGEST_LENGTH 48
|
|
||||||
#define SHA384_DIGEST_STRING_LENGTH (SHA384_DIGEST_LENGTH * 2 + 1)
|
|
||||||
#define SHA512_BLOCK_LENGTH 128
|
|
||||||
#define SHA512_DIGEST_LENGTH 64
|
|
||||||
#define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1)
|
|
||||||
|
|
||||||
|
|
||||||
/*** SHA-256/384/512 Context Structures *******************************/
|
/*** SHA-256/384/512 Context Structures *******************************/
|
||||||
@ -47,13 +41,6 @@ typedef struct _SHA256_CTX {
|
|||||||
apr_uint64_t bitcount;
|
apr_uint64_t bitcount;
|
||||||
apr_byte_t buffer[SHA256_BLOCK_LENGTH];
|
apr_byte_t buffer[SHA256_BLOCK_LENGTH];
|
||||||
} SHA256_CTX;
|
} SHA256_CTX;
|
||||||
typedef struct _SHA512_CTX {
|
|
||||||
apr_uint64_t state[8];
|
|
||||||
apr_uint64_t bitcount[2];
|
|
||||||
apr_byte_t buffer[SHA512_BLOCK_LENGTH];
|
|
||||||
} SHA512_CTX;
|
|
||||||
|
|
||||||
typedef SHA512_CTX SHA384_CTX;
|
|
||||||
|
|
||||||
|
|
||||||
/*** SHA-256/384/512 Function Prototypes ******************************/
|
/*** SHA-256/384/512 Function Prototypes ******************************/
|
||||||
@ -64,20 +51,6 @@ char* apr__SHA256_End(SHA256_CTX *, char [SHA256_DIGEST_STRING_LENGTH]);
|
|||||||
char* apr__SHA256_Data(const apr_byte_t *, size_t,
|
char* apr__SHA256_Data(const apr_byte_t *, size_t,
|
||||||
char [SHA256_DIGEST_STRING_LENGTH]);
|
char [SHA256_DIGEST_STRING_LENGTH]);
|
||||||
|
|
||||||
void apr__SHA384_Init(SHA384_CTX *);
|
|
||||||
void apr__SHA384_Update(SHA384_CTX *, const apr_byte_t *, size_t);
|
|
||||||
void apr__SHA384_Final(apr_byte_t [SHA384_DIGEST_LENGTH], SHA384_CTX *);
|
|
||||||
char* apr__SHA384_End(SHA384_CTX *, char [SHA384_DIGEST_STRING_LENGTH]);
|
|
||||||
char* apr__SHA384_Data(const apr_byte_t *, size_t,
|
|
||||||
char [SHA384_DIGEST_STRING_LENGTH]);
|
|
||||||
|
|
||||||
void apr__SHA512_Init(SHA512_CTX *);
|
|
||||||
void apr__SHA512_Update(SHA512_CTX *, const apr_byte_t *, size_t);
|
|
||||||
void apr__SHA512_Final(apr_byte_t [SHA512_DIGEST_LENGTH], SHA512_CTX *);
|
|
||||||
char* apr__SHA512_End(SHA512_CTX *, char [SHA512_DIGEST_STRING_LENGTH]);
|
|
||||||
char* apr__SHA512_Data(const apr_byte_t *, size_t,
|
|
||||||
char [SHA512_DIGEST_STRING_LENGTH]);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
@ -1,3 +1,19 @@
|
|||||||
|
/* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||||
|
* (the "License"); you may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <apr.h>
|
#include <apr.h>
|
||||||
#include <apr_random.h>
|
#include <apr_random.h>
|
||||||
#include <apr_pools.h>
|
#include <apr_pools.h>
|
||||||
|
@ -734,11 +734,14 @@ APR_DECLARE(void) apr_table_mergen(apr_table_t *t, const char *key,
|
|||||||
|
|
||||||
#if APR_POOL_DEBUG
|
#if APR_POOL_DEBUG
|
||||||
{
|
{
|
||||||
if (!apr_pool_is_ancestor(apr_pool_find(key), t->a.pool)) {
|
apr_pool_t *pool;
|
||||||
|
pool = apr_pool_find(key);
|
||||||
|
if ((pool != key) && (!apr_pool_is_ancestor(pool, t->a.pool))) {
|
||||||
fprintf(stderr, "apr_table_mergen: key not in ancestor pool of t\n");
|
fprintf(stderr, "apr_table_mergen: key not in ancestor pool of t\n");
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
if (!apr_pool_is_ancestor(apr_pool_find(val), t->a.pool)) {
|
pool = apr_pool_find(val);
|
||||||
|
if ((pool != val) && (!apr_pool_is_ancestor(pool, t->a.pool))) {
|
||||||
fprintf(stderr, "apr_table_mergen: val not in ancestor pool of t\n");
|
fprintf(stderr, "apr_table_mergen: val not in ancestor pool of t\n");
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
@ -96,7 +96,7 @@ APR_DECLARE(apr_status_t) apr_threadattr_detach_get(apr_threadattr_t *attr)
|
|||||||
#else
|
#else
|
||||||
pthread_attr_getdetachstate(&attr->attr, &state);
|
pthread_attr_getdetachstate(&attr->attr, &state);
|
||||||
#endif
|
#endif
|
||||||
if (state == 1)
|
if (state == DETACH_ARG(1))
|
||||||
return APR_DETACH;
|
return APR_DETACH;
|
||||||
return APR_NOTDETACH;
|
return APR_NOTDETACH;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user