| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
and clobbers. The xchg instruction always asserts the lock signal.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@562765 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@562764 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@555695 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@555258 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
values. Missing OS/390 implementation.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@554995 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
Tested on: RHEL AS 4 (Nahant Update 4), IBM/S390, running under VM (64 bit mode), gcc 3.4.6
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@554095 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
PR: 42806
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@553293 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
PR: 42806
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@553292 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
| |
operations,
plus apr_atomic_casptr.
PR: 42806
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@553291 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
platforms (alpha, ia32, ia64, powerpc, etc).
Tested on:
2x Pentium D, Ubuntu 7.04, gcc 4.1.2
16x Itanium II, RHEL 5, gcc 4.1.1
PR: 42806
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@553290 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
| |
the various backends. The generic implementation is used when no specialized
implementation fits the defined criterias, or when the user forces the choice.
PR: 42806
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@553289 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
| |
apr_atomic_init().
Noticied by: Tim Jones
PR: 42760
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@552161 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
| |
* atomic/unix/apr_atomic.c
(apr_atomic_dec32): Match declaration in apr_atomic.h for Solaris 10
implementation.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@438796 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@428317 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@428313 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
own evil casting -- but it allows 100% of the testatomic cases to pass, when previously, it aborted if you tried to call any of the atomic functions.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@422168 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Use each of the atomic_ functions that we can.
* atomic_add is NOT implemented, as Solaris' implementation
can handle only signed deltas.
* each function is conditionalised on its corresponding
APR_OVERRIDE_* macro to avoid double-implementation.
On Solaris x86/x64 with gcc we implement atomics using
our inline assembly.
Thank to: Mads Toftum for pointing out atomic_cas
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@413786 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@368549 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
| |
architectures. Performed with inline code, these function cast
wrappers broke our API. These original flavors should be present
for all 64 bit compiler headers.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@170467 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@151412 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
Tipped-of-by: Uwe Zeisberger
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@76269 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@65336 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
| |
defines __STRICT_ANSI__ (e.g. with -std=c89), since inline asm is not
supported in that case.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@65328 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@65325 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
| |
(InterlockedCompareExchangePointer available in later SDK headers.)
Few should be compiling on 64 bit cpu's under VC6 anymore, so ignore
that edge case.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@65063 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64930 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64904 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
upon Python at packaging time, but not at end-user config/build time. As far
as I can tell, the build continues to function properly. (out-of-dir
config/make not tested, and apr-iconv prolly needs some work)
The buildconf scripts now generate a build-outputs.mk file which is included
by the root's Makefile (via the build/gen-build.py script). bulid-outputs.mk
specifies all of the various files present in the distribution.
The top-level Makefiles were simplified to use an $(OBJECTS) symbol rather
than 'find'ing them. Similarly, a $(HEADERS) symbol is used for the exports.
The corresponding delete-* targets were eliminated since we have a precise
set of inputs.
The subdirs' Makefiles were removed since they are no longer called/used.
The apr-util/uri Makefile was responsible for compiling a C program to
generate the uri_delims.h file. That process was replaced by a Python script
to generate the header (called by buildconf). The .c and .dsp were left for
the Windows build to continue, but that should be revamped.
build/apr_rules.mk was revamped somewhat to avoid recursion, but a lot of
cleanup is still needed. Much of the recursive/local/x- logic is no longer
needed and can be elimianated. rules.mk was created for inclusion by N
makefiles, but that isn't really true any more, so it could probably be
tossed (caveat: test/Makefile). Saved for a phase 2.
Some additional work was added to properly clean up files in */build/,
rather than relying on a makefile in there.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64891 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
export the result via apr.h, and enable use of inline asm by default
on ppc64 and x86_64.
* configure.in: Define USE_GENERIC_ATOMICS on i[456]86 unless
--enable-nonportable-atomics was used.
* include/apr.h.in: Remove APR_FORCE_GENERIC_ATOMICS.
* atomic/unix/apr_atomic.c: Check for !defined(USE_GENERIC_ATOMICS)
rather than defined(APR_FORCE_GENERIC_ATOMICS).
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64861 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64859 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
Solaris/SPARC-specific atomics.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64854 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
| |
machine/atomic.h, these don't return values and aren't usable from
userspace on more arches than just i386.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64853 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
doesn't allow the '+' constraint on an output operand.
* apr_atomic.c (apr_atomic_cas32, apr_atomic_sub32):
Condition code register is clobbered.
(intel_atomic_add32): Use separate input operands rather than
read/write output operands; clobber cc.
(apr_atomic_dec32): Simplify by two instructions to output an 8-bit
value; clobber cc.
Submitted by: David Howells <dhowells@redhat.com>
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64839 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
| |
it is expected that there are relatively few
(or zero) platforms where it would be used
where it won't work
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64837 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64835 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
| |
apr_atomic_cas32:
* make sure gcc uses a valid base register (not r0) for mem,
* tell gcc that the condition code is clobbered, and
* use asm local labels to avoid future namespace collisions
apr_atomic_add32: add a native implementation
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64832 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64824 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64823 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a) need to check for __ppc__ on Darwin to pick up the PPC
non-portable atomics
b) axe the historic checks for defined(apr_atomic_foo) when deciding
whether to generate the default version of apr_atomic_foo; checking
for APR_OVERRIDE_ATOMIC_FOO is sufficient
c) if the platform has defined apr_atomic_cas32() but not all the
other apr_atomic_foo32(), use apr_atomic_cas32() in a generic
version that will be much preferable to the no-cas32 version
(which must use locking)
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64818 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64817 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
| |
Could someone try this with testatomic on Mac OS X? It should just
work, but I couldn't test it. moof no longer likes me.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64816 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
Googling
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64815 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
You need to specify at least -O1 to enable inlining. That seems fair.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64814 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64812 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
knows we want the same register for an input and an output operand.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64810 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
| |
the native Netware functions return void by default
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64809 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
| |
Submitted by: gregames (all the hard bits) and trawick
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64808 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
| |
on win32 anyway) and into a unique file
apr_atomic_casptr() is busted for me on win32, as I am missing the
magic bits for InterlockedCompareExchangePointer()
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64805 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
| |
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64804 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
|
|
|
|
|
|
|
|
| |
in order to
. aid in keeping the different flavors consistent
. prevent bug fixes from requiring that apps be rebuilt
Reviewed and/or fixed by: Brad Nicholes, Greg Marr
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64803 13f79535-47bb-0310-9956-ffa450edef68
|