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

Bug#420754: copy_exec function mistakely uses xen optimised library with glibc 2.5 resulting in an unbootable image



Package: initramfs-tools
Version: 0.87b
Severity: critical
Tags: patch
Justification: make any xen system unbootable

Latest glibc package moved optimized libraries from /lib/tls/i686 to
/lib/i686, so the copy_exec function's euristic fails to translate it
to a non optimized version. 

With libc6-i686 installed the resulting image is still working because
the installed libraries are on search path, but with libc6-xen
installed the resulting image is unbootable because some libraries
required by busybox are in /lib/i686/nosegneg instead of /lib

The attached patch solves the problem on my system, but a more robust
solution is auspicable.

Regards

-- Package-specific info:
-- /proc/cmdline
root=/dev/hda1 ro vga=0x31B video=vesafb:ywrap,mtrr console=tty0

-- /proc/filesystems
	cramfs
	reiserfs
	ext3

-- lsmod
Module                  Size  Used by
tcp_diag                2656  0 
inet_diag              11976  1 tcp_diag
bridge                 50268  0 
netloop                 7360  0 
ppdev                   9444  0 
lp                     11780  0 
button                  7440  0 
ac                      5956  0 
battery                10404  0 
ext3                  120072  1 
jbd                    53224  1 ext3
mbcache                 9124  1 ext3
fuse                   40596  1 
dm_snapshot            16320  0 
dm_mirror              20048  0 
dm_mod                 51000  2 dm_snapshot,dm_mirror
eeprom                  7792  0 
cpufreq_ondemand        7404  0 
cpufreq_powersave       2688  0 
cpufreq_conservative     8072  0 
cpufreq_userspace       5696  0 
acpi_cpufreq            8068  1 
freq_table              5440  1 acpi_cpufreq
dummy                   3748  0 
loop                   15944  2 
sonypi                 21500  0 
nvidia               6839732  22 
agpgart                32264  1 nvidia
ipv6                  229088  52 
joydev                  9856  0 
pcmcia                 34356  0 
firmware_class         10368  1 pcmcia
snd_intel8x0           31292  1 
snd_intel8x0m          16748  0 
snd_ac97_codec         84000  2 snd_intel8x0,snd_intel8x0m
snd_pcm_oss            39232  0 
snd_mixer_oss          15968  1 snd_pcm_oss
snd_ac97_bus            3168  1 snd_ac97_codec
psmouse                35880  0 
serio_raw               7428  0 
snd_pcm                69764  4 snd_intel8x0,snd_intel8x0m,snd_ac97_codec,snd_pcm_oss
snd_timer              21924  1 snd_pcm
wlan_scan_sta          12928  1 
i2c_sis96x              6148  0 
yenta_socket           25324  2 
rsrc_nonstatic         11552  1 yenta_socket
pcmcia_core            37588  3 pcmcia,yenta_socket,rsrc_nonstatic
snd                    47876  9 snd_intel8x0,snd_intel8x0m,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
serial_core            20288  0 
shpchp                 33632  0 
pci_hotplug            29472  1 shpchp
ath_pci                85184  0 
ath_rate_sample        13760  1 ath_pci
wlan                  174204  4 wlan_scan_sta,ath_pci,ath_rate_sample
ath_hal               192432  3 ath_pci,ath_rate_sample
i2c_core               20480  3 eeprom,nvidia,i2c_sis96x
parport_pc             33092  1 
parport                34120  3 ppdev,lp,parport_pc
eth1394                18916  0 
rtc                    13300  0 
soundcore              10016  1 snd
snd_page_alloc         10472  3 snd_intel8x0,snd_intel8x0m,snd_pcm
tsdev                   8288  0 
evdev                   9856  1 
pcspkr                  3840  0 
sd_mod                 19808  0 
reiserfs              213408  3 
usbhid                 38208  0 
ide_disk               15712  5 
generic                 6244  0 [permanent]
usb_storage            72736  0 
scsi_mod              125160  2 sd_mod,usb_storage
sis5513                13128  0 [permanent]
ehci_hcd               29288  0 
ide_core              112392  4 ide_disk,generic,usb_storage,sis5513
sis900                 23264  0 
mii                     6112  1 sis900
ohci1394               31792  0 
ieee1394               88152  2 eth1394,ohci1394
ohci_hcd               19332  0 
usbcore               114372  5 usbhid,usb_storage,ehci_hcd,ohci_hcd
thermal                14376  0 
processor              29608  2 acpi_cpufreq,thermal
fan                     5572  0 

-- /etc/kernel-img.conf
do_symlinks = no
do_bootloader = no
do_bootfloppy = no
warn_initrd = no 
postinst_hook = update-grub
postrm_hook   = update-grub

-- /etc/initramfs-tools/initramfs.conf
MODULES=most
BUSYBOX=y
KEYMAP=n
BOOT=local
DEVICE=eth0
NFSROOT=auto


-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.18-4-xen-686 (SMP w/2 CPU cores)
Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages initramfs-tools depends on:
ii  busybox                       1:1.1.3-4  Tiny utilities for small and embed
ii  cpio                          2.7-2      GNU cpio -- a program to manage ar
ii  klibc-utils                   1.5-2      small statically-linked utilities 
ii  module-init-tools             3.3-pre4-2 tools for managing Linux kernel mo
ii  udev                          0.105-4    /dev/ and hotplug management daemo

initramfs-tools recommends no packages.

-- no debconf information

-- 
---------------------------------------------------------------------
|    Marco Nenciarini    | Debian/GNU Linux Developer - Plug Member |
| mnencia@prato.linux.it | http://www.prato.linux.it/~mnencia       |
---------------------------------------------------------------------
Key fingerprint = FED9 69C7 9E67 21F5 7D95  5270 6864 730D F095 E5E4

--- /usr/share/initramfs-tools/hook-functions.orig	2007-04-24 15:01:00.000000000 +0200
+++ /usr/share/initramfs-tools/hook-functions	2007-04-24 15:01:33.000000000 +0200
@@ -80,7 +80,7 @@
 
 		# Try to use non-optimised libraries where possible.
 		# We assume that all HWCAP libraries will be in tls.
-		nonoptlib=$(echo ${x} | sed -e 's#/lib/tls.*/\(lib.*\)#/lib/\1#')
+		nonoptlib=$(echo ${x} | sed -e 's#/lib/\(tls\|i686\).*/\(lib.*\)#/lib/\2#')
 
 		if [ -e ${nonoptlib} ]; then
 			x=${nonoptlib}

Attachment: signature.asc
Description: Digital signature


Reply to: