Go to file
OpenKylin Developers e38fe5e8a6 debug_testpoll_failure
# reproducible.debian.net gave strange test error on build:
#   testpoll            :  Line 876: apr_pollcb_poll() didn't sleep

# reproducible.debian.net gave strange test error on build:
#   testpoll            :  Line 876: apr_pollcb_poll() didn't sleep
#   FAILED 1 of 23
# add some debug output

Gbp-Pq: Name debug_testpoll_failure.patch
2023-01-16 15:55:44 +08:00
atomic Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
build check for libtoolize rather than libtool 2023-01-16 15:55:44 +08:00
debian Import Debian changes 1.7.0-ok1 2023-01-16 15:55:43 +08:00
docs Fix generation of docs for out-of-tree builds and newer doxygen versions 2023-01-16 15:55:44 +08:00
dso Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
encoding Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
file_io Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
helpers Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
include Fix generation of docs for out-of-tree builds and newer doxygen versions 2023-01-16 15:55:44 +08:00
locks Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
memory/unix Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
misc Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
mmap Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
network_io Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
passwd Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
poll Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
random/unix Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
shmem Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
strings Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
support/unix Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
tables Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
test debug_testpoll_failure 2023-01-16 15:55:44 +08:00
threadproc Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
time Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
tools Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
user Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
CHANGES Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
CMakeLists.txt Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
LICENSE Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
Makefile.in Install a set of random build files too 2023-01-16 15:55:44 +08:00
Makefile.win Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
NOTICE Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
NWGNUmakefile Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
README Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
README.cmake Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
apr-config.in #463399 2023-01-16 15:55:44 +08:00
apr.dep Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
apr.dsp Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
apr.dsw Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
apr.mak Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
apr.pc.in No description. 2023-01-16 15:55:44 +08:00
apr.spec Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
build-outputs.mk Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
build.conf Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
buildconf Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
config.layout Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
configure Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
configure.in hurd_shm_flock 2023-01-16 15:55:44 +08:00
emacs-mode Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
libapr.dep Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
libapr.dsp Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
libapr.mak Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00
libapr.rc Import Upstream version 1.7.0 2023-01-16 15:55:43 +08:00

README

Apache Portable Runtime Library (APR)
-------------------------------------

   The Apache Portable Runtime Library provides a predictable and
   consistent interface to underlying platform-specific
   implementations, with an API to which software developers may code
   and be assured of predictable if not identical behavior regardless
   of the platform on which their software is built, relieving them of
   the need to code special-case conditions to work around or take
   advantage of platform-specific deficiencies or features.

   APR and its companion libraries are implemented entirely in C
   and provide a common programming interface across a wide variety
   of operating system platforms without sacrificing performance.
   Currently supported platforms include:

     UNIX variants
     Windows
     Netware
     Mac OS X
     OS/2

   To give a brief overview, the primary core
   subsystems of APR 1.3 include the following:

     Atomic operations
     Dynamic Shared Object loading
     File I/O
     Locks (mutexes, condition variables, etc)
     Memory management (high performance allocators)
     Memory-mapped files
     Multicast Sockets
     Network I/O
     Shared memory
     Thread and Process management
     Various data structures (tables, hashes, priority queues, etc)

   For a more complete list, please refer to the following URLs:

     http://apr.apache.org/docs/apr/modules.html

   Users of APR 0.9 should be aware that migrating to the APR 1.x
   programming interfaces may require some adjustments; APR 1.x is
   neither source nor binary compatible with earlier APR 0.9 releases.
   Users of APR 1.x can expect consistent interfaces and binary backwards
   compatibility throughout the entire APR 1.x release cycle, as defined
   in our versioning rules:

     http://apr.apache.org/versioning.html

   APR is already used extensively by the Apache HTTP Server
   version 2 and the Subversion revision control system, to
   name but a few.  We list all known projects using APR at
   http://apr.apache.org/projects.html -- so please let us know
   if you find our libraries useful in your own projects!


Using a Subversion Checkout on Unix
===================================

If you are building APR from SVN, you need to perform a prerequisite
step.  You must have autoconf, libtool and python installed for this 
to work.  The prerequisite is simply;

  ./buildconf

If you are building APR from a distribution tarball, buildconf is
already run for you, and you do not need autoconf, libtool or python
installed or to run buildconf unless you have patched APR's buildconf 
inputs (such as configure.in, build.conf, virtually any file within 
the build/ tree, or you add or remove source files).

Remember when updating from svn that you must rerun ./buildconf again 
to effect any changes made to the build schema in your fresh update.


Configuring and Building APR on Unix
====================================

Simply;

   ./configure --prefix=/desired/path/of/apr
   make
   make test
   make install

Configure has additional options, ./configure --help will offer you
those choices.  You may also add CC=compiler CFLAGS="compiler flags"
etc. prior to the ./configure statement (on the same line).  Please
be warned, some flags must be passed as part of the CC command,
itself, in order for autoconf to make the right determinations. Eg.;

  CC="gcc -m64" ./configure --prefix=/desired/path/of/apr

will inform APR that you are compiling to a 64 bit CPU, and autoconf
must consider that when setting up all of APR's internal and external
type declarations.

For more verbose output from testall, you may wish to invoke testall
with the flag;

   cd test
   ./testall -v


Building APR RPM files on Linux
===============================

Run the following to create SRPMs:

rpmbuild -ts apr-<version>.tar.bz2
rpmbuild -ts apr-util-<version>.tar.bz2

Run the following to create RPMs (or build from the SRPMs):

rpmbuild -tb apr-<version>.tar.bz2
rpmbuild -tb apr-util-<version>.tar.bz2

Resolve dependencies as appropriate.


Configuring and Building APR on Windows
=======================================

Using Visual Studio, you can build and run the test validation of APR.
The Makefile.win make file has a bunch of documentation about it's
options, but a trivial build is simply;

  nmake -f Makefile.win 
  nmake -f Makefile.win PREFIX=c:\desired\path\of\apr install

Note you must manually modify the include\apr.hw file before you
build to change default options, see the #define APR_HAS_... or the
#define APR_HAVE_... statements.  Be careful, many of these aren't
appropriate to be modified.  The most common change is 

#define APR_HAVE_IPV6           1

rather than 0 if this build of APR will be used strictly on machines
with the IPv6 adapter support installed.

It's trivial to include the apr.dsp (for a static library) or the
libapr.dsp (for a dynamic library) in your own build project, or you
can load apr.dsw in Visual Studio 2002 (.NET) or later, which will
convert these for you into apr.sln and associated .vcproj files.

When using APR as a dynamic library, nothing special is required,
simply link to libapr.lib.  To use it as a static library, simply 
define APR_DECLARE_STATIC before you include any apr header files 
in your source, and link to apr.lib instead.


Generating Test Coverage information with gcc
=============================================

If you want to generate test coverage data, use the following steps:

  ./buildconf
  CFLAGS="-fprofile-arcs -ftest-coverage" ./configure
  make
  cd test
  make
  ./testall
  cd ..
  make gcov