[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: Solaris gcc weirdness
At 03:22 PM 1/19/00 -0800, Howard Chu wrote:
>This is just a note to let you know about a strange situation that I've
>encountered. Using gcc 2.95.1 on Solaris 7, compiling back-ldbm with
>"-g -O2" causes a segfault at runtime when initializing libperl.so.
gcc -02, depending on version, is unsafe and should be avoided.
>The problem doesn't occur using just "-O" or no optimization at all. The weird
>thing is, I tried tracking down which part of the code is tripping this
>optimization bug, and it seems to be dependent on more than one source file.
>The files id2entry.c, idl.c, index.c, and init.c all seem to contribute to
>the problem. But turning off optimization for any one of these files is
>insufficient to eliminate the bug. This is really odd since my configuration
>isn't even using back-ldbm when things fail. (I.e., I don't have any ldbm
>backends configured in my slapd.conf file, and the crash happens during
>initialization of back-perl.) The crash actually occurs inside malloc,
>invoked by libperl. This makes me suspect that something in back-ldbm's
>initialization code has overwritten some malloc'd memory, except that I
>haven't been able to detect any problem using the Solaris watchmalloc
>library. Also, I'd suspect that plenty of mallocs have happened already
>between ldbm's initialization and perl's init. (back-perl is loaded
>dynamically, back-ldbm is static.) Anyway, I've probably spent too much time
>looking at this already. Building back-ldbm with "-O" will have to suffice
>for now.
>
> -- Howard Chu
> Chief Architect, Symas Corp. Director, Highland Sun
> http://www.symas.com http://highlandsun.com/hyc
>
>