[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