You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Brian Akins <ba...@web.turner.com> on 2004/06/02 21:40:52 UTC
x86_64 atomics and linux
AFAIK, the linux x86 atomic stuff can be used unchanged on Linux
x86_64. This is based on my digging in the kernel source. All the
"functions" apr uses are identical.
Should I submit a patch?
--
Brian Akins
Senior Systems Engineer
CNN Internet Technologies
Re: x86_64 atomics and linux
Posted by Brian Pane <br...@apache.org>.
On Jun 2, 2004, at 12:40 PM, Brian Akins wrote:
> AFAIK, the linux x86 atomic stuff can be used unchanged on Linux
> x86_64. This is based on my digging in the kernel source. All the
> "functions" apr uses are identical.
>
> Should I submit a patch?
Sure, sounds like a good thing to add.
Thanks,
Brian
{PATCH] Re: x86_64 atomics and linux
Posted by Brian Akins <ba...@web.turner.com>.
Joe Orton wrote:
>On Wed, Jun 02, 2004 at 03:40:52PM -0400, Brian Akins wrote:
>
>
>>AFAIK, the linux x86 atomic stuff can be used unchanged on Linux
>>x86_64. This is based on my digging in the kernel source. All the
>>"functions" apr uses are identical.
>>
>>
>
>This is already done for APR HEAD: a backport would probably need to
>include the cleanup of the configure logic too, I think.
>
>joe
>
>
>
Works on my test box. I wasn't sure what to do about casptr, so I just
let x86_64 use the default init.
Suggestions are welcome.
diff -aur httpd-2.0.49/srclib/apr/configure
httpd-2.0.49.new/srclib/apr/configure
--- httpd-2.0.49/srclib/apr/configure 2004-03-18 07:32:25.000000000 -0500
+++ httpd-2.0.49.new/srclib/apr/configure 2004-06-15
11:42:36.988650440 -0400
@@ -13268,7 +13268,7 @@
*linux*)
apr_force_atomic_generic=1
case $host_cpu in
- i486|i586|i686)
+ i486|i586|i686|x86_64)
if test "$nonportable_atomics_enabled" = 1; then
apr_force_atomic_generic=0
fi
diff -aur httpd-2.0.49/srclib/apr/include/apr_atomic.h
httpd-2.0.49.new/srclib/apr/include/apr_atomic.h
--- httpd-2.0.49/srclib/apr/include/apr_atomic.h 2004-02-13
04:33:44.000000000 -0500
+++ httpd-2.0.49.new/srclib/apr/include/apr_atomic.h 2004-06-15
11:33:48.286025456 -0400
@@ -168,7 +168,7 @@
#define apr_atomic_set(mem, val) atomic_set_int(mem, val)
#define apr_atomic_read(mem) (*mem)
-#elif (defined(__linux__) || defined(__EMX__)) && defined(__i386__) &&
!APR_FORCE_ATOMIC_GENERIC
+#elif (defined(__linux__) || defined(__EMX__)) && (defined(__x86_64__)
|| defined(__x86_64__)) && !APR_FORCE_ATOMIC_GENERIC
#define apr_atomic_t apr_uint32_t
#define apr_atomic_cas(mem,with,cmp) \
@@ -202,7 +202,10 @@
#define apr_atomic_set(mem, val) (*(mem) = val)
#define apr_atomic_read(mem) (*(mem))
+
+#if !defined(__x86_64__)
#define apr_atomic_init(pool) APR_SUCCESS
+#endif
#elif defined(__MVS__) /* OS/390 */
--
Brian Akins
Senior Systems Engineer
CNN Internet Technologies
Re: x86_64 atomics and linux
Posted by Joe Orton <jo...@redhat.com>.
On Wed, Jun 02, 2004 at 03:40:52PM -0400, Brian Akins wrote:
> AFAIK, the linux x86 atomic stuff can be used unchanged on Linux
> x86_64. This is based on my digging in the kernel source. All the
> "functions" apr uses are identical.
This is already done for APR HEAD: a backport would probably need to
include the cleanup of the configure logic too, I think.
joe