[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#548842: libc6: alignment error in /lib/ld-linux.so.3 on armel



Package: libc6
Version: 2.9-25
Severity: normal

I'm running alsaplayer on an armel platform, using the -text frontend 
and the -alsa output.  I've configured my armel machine to send a SIGBUS
to any process which makes an alignment error by doing this:

 echo 5 > /proc/cpu/alignment

when i launch the player (compiled with debug symbols), even before it 
gets to main() i get the SIGBUS.

Here's the backtrace i see with libc6-dbg installed:

(gdb) bt
#0  elf_machine_rel (scope=0x4001e1a0, lazy=1, consider_profiling=0) at ../ports/sysdeps/arm/dl-machine.h:429
#1  elf_dynamic_do_rel (scope=0x4001e1a0, lazy=1, consider_profiling=0) at do-rel.h:120
#2  _dl_relocate_object (scope=0x4001e1a0, lazy=1, consider_profiling=0) at dl-reloc.c:266
#3  0x400039bc in dl_main (phdr=0x8034, phnum=8, user_entry=0xbe98257c) at rtld.c:2231
#4  0x40015110 in _dl_sysdep_start (start_argptr=<value optimized out>, dl_main=0x400021d8 <dl_main>) at ../elf/dl-sysdep.c:239
#5  0x40000cd0 in _dl_start_final (arg=0xbe982870, info=0xbe9825f8) at rtld.c:332
#6  0x40000f68 in _dl_start (arg=0xbe982870) at rtld.c:560
#7  0x400007f0 in _start () from /lib/ld-linux.so.3
#8  0x400007f0 in _start () from /lib/ld-linux.so.3
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) 

that last line is just:

  *reloc_addr += value

but reloc_addr is optimized out.

unfortunately, rebuilding packages (esp. large packages like libc6) takes 
a long time on machines like this (it's an NSLU2, 266Mhz with 32MB RAM),
so i haven't had a chance to debug further.

People interested in this bug might also be interested in discussion 
from http://bugs.debian.org/397616 .  for examples of potential dangers 
of undetected memory alignment failures, see 
http://bugs.debian.org/548815 -- hopefully alignment failures in libc6 
won't cause higher-level trouble the way they do with some media codecs.

I also asked for discussion in general about alignment issues on armel:

 http://lists.debian.org/debian-arm/2009/09/msg00109.html
 
Let me know if i can provide more debugging help on this.  

	--dkg

-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: armel (armv5tel)

Kernel: Linux 2.6.30-1-ixp4xx
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash

Versions of packages libc6 depends on:
ii  libc-bin                      2.9-25     GNU C Library: Binaries
ii  libgcc1                       1:4.4.1-1  GCC support library

libc6 recommends no packages.

Versions of packages libc6 suggests:
ii  debconf [debconf-2.0]         1.5.27     Debian configuration management sy
pn  glibc-doc                     <none>     (no description available)
ii  locales                       2.9-25     GNU C Library: National Language (

-- debconf information:
* glibc/restart-services: cron
  glibc/disable-screensaver:
  glibc/restart-failed:
  glibc/upgrade: true



Reply to: