On Mon, Aug 2, 2010 at 7:24 AM, patrick keshishian <pkesh...@gmail.com>
wrote:
> Hi,
>
> On Fri, Jul 30, 2010 at 5:49 AM, David Coppa <dco...@gmail.com> wrote:

> Reading symbols from /usr/libexec/ld.so...done.
> Loaded symbols for /usr/libexec/ld.so
> #0  0x221152f8 in dlsym () from /usr/libexec/ld.so
> (gdb) bt full
> #0  0x221152f8 in dlsym () from /usr/libexec/ld.so
> No symbol table info available.
> #1  0x2214af94 in ?? () from /usr/libexec/ld.so
> No symbol table info available.
> #2  0x2214af94 in ?? () from /usr/libexec/ld.so
> No symbol table info available.
> Previous frame identical to this frame (corrupt stack?)
>
>
>
> [2] Very simple program that calls dlopen()
> $ ./so_loader
> $ echo $?
> 20
> $ gdb so_loader
> GNU gdb 6.3
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you
are
> welcome to change it and/or distribute copies of it under certain
conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "powerpc-unknown-openbsd4.7"...
> (gdb) break main
> Breakpoint 1 at 0x1800a64: file so_loader.c, line 35.
> (gdb) r
> Starting program: /home/sidster/src/so_loader
>
> Breakpoint 1, main (argc=1, argv=0xfffdd2c4) at so_loader.c:35
> 35              dh = dlopen(SOFILE, RTLD_NOW);
> (gdb) n
>
> Program exited with code 024.
>
>


This problem was identified as a gcc4 problem, mis-compiling ld.so.
The following commit fixes it.

> Date: Sun, 1 Aug 2010 11:55:28 -0600 (MDT)
> From: Mark Kettenis <kette...@cvs.openbsd.org>
> To: source-chan...@cvs.openbsd.org
> Subject: CVS: cvs.openbsd.org: src
>
> CVSROOT:        /cvs
> Module name:    src
> Changes by:     kette...@cvs.openbsd.org        2010/08/01 11:55:28
>
> Modified files:
>        gnu/gcc/gcc/config/rs6000: rs6000.c
>
> Log message:
> Make __builtin_return_address(0) work with -fstack-protector.  Old diff
> from Jakub Jelinek that never made it into upstream GCC.  Fixes ld.so.
> Found by drahn@ and me; ok miod@

--
Matthieu Herrb

Reply via email to