I did. It didn't help.
-Mike
From: Mark Phippard [mailto:markphip_at_gmail.com]
Sent: Monday, August 22, 2011 10:48 AM
To: RYTTING,MICHAEL (A-ColSprings,ex1)
Cc: philip.martin_at_wandisco.com; dev_at_subversion.apache.org; users_at_subversion.apache.org
Subject: Re: Problems compiling 1.7.0 on redhat el4 64bit
Michael, did you ever get a chance trying the -fno-strict-aliasing flag rather than removing all optimizations?
On Mon, Aug 22, 2011 at 12:43 PM, <michael_rytting_at_agilent.com<mailto:michael_rytting_at_agilent.com>> wrote:
No luck, still crashing.
-----Original Message-----
From: Philip Martin [mailto:philip.martin_at_wandisco.com<mailto:philip.martin_at_wandisco.com>]
Sent: Monday, August 22, 2011 10:23 AM
To: RYTTING,MICHAEL (A-ColSprings,ex1)
Cc: markphip_at_gmail.com<mailto:markphip_at_gmail.com>; dev_at_subversion.apache.org<mailto:dev_at_subversion.apache.org>; users_at_subversion.apache.org<mailto:users_at_subversion.apache.org>
Subject: Re: Problems compiling 1.7.0 on redhat el4 64bit
<michael_rytting_at_agilent.com<mailto:michael_rytting_at_agilent.com>> writes:
> It is set to 1
>>
>> Looking at the rest of the stack trace I would say this is the first
>> call to a utf8 conversion function that would have invoked
>> get_xlate_handle_node and I suspect it is that function that is going
>> wrong. At a guess something to do with the use of atomic_swap, which
>> makes it important to confirm the value of APR_HAS_THREADS.
I wonder if it is connected to this APR bug:
https://issues.apache.org/bugzilla/show_bug.cgi?id=50731
In subversion/libsvn_subr/utf.c we declare
static volatile void *xlat_ntou_static_handle = NULL; static volatile void *xlat_uton_static_handle = NULL;
that is "pointers to volatile data", as required by APR, but we really want "volatile pointers to data". Perhaps we should do something similar to svn_cache_config.c. Would you try this patch built with optimisations enabled:
Index: subversion/libsvn_subr/utf.c
===================================================================
--- subversion/libsvn_subr/utf.c (revision 1160136)
+++ subversion/libsvn_subr/utf.c (working copy)
@@ -90,8 +90,8 @@
* using atomic xchange ops, i.e. without further thread synchronization.
* If the respective item is NULL, fallback to hash lookup.
*/
-static volatile void *xlat_ntou_static_handle = NULL; -static volatile void *xlat_uton_static_handle = NULL;
+static void * volatile xlat_ntou_static_handle = NULL; static void *
+volatile xlat_uton_static_handle = NULL;
/* Clean up the xlate handle cache. */
static apr_status_t
@@ -182,11 +182,11 @@
* the caller.
*/
static APR_INLINE void*
-atomic_swap(volatile void **mem, void *new_value)
+atomic_swap(void * volatile * mem, void *new_value)
{
#if APR_HAS_THREADS
#if APR_VERSION_AT_LEAST(1,3,0)
- return apr_atomic_xchgptr(mem, new_value);
+ return apr_atomic_xchgptr((volatile void **)mem, new_value);
#else
/* old APRs don't support atomic swaps. Simply return the
* input to the caller for further proccessing. */
--
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com
--
Thanks
Mark Phippard
http://markphip.blogspot.com/
Received on 2011-08-22 18:49:02 CEST