Bug#548842: Apt alignment trap.

2009-11-04 Thread Martin Guy
A patch has turned up for glibc-2.9. I'm trying it on eglibc-2.10...
See http://sourceware.org/ml/crossgcc/2009-11/msg8.html

--- glibc-ports-2.9/sysdeps/arm/dl-machine.h.orig   2009-11-03
22:03:57.0 +0100
+++ glibc-ports-2.9/sysdeps/arm/dl-machine.h2009-11-03 22:11:45.0 
+0100
@@ -568,13 +568,22 @@
 }
 # endif

+union arm_unaligned_data {
+  Elf32_Addr l_addr;
+} __attribute__ ((packed));
+
 auto inline void
 __attribute__ ((always_inline))
 elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
  void *const reloc_addr_arg)
 {
-  Elf32_Addr *const reloc_addr = reloc_addr_arg;
-  *reloc_addr += l_addr;
+  if (((long)reloc_addr_arg)  0x3) {
+union arm_unaligned_data *const lpdata = reloc_addr_arg;
+lpdata-l_addr += l_addr;
+  } else {
+Elf32_Addr *const reloc_addr = reloc_addr_arg;
+*reloc_addr += l_addr;
+  }
 }

 # ifndef RTLD_BOOTSTRAP



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#548842: Apt alignment trap.

2009-10-10 Thread Martin Guy
reassign 548842 gcc-4.3 4.3.4-2
thanks

On 10/9/09, John Reiser ven...@bitwagon.com wrote:
  Some shared library has been built with an initialized pointer, where the
 storage
  for the pointer itself is not aligned on a 4-byte boundary.  The problem is
 not
  in glibc(ld-linux); the problem lies in some shared library that the app
 requires.

  Debug this via
 setenv LD_DEBUG reloc
 ./my_app args...

Thanks! It seems to affect any C++ program on armel, including hello.cc

mar...@n2100:~$ LD_DEBUG=reloc ./a.out
  6836: 
  6836: relocation processing: /lib/libc.so.6 (lazy)
  6836: 
  6836: relocation processing: /lib/libgcc_s.so.1 (lazy)
  6836: 
  6836: relocation processing: /lib/libm.so.6 (lazy)
  6836: 
  6836: relocation processing: /usr/lib/libstdc++.so.6 (lazy)
Bus error

and libstdc++.so.6 seems to be provided by gcc-4.3, so I'm reassigning
the bug...



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#548842: Apt alignment trap.

2009-10-09 Thread John Reiser

If you'd like to help debug this, you can
echo 5  /proc/cpu/alignment
and run apt-get under gdb - it will be killed with a Bus Error at the bad code.



  *reloc_addr += value


Some shared library has been built with an initialized pointer, where the 
storage
for the pointer itself is not aligned on a 4-byte boundary.  The problem is not
in glibc(ld-linux); the problem lies in some shared library that the app 
requires.

Debug this via
setenv LD_DEBUG reloc
./my_app args...
or perhaps [in bash]:
LD_DEBUG=reloc,files  ./my_app args...

Set LD_DEBUG=help to get info on other options for debugging the processing
that ld-linux does.

--




--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org