Package: initramfs-tools

Version: 0.99
Severity: important

Dear Maintainer,

Seems like armhf ELF interpreter path was changed from
/lib/ld-linux.so.3 to /lib/arm-linux-gnueabihf/ld-linux.so.3

For example, coreutils was compiled a while ago and it uses old
interpreter path:

$ readelf -l /bin/ls | grep interpreter
      [Requesting program interpreter: /lib/ld-linux.so.3]

While udev was recently updated to 175-2 and it uses new interpreter
path:

$ readelf -l /sbin/udevadm | grep interpreter
      [Requesting program interpreter: /lib/arm-linux-gnueabihf/ld-linux.so.3]

See also:
http://www.mail-archive.com/cross-distro@lists.linaro.org/msg00103.html

The problem is that copy_exec() in
/usr/share/initramfs-tools/hook-functions copies the interpreter only to
the old path.  It basically does the following:

$ cat copy_exec_udevadm.sh
#!/bin/sh -e

src=/sbin/udevadm

for x in $(ldd ${src} 2>/dev/null | sed -e '
    /\//!d;
    /linux-gate/d;
    /=>/ {s/.*=>[[:blank:]]*\([^[:blank:]]*\).*/\1/};
    s/[[:blank:]]*\([^[:blank:]]*\) (.*)/\1/' 2>/dev/null); do

    # copy ${x}
    echo ${x}

done

$ ./copy_exec_udevadm.sh
/lib/arm-linux-gnueabihf/libselinux.so.1
/lib/arm-linux-gnueabihf/librt.so.1
/lib/arm-linux-gnueabihf/libgcc_s.so.1
/lib/arm-linux-gnueabihf/libc.so.6
/lib/ld-linux.so.3
/lib/arm-linux-gnueabihf/libdl.so.2
/lib/arm-linux-gnueabihf/libpthread.so.0

Here's some additional info:

$ ldd /bin/ls
        libselinux.so.1 => /lib/arm-linux-gnueabihf/libselinux.so.1 (0x4009d000)
        librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x400d0000)
        libacl.so.1 => /lib/arm-linux-gnueabihf/libacl.so.1 (0x4005a000)
        libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x400b9000)
        libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x400de000)
        libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x4008b000)
        /lib/ld-linux.so.3 (0x4002e000)
        libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x401bd000)
        libattr.so.1 => /lib/arm-linux-gnueabihf/libattr.so.1 (0x4004d000)
$ ldd /sbin/udevadm
        libselinux.so.1 => /lib/arm-linux-gnueabihf/libselinux.so.1 (0x401cd000)
        librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x40075000)
        libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x400e8000)
        libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x401e9000)
        /lib/arm-linux-gnueabihf/ld-linux.so.3 => /lib/ld-linux.so.3 
(0x40056000)
        libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x400b3000)
        libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x402c8000)

I don't know how to fix this properly (apart from treating ELF
interpreter as a special case).

Currently this bug breaks only udev inside initramfs, but in future will
break all newly compiled binaries that need to be in initramfs.

Tell me if you need any additional information.

Best regards,
Dmitri Gribenko

-- Package-specific info:
-- initramfs sizes
-rw-r--r-- 1 root root 1.7M Aug 13 05:02 /boot/initrd.img-2.6.38-ac1-ac100
-rw-r--r-- 1 root root 1.8M Nov 19 16:54 /boot/initrd.img-2.6.38-ac2-ac100
-- /proc/cmdline
root=/dev/mmcblk1p1 rootflags=noatime mem=448M@0M nvmem=64M@448M vmalloc=320M 
video=tegrafb console=tty0 usbcore.old_scheme_first=1 tegraboot=sdmmc 
tegrapart=recovery:700:a00:800,boot:1100:1000:800,mbr:2100:200:800,system:2300:25800:800,cache:27b00:32000:800,misc:59b00:400:800,userdata:5a000:9a600:800

-- /proc/filesystems
        ext4
        fuseblk

-- lsmod
Module                  Size  Used by
aes_generic            26768  3 
arc4                    1076  2 
rt2800usb              11495  0 
rt2800lib              39791  1 rt2800usb
crc_ccitt               1133  1 rt2800lib
rt2x00usb               8203  1 rt2800usb
snd_soc_tegra_i2s       3936  1 
snd_soc_tegra_paz00     3149  0 
rt2x00lib              30452  3 rt2800usb,rt2800lib,rt2x00usb
snd_soc_alc5632        18328  1 
snd_soc_tegra_das       2524  1 snd_soc_tegra_i2s
snd_soc_tegra_pcm       3228  1 
mac80211              195632  3 rt2800lib,rt2x00usb,rt2x00lib
snd_soc_core           75287  5 
snd_soc_tegra_i2s,snd_soc_tegra_paz00,snd_soc_tegra_das,snd_soc_alc5632,snd_soc_tegra_pcm
psmouse                46862  0 
snd_pcm                59970  2 snd_soc_tegra_pcm,snd_soc_core
cfg80211              145261  2 rt2x00lib,mac80211
uvcvideo               54470  0 
libps2                  3665  1 psmouse
snd_timer              16667  1 snd_pcm
snd_soc_tegra_utils     1649  1 snd_soc_tegra_paz00
videodev               56188  1 uvcvideo
rfkill                 15008  1 cfg80211
snd                    40444  3 snd_soc_core,snd_pcm,snd_timer
soundcore               5107  1 snd
snd_page_alloc          3528  1 snd_pcm
evdev                   7237  0 
ipv6                  275379  18 
cpufreq_conservative     5231  0 
cpufreq_userspace       1918  0 
cpufreq_ondemand        6011  2 
cpufreq_powersave        748  0 
fuse                   60328  1 
ext4                  324828  1 
mbcache                 5056  1 ext4
jbd2                   77306  1 ext4
crc16                   1121  1 ext4

-- /etc/initramfs-tools/modules

-- /etc/initramfs-tools/initramfs.conf
MODULES=dep
BUSYBOX=y
KEYMAP=n
COMPRESS=gzip
BOOT=local
DEVICE=
NFSROOT=auto

-- /etc/initramfs-tools/update-initramfs.conf
update_initramfs=yes
backup_initramfs=no

-- /sys/block
mmcblk0
mmcblk1

-- mkinitramfs hooks
/etc/initramfs-tools/hooks/:

/usr/share/initramfs-tools/hooks:
busybox
flash_kernel_set_root
fuse
keymap
klibc
ntfs_3g
thermal
udev


-- System Information:
Debian Release: wheezy/sid
Architecture: armhf (armv7l)

Kernel: Linux 2.6.38-ac2-ac100 (SMP w/2 CPU cores)
Locale: LANG=ru_UA.UTF-8, LC_CTYPE=ru_UA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages initramfs-tools depends on:
ii  cpio               2.11-7  
ii  findutils          4.4.2-1 
ii  klibc-utils        1.5.25-1
ii  module-init-tools  3.16-1  
ii  udev               175-2   

Versions of packages initramfs-tools recommends:
ii  busybox  1:1.19.3-1

Versions of packages initramfs-tools suggests:
ii  bash-completion  1:1.3-3

-- Configuration Files:
/etc/initramfs-tools/initramfs.conf changed:
MODULES=dep
BUSYBOX=y
KEYMAP=n
COMPRESS=gzip
BOOT=local
DEVICE=
NFSROOT=auto


-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20111119155458.4141.42802.reportbug@delta

Reply via email to