On Wed, Apr 26, 2017 at 4:07 AM, Nick Kew <n...@apache.org> wrote:
>
> A minimalist approach is Good.  But when you say minimalist, do you
> mean minimalist efforts as in "this should work out-of-the-box"
> or minimalist efforts as in a README.platform?  Are we likely
> looking at more code commits?

Point of reference, I've ever bothered with gcc on AIX or HPUX, simply
use native compilers and linkers, but either aught to work.

Starting minimalist on AIX6.1, enabling timedlocks. Both the gnu
toolchain in freeware as well as the modern xlc compiler are all in the
path;

  
PATH=/usr/vac/bin:/usr/ccs/bin:/usr/local/bin:/opt/freeware/bin:/usr/sbin:/usr/bin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java6_64/bin

  ./configure --enable-timedlocks

Right off the bat we find new rpm hokum in our configure;
rpm_share: 0645-025 Unable to locate command module tar.
rpm_share: 0645-007 ATTENTION: init_baselib() returned an unexpected result.

(there is IBM tar as well as gtar in that path). These are just unwarranted
stderr warnings, so no crisis yet. gcc/gnu toolchain is detected

build is successful, no warnings or errors.

make test is a bit of a mess, here are just the stderr observations;

Line 61:        0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 77:        0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 102:       0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 126:       0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 147:       0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 163:       0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 188:       0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 212:       0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 93: Creation of large file (rlimit, quota or fs)
Line 114: Large file tests not enabled
Line 133: Large file tests not enabled
Line 146: Large file tests not enabled
Line 204: Large file tests not enabled
Line 179: Large file tests not enabled
Line 232: Large file tests not enabled
Line 259: Large file tests not enabled
Line 286: Large file tests not enabled
Line 302: Large file tests not enabled
Line 584: pollcb interface not supported
Line 611: pollcb interface not supported
Line 637: pollcb interface not supported
Line 653: pollcb interface not supported
Line 836: pollcb interface not supported
Line 733: pollcb interface not supported
Line 206: default_timedlock() should time out => Connection timed out
Line 206: sysvsem_timedlock() should time out => Connection timed out
Line 206: default_timed_timedlock() should time out => Connection timed out
Line 116: Problem generating sockaddr (670008): Hostname and service
name not provided or found

Line 389: expected something other than <0>, but saw <0>
Line 433: Cannot test if connect completes synchronously
Line 84: TCP isn't corkable
make: 1254-004 The error code from the last command is 1.

Stop.
make: 1254-004 The error code from the last command is 2.

Stop.

The stdout test results;

        teststatus=0;  progfailed="";  for prog in testlockperf
testmutexscope  testall  sendfile ; do  if test "$prog" = 'sendfile';
then  for mode in blocking nonblocking timeout; do  ./$prog client
$mode startserver 127.0.0.1;  status=$?;  if test $status != 0; then
teststatus=$status;  progfailed="$progfailed '$prog mode $mode'";  fi;
 done;  else  ./$prog -v;  status=$?;  if test $status != 0; then
teststatus=$status;  progfailed="$progfailed $prog";  fi;  fi;  done;
if test $teststatus != 0; then  echo "Programs failed:$progfailed";
fi;  exit $teststatus
APR Lock Performance Test
==============

apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 1 threads    OK
microseconds: 278207 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 1 threads    OK
microseconds: 287077 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (TIMED)             OK
    Starting 1 threads    OK
microseconds: 1356383 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 1 threads    OK
microseconds: 398026 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 2 threads    OK
microseconds: 1808399 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 2 threads    OK
microseconds: 2053316 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (TIMED)             OK
    Starting 2 threads    OK
microseconds: 1595797 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 2 threads    OK
microseconds: 2207305 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 3 threads    OK
microseconds: 2026627 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 3 threads    OK
microseconds: 2038563 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (TIMED)             OK
    Starting 3 threads    OK
microseconds: 2380387 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 3 threads    OK
microseconds: 7393111 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 4 threads    OK
microseconds: 2756837 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 4 threads    OK
microseconds: 2667726 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (TIMED)             OK
    Starting 4 threads    OK
microseconds: 3643844 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 4 threads    OK
microseconds: 19533536 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 5 threads    OK
microseconds: 4020024 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 5 threads    OK
microseconds: 3701148 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (TIMED)             OK
    Starting 5 threads    OK
microseconds: 3501648 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 5 threads    OK
microseconds: 30114925 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 6 threads    OK
microseconds: 3502252 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 6 threads    OK
microseconds: 4914747 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (TIMED)             OK
    Starting 6 threads    OK
microseconds: 4248309 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 6 threads    OK
microseconds: 38295396 usec
Trying proc mutexes with mechanism `default'...
  mutex mechanism `default' is global in scope on this platform.
Trying global mutexes with mechanism `default'...
  no problem encountered...
Trying proc mutexes with mechanism `sysvsem'...
  mutex mechanism `sysvsem' is global in scope on this platform.
Trying global mutexes with mechanism `sysvsem'...
  no problem encountered...
Trying proc mutexes with mechanism `posix'...
  mutex mechanism `posix' is global in scope on this platform.
Trying global mutexes with mechanism `posix'...
  no problem encountered...
Trying proc mutexes with mechanism `fcntl'...
  mutex mechanism `fcntl' is *NOT* global in scope on this platform.
Trying global mutexes with mechanism `fcntl'...
  no problem encountered...
Trying proc mutexes with mechanism `proc_pthread'...
  mutex mechanism `proc_pthread' is global in scope on this platform.
Trying global mutexes with mechanism `proc_pthread'...
  no problem encountered...
Trying proc mutexes with mechanism `default_timed'...
  mutex mechanism `default_timed' is global in scope on this platform.
Trying global mutexes with mechanism `default_timed'...
  no problem encountered...
testatomic          :  SUCCESS
testdir             :  SUCCESS
testdso             :  FAILED 8 of 9
testdup             :  SUCCESS
testenv             :  SUCCESS
testescape          :  SUCCESS
testfile            :  SUCCESS
testfilecopy        :  SUCCESS
testfileinfo        :  SUCCESS
testflock           :  SUCCESS
testfmt             :  SUCCESS
testfnmatch         :  SUCCESS
testargs            :  SUCCESS
testhash            :  SUCCESS
testipsub           :  SUCCESS
testlock            :  SUCCESS
testcond            :  SUCCESS
testlfs             :  SUCCESS
testmmap            :  SUCCESS
testnames           :  SUCCESS
testoc              :  SUCCESS
testpath            :  SUCCESS
testpipe            :  SUCCESS
testpoll            :  SUCCESS
testpools           :  SUCCESS
testproc            :  SUCCESS
testprocmutex       :  FAILED 3 of 6
testrand            :  SUCCESS
testsleep           :  SUCCESS
testshm             :  SUCCESS
testsock            :  FAILED 2 of 16
testsockets         :  SUCCESS
testsockopt         :  SUCCESS
teststr             :  SUCCESS
teststrnatcmp       :  SUCCESS
testtable           :  SUCCESS
testtemp            :  SUCCESS
testthread          :  SUCCESS
testtime            :  SUCCESS
testud              :  SUCCESS
testuser            :  SUCCESS
testvsn             :  SUCCESS
testskiplist        :  SUCCESS
Failed Tests            Total   Fail    Failed %
===================================================
testdso                     9      8     88.89%
testprocmutex               6      3     50.00%
testsock                   16      2     12.50%



The less-than-straightforward build is due to crazy AIX
quirks convincing their xlc/ccs toolchains to emit anything
that is 64 bit on a 64 bit build box;

MAKE=gmake NM="nm -B -X64" AR="ar -X64" CC="xlc_r -qarch=pwr5
-qtune=pwr6 -q64" LD="xlc_r -qarch=pwr5 -qtune=pwr6 -q64" CFLAGS="-O2
-qmaxmem=32768 -g " LDFLAGS="-Wl,-brtl" SH_LDFLAGS="-G"
../apr-1.6/configure --build=powerpc64-ibm-aix6.1.6.0 --without-gnu-ld
--enable-timedlocks

Problems seem to lie in sctp.h again;

configure: WARNING: netinet/sctp.h: present but cannot be compiled
configure: WARNING: netinet/sctp.h:     check for missing prerequisite headers?
configure: WARNING: netinet/sctp.h: see the Autoconf documentation
configure: WARNING: netinet/sctp.h:     section "Present But Cannot Be Compiled"
configure: WARNING: netinet/sctp.h: proceeding with the preprocessor's result
configure: WARNING: netinet/sctp.h: in the future, the compiler will
take precedence
configure: WARNING:     ## ------------------------------------------ ##
configure: WARNING:     ## Report this to the AC_PACKAGE_NAME lists.  ##
configure: WARNING:     ## ------------------------------------------ ##

The actual delta between the two configure attempts;

$ diff gcc.configure.log xlc.configure.log
1,3c1,3
< checking build system type... powerpc-ibm-aix6.1.6.0
< checking host system type... powerpc-ibm-aix6.1.6.0
< checking target system type... powerpc-ibm-aix6.1.6.0
---
> checking build system type... powerpc64-ibm-aix6.1.6.0
> checking host system type... powerpc64-ibm-aix6.1.6.0
> checking target system type... powerpc64-ibm-aix6.1.6.0
5c5
< Platform: powerpc-ibm-aix6.1.6.0
---
> Platform: powerpc64-ibm-aix6.1.6.0
9c9
< checking for gcc... gcc
---
> checking for gcc... xlc_r -qarch=pwr5 -qtune=pwr6 -q64
15,17c15,17
< checking whether we are using the GNU C compiler... yes
< checking whether gcc accepts -g... yes
< checking for gcc option to accept ANSI C... none needed
---
> checking whether we are using the GNU C compiler... no
> checking whether xlc_r -qarch=pwr5 -qtune=pwr6 -q64 accepts -g... yes
> checking for xlc_r -qarch=pwr5 -qtune=pwr6 -q64 option to accept ANSI C... 
> none needed
19c19
< Applying APR hints file rules for powerpc-ibm-aix6.1.6.0
---
> Applying APR hints file rules for powerpc64-ibm-aix6.1.6.0
20a21,22
>   setting AIX_XLC to "yes"
>   adding "-qHALT=E" to CFLAGS
23d24
<   setting LDFLAGS to "-Wl,-brtl"
25,26c26,27
< checking whether make sets $(MAKE)... yes
< checking how to run the C preprocessor... gcc -E
---
> checking whether gmake sets $(MAKE)... yes
> checking how to run the C preprocessor... xlc_r -qarch=pwr5 -qtune=pwr6 -q64 
> -E
56,59c57,60
< checking for ld used by gcc... /usr/bin/ld
< checking if the linker (/usr/bin/ld) is GNU ld... no
< checking for /usr/bin/ld option to reload object files... -r
< checking for BSD-compatible nm... /usr/ccs/bin/nm -B
---
> checking for non-GNU ld... /usr/ccs/bin/ld
> checking if the linker (/usr/ccs/bin/ld) is GNU ld... no
> checking for /usr/ccs/bin/ld option to reload object files... -r
> checking for BSD-compatible nm... nm -B -X64
102c103
< checking command to parse /usr/ccs/bin/nm -B output from gcc object... ok
---
> checking command to parse nm -B -X64 output from xlc_r -qarch=pwr5 
> -qtune=pwr6 -q64 object... ok
107,111c108,111
< checking if gcc supports -fno-rtti -fno-exceptions... no
< checking for gcc option to produce PIC...
< checking if gcc static flag -static works... no
< checking if gcc supports -c -o file.o... yes
< checking whether the gcc linker (/usr/bin/ld) supports shared libraries... no
---
> checking for xlc_r -qarch=pwr5 -qtune=pwr6 -q64 option to produce PIC...
> checking if xlc_r -qarch=pwr5 -qtune=pwr6 -q64 static flag -bnso 
> -bI:/lib/syscalls.exp works... no
> checking if xlc_r -qarch=pwr5 -qtune=pwr6 -q64 supports -c -o file.o... yes
> checking whether the xlc_r -qarch=pwr5 -qtune=pwr6 -q64 linker (xlc_r 
> -qarch=pwr5 -qtune=pwr6 -q64) supports shared libraries... no
123,125c123,129
< checking whether the compiler provides atomic builtins... yes
< checking whether to enable -D_LARGEFILE64_SOURCE... yes
<   adding "-D_LARGEFILE64_SOURCE" to CPPFLAGS
---
> checking whether the compiler provides atomic builtins... no
> checking if xlc_r -qarch=pwr5 -qtune=pwr6 -q64 -MM can create proper make 
> dependencies... no
> checking if xlc_r -qarch=pwr5 -qtune=pwr6 -q64 -M can create proper make 
> dependencies... no
> checking if xlc_r -qarch=pwr5 -qtune=pwr6 -q64 -E -MM can create proper make 
> dependencies... no
> checking if xlc_r -qarch=pwr5 -qtune=pwr6 -q64 -E -M can create proper make 
> dependencies... no
> checking if cpp -M can create proper make dependencies... yes
> checking whether to enable -D_LARGEFILE64_SOURCE... no
139,140c143
< checking for CFLAGS needed for pthreads... -pthread
<   adding "-pthread" to CFLAGS
---
> checking for CFLAGS needed for pthreads... none
248c251,252
< checking size of void*... 4
---
> checking size of void*... 8
> sendfile support disabled to avoid system problem
449c453
< checking size of void*... (cached) 4
---
> checking size of void*... (cached) 8
455c459
< checking size of long... 4
---
> checking size of long... 8
463c467
< checking whether ssize_t and long are the same... yes
---
> checking whether ssize_t and long are the same... no
465,466c469,470
< checking whether size_t and unsigned long are the same... yes
< checking size of ssize_t... 4
---
> checking whether size_t and unsigned long are the same... no
> checking size of ssize_t... 8
468,478c472,477
< checking size of size_t... 4
< checking which format to use for apr_size_t... %lu
< checking size of off_t... 4
< checking for mmap64... yes
< checking for sendfile64... no
< checking for sendfilev64... no
< checking for readdir64_r... yes
< checking for mkstemp64... yes
< checking which type to use for apr_off_t... off64_t
< checking size of ino_t... 4
< configure: using unsigned long for ino_t
---
> checking size of size_t... 8
> checking which format to use for apr_size_t... %ld
> checking size of off_t... 8
> checking which type to use for apr_off_t... off_t
> checking size of ino_t... 8
> configure: using ino_t for ino_t
480c479
< checking size of struct iovec... 8
---
> checking size of struct iovec... 16
488c487
< checking for strtoll... yes
---
> checking for strtol... yes
608,612c607,611
<   setting EXTRA_CPPFLAGS to "-U__STR__ -D_THREAD_SAFE -D_LARGEFILE64_SOURCE"
<   restoring CFLAGS to ""
<   setting EXTRA_CFLAGS to "-g -O2 -pthread"
<   restoring LDFLAGS to ""
<   setting EXTRA_LDFLAGS to "-Wl,-brtl"
---
>   setting EXTRA_CPPFLAGS to "-U__STR__ -D_THREAD_SAFE"
>   restoring CFLAGS to "-O2 -qmaxmem=32768 -g "
>   setting EXTRA_CFLAGS to " -qHALT=E"
>   restoring LDFLAGS to "-Wl,-brtl"
>   setting EXTRA_LDFLAGS to ""

Some of the specific emits relating to threading and mutexes
commmon to both attempts;

Checking for Locking...
checking for semget... yes
checking for semctl... yes
checking for semop... yes
checking for semtimedop... yes
checking for flock... no
checking for semaphore.h... (cached) yes
checking for library containing sem_open... none required
checking for sem_close... yes
checking for sem_unlink... yes
checking for sem_post... yes
checking for sem_wait... yes
checking for sem_timedwait... yes
checking OS.h usability... no
checking OS.h presence... no
checking for OS.h... no
checking for create_sem... no
checking for acquire_sem... no
checking for acquire_sem_etc... no
checking for working sem_open... yes
checking for union semun in sys/sem.h... no
checking for LOCK_EX in sys/file.h... yes
checking for F_SETLK in fcntl.h... yes
checking for SEM_UNDO in sys/sem.h... yes
checking for POLLIN in poll.h sys/poll.h... yes
checking for PTHREAD_PROCESS_SHARED in pthread.h... yes
checking for pthread_mutex_timedlock... yes
checking for pthread_mutexattr_setpshared... yes
checking for working PROCESS_SHARED locks... yes
checking for robust cross-process mutex support... no
checking for pthread_condattr_setpshared... yes
decision on apr_lock implementation method... SysV IPC semget()
checking if fcntl returns EACCES when F_SETLK is already held... yes
checking if all interprocess locks affect threads... no
checking if POSIX sems affect threads in the same process... no
checking if SysV sems affect threads in the same process... yes
checking if fcntl locks affect threads in the same process... no
checking if flock locks affect threads in the same process... no
checking for entropy source... /dev/urandom

Test results, stderr first again;

      52  1500-010: (W) WARNING in main: Infinite loop.  Program may not stop.
      19  1500-010: (W) WARNING in main: Infinite loop.  Program may not stop.
Line 61:        0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 77:        0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 102:       0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 126:       0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 147:       0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 163:       0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 188:       0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 212:       0509-022 Cannot load module
/home/hudson/workspace/apr-1.6/test/.libs/libmod_test.so.
        0509-026 System error: A file or directory in the path name
does not exist.
Line 349: LFS support a no-op in 64-bit builds
Line 584: pollcb interface not supported
Line 611: pollcb interface not supported
Line 637: pollcb interface not supported
Line 653: pollcb interface not supported
Line 836: pollcb interface not supported
Line 733: pollcb interface not supported
Line 206: default_timedlock() should time out => Connection timed out
Line 206: sysvsem_timedlock() should time out => Connection timed out
Line 206: default_timed_timedlock() should time out => Connection timed out
Line 116: Problem generating sockaddr (670008): Hostname and service
name not provided or found

Line 389: expected something other than <0>, but saw <0>
Line 433: Cannot test if connect completes synchronously
Line 84: TCP isn't corkable
make: 1254-004 The error code from the last command is 1.

Stop.
make: 1254-004 The error code from the last command is 2.

Stop.

Test results from 64-bit xlc AIX;

        teststatus=0;  progfailed="";  for prog in testlockperf
testmutexscope  testall  sendfile ; do  if test "$prog" = 'sendfile';
then  for mode in blocking nonblocking timeout; do  ./$prog client
$mode startserver 127.0.0.1;  status=$?;  if test $status != 0; then
teststatus=$status;  progfailed="$progfailed '$prog mode $mode'";  fi;
 done;  else  ./$prog -v;  status=$?;  if test $status != 0; then
teststatus=$status;  progfailed="$progfailed $prog";  fi;  fi;  done;
if test $teststatus != 0; then  echo "Programs failed:$progfailed";
fi;  exit $teststatus
APR Lock Performance Test
==============

apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 1 threads    OK
microseconds: 310018 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 1 threads    OK
microseconds: 315272 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (TIMED)             OK
    Starting 1 threads    OK
microseconds: 563044 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 1 threads    OK
microseconds: 380313 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 2 threads    OK
microseconds: 1897984 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 2 threads    OK
microseconds: 822725 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (TIMED)             OK
    Starting 2 threads    OK
microseconds: 831952 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 2 threads    OK
microseconds: 1509737 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 3 threads    OK
microseconds: 1440199 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 3 threads    OK
microseconds: 2356049 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (TIMED)             OK
    Starting 3 threads    OK
microseconds: 1959389 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 3 threads    OK
microseconds: 6620914 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 4 threads    OK
microseconds: 2393626 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 4 threads    OK
microseconds: 3042968 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (TIMED)             OK
    Starting 4 threads    OK
microseconds: 3907215 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 4 threads    OK
microseconds: 19608376 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 5 threads    OK
microseconds: 2717510 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 5 threads    OK
microseconds: 4320005 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (TIMED)             OK
    Starting 5 threads    OK
microseconds: 4512658 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 5 threads    OK
microseconds: 30609930 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 6 threads    OK
microseconds: 5001631 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 6 threads    OK
microseconds: 3593701 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (TIMED)             OK
    Starting 6 threads    OK
microseconds: 6252176 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 6 threads    OK
microseconds: 41184920 usec
Trying proc mutexes with mechanism `default'...
  mutex mechanism `default' is global in scope on this platform.
Trying global mutexes with mechanism `default'...
  no problem encountered...
Trying proc mutexes with mechanism `sysvsem'...
  mutex mechanism `sysvsem' is global in scope on this platform.
Trying global mutexes with mechanism `sysvsem'...
  no problem encountered...
Trying proc mutexes with mechanism `posix'...
  mutex mechanism `posix' is global in scope on this platform.
Trying global mutexes with mechanism `posix'...
  no problem encountered...
Trying proc mutexes with mechanism `fcntl'...
  mutex mechanism `fcntl' is *NOT* global in scope on this platform.
Trying global mutexes with mechanism `fcntl'...
  no problem encountered...
Trying proc mutexes with mechanism `proc_pthread'...
  mutex mechanism `proc_pthread' is global in scope on this platform.
Trying global mutexes with mechanism `proc_pthread'...
  no problem encountered...
Trying proc mutexes with mechanism `default_timed'...
  mutex mechanism `default_timed' is global in scope on this platform.
Trying global mutexes with mechanism `default_timed'...
  no problem encountered...
testatomic          :  SUCCESS
testdir             :  SUCCESS
testdso             :  FAILED 8 of 9
testdup             :  SUCCESS
testenv             :  SUCCESS
testescape          :  SUCCESS
testfile            :  SUCCESS
testfilecopy        :  SUCCESS
testfileinfo        :  SUCCESS
testflock           :  SUCCESS
testfmt             :  SUCCESS
testfnmatch         :  SUCCESS
testargs            :  SUCCESS
testhash            :  SUCCESS
testipsub           :  SUCCESS
testlock            :  SUCCESS
testcond            :  SUCCESS
testlfs             :  SUCCESS
testmmap            :  SUCCESS
testnames           :  SUCCESS
testoc              :  SUCCESS
testpath            :  SUCCESS
testpipe            :  SUCCESS
testpoll            :  SUCCESS
testpools           :  SUCCESS
testproc            :  SUCCESS
testprocmutex       :  FAILED 3 of 6
testrand            :  SUCCESS
testsleep           :  SUCCESS
testshm             :  SUCCESS
testsock            :  FAILED 2 of 16
testsockets         :  SUCCESS
testsockopt         :  SUCCESS
teststr             :  SUCCESS
teststrnatcmp       :  SUCCESS
testtable           :  SUCCESS
testtemp            :  SUCCESS
testthread          :  SUCCESS
testtime            :  SUCCESS
testud              :  SUCCESS
testuser            :  SUCCESS
testvsn             :  SUCCESS
testskiplist        :  SUCCESS
Failed Tests            Total   Fail    Failed %
===================================================
testdso                     9      8     88.89%
testprocmutex               6      3     50.00%
testsock                   16      2     12.50%

The obvious question, what is new since 1.5.2? New tests,
for one, new misbehavior as well; the prior results from
a recent product build with APR 1.5.2;

teststatus=0; \
progfailed=""; \
for prog in testlockperf testmutexscope testall sendfile ; do \
        if test "$prog" = 'sendfile'; then \
                for mode in blocking nonblocking timeout; do \
                        ./$prog client $mode startserver 127.0.0.1; \
                        status=$?; \
                        if test $status != 0; then \
                                teststatus=$status; \
                                progfailed="$progfailed '$prog mode $mode'"; \
                        fi; \
                done; \
        else \
                ./$prog -v; \
                status=$?; \
                if test $status != 0; then \
                        teststatus=$status; \
                        progfailed="$progfailed $prog"; \
                fi; \
        fi; \
done; \
if test $teststatus != 0; then \
        echo "Programs failed:$progfailed"; \
fi; \
exit $teststatus
APR Lock Performance Test
==============

apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 1 threads    OK
microseconds: 231557 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 1 threads    OK
microseconds: 236112 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 1 threads    OK
microseconds: 439320 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 2 threads    OK
microseconds: 649729 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 2 threads    OK
microseconds: 794767 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 2 threads    OK
microseconds: 1966800 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 3 threads    OK
microseconds: 1954095 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 3 threads    OK
microseconds: 1648285 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 3 threads    OK
microseconds: 6853713 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 4 threads    OK
microseconds: 2883942 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 4 threads    OK
microseconds: 2447592 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 4 threads    OK
microseconds: 20957603 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 5 threads    OK
microseconds: 2871582 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 5 threads    OK
microseconds: 3501802 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 5 threads    OK
microseconds: 30135067 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (UNNESTED)          OK
    Starting 6 threads    OK
microseconds: 3285807 usec
apr_thread_mutex_t Tests
    Initializing the apr_thread_mutex_t (NESTED)            OK
    Starting 6 threads    OK
microseconds: 3994937 usec
apr_thread_rwlock_t Tests
    Initializing the apr_thread_rwlock_t                    OK
    Starting 6 threads    OK
microseconds: 41736873 usec
Trying proc mutexes with mechanism `default'...
  Mutex mechanism `default' is global in scope on this platform.
Trying global mutexes with mechanism `default'...
  no problems encountered...
Trying proc mutexes with mechanism `sysvsem'...
  Mutex mechanism `sysvsem' is global in scope on this platform.
Trying global mutexes with mechanism `sysvsem'...
  no problems encountered...
Trying proc mutexes with mechanism `posix'...
  Mutex mechanism `posix' is global in scope on this platform.
Trying global mutexes with mechanism `posix'...
  no problems encountered...
Trying proc mutexes with mechanism `fcntl'...
  Mutex mechanism `fcntl' is not global in scope on this platform.
Trying global mutexes with mechanism `fcntl'...
  no problems encountered...
Trying proc mutexes with mechanism `proc_pthread'...
  Mutex mechanism `proc_pthread' is global in scope on this platform.
Trying global mutexes with mechanism `proc_pthread'...
  no problems encountered...
testatomic          :  SUCCESS
testdir             :  SUCCESS
testdso             :  SUCCESS
testdup             :  SUCCESS
testenv             :  SUCCESS
testescape          :  SUCCESS
testfile            :  SUCCESS
testfilecopy        :  SUCCESS
testfileinfo        :  SUCCESS
testflock           :  SUCCESS
testfmt             :  SUCCESS
testfnmatch         :  SUCCESS
testargs            :  SUCCESS
testhash            :  SUCCESS
testipsub           :  SUCCESS
testlock            :  SUCCESS
testcond            :  SUCCESS
testlfs             :  Line 345: Large Files not supported
SUCCESS
testmmap            :  SUCCESS
testnames           :  SUCCESS
testoc              :  SUCCESS
testpath            :  SUCCESS
testpipe            :  SUCCESS
testpoll            :  Line 584: pollcb interface not supported
Line 611: pollcb interface not supported
Line 637: pollcb interface not supported
Line 653: pollcb interface not supported
Line 733: pollcb interface not supported
SUCCESS
testpools           :  SUCCESS
testproc            :  SUCCESS
testprocmutex       :  SUCCESS
testrand            :  SUCCESS
testsleep           :  SUCCESS
testshm             :  SUCCESS
testsock            :  Line 333: expected something other than <0>, but saw <0>
Line 377: Cannot test if connect completes synchronously
FAILED 1 of 10
testsockets         :  SUCCESS
testsockopt         :  Line 84: TCP isn't corkable
SUCCESS
teststr             :  SUCCESS
teststrnatcmp       :  SUCCESS
testtable           :  SUCCESS
testtemp            :  SUCCESS
testthread          :  SUCCESS
testtime            :  SUCCESS
testud              :  SUCCESS
testuser            :  SUCCESS
testvsn             :  SUCCESS
testskiplist        :  SUCCESS
Failed Tests            Total   Fail    Failed %
===================================================
testsock                   10      1     10.00%
This program won't work on this platform because there is no support
for sendfile().
This program won't work on this platform because there is no support
for sendfile().
This program won't work on this platform because there is no support
for sendfile().

Reply via email to