On Sun, Aug 1, 2010 at 11:12 PM, Matthieu Herrb <mhe...@gmail.com> wrote: > 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.
Excellent news! I'll wait for my mirror of choice to pick up this change. Thanks for the update, --patrick >> 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