Bug 454353 - plymouth libraries are not loaded correctly on ppc64
plymouth libraries are not loaded correctly on ppc64
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: plymouth (Show other bugs)
rawhide
All Linux
low Severity low
: ---
: ---
Assigned To: Ray Strode [halfline]
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2008-07-07 17:41 EDT by Will Woods
Modified: 2008-07-08 13:55 EDT (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-07-08 13:55:04 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Will Woods 2008-07-07 17:41:32 EDT
When creating a new initrd on ppc64, after installing plymouth, mkinitrd emits
the following messages:
mkdir: cannot create directory '/tmp/initrd.XXXXXX/usr/lib': Not a directory
/sbin/ldconfig: /lib/ld.so.1 is not a symbolic link

When booting the resulting initrd, plymouthd fails to start with the following
message:
  /bin/plymouthd: error while loading shared libraries: libply.so.1: cannot open
shared object file: Error 20

libply.so.1 is not present in the initrd, but there is a *file* named usr/lib. I
suspect mkinitrd is blindly copying needed libraries to 'usr/lib' when they
should be going in 'usr/lib64/', at least on ppc64.
Comment 1 Jeremy Katz 2008-07-07 21:49:36 EDT
plymouth bits are populated by /usr/libexec/plymouth-populate-initrd from the
plymouth package.

Although there might be value in splitting some of the 'install with shlib deps'
pieces of mkinitrd into something like /usr/libexec/mkinitrd.functions that
could then be sourced and used
Comment 2 Ray Strode [halfline] 2008-07-08 10:03:38 EDT
It doesn't blindly assume /usr/lib but it's heuristic might be wrong.  It
currently uses:

[ -z "$LIB" ] && $(eu-readelf -h /usr/bin/plymouth | grep Class | grep -q ELF64)
&& LIB="lib64" || LIB="lib"
Comment 3 Ray Strode [halfline] 2008-07-08 10:04:09 EDT
actually thinking about it, we *want* /usr/lib for ppc64
Comment 4 Ray Strode [halfline] 2008-07-08 10:10:26 EDT
also, we have:

mkdir -p ${INITRDDIR}${LIBDIR}/plymouth

so call me confused.

What's the output of:

sudo sh -c "zcat /boot/initrd-`uname -r`.img | cpio -t"

and

eu-readelf -h /usr/bin/plymouth

?
Comment 5 Will Woods 2008-07-08 11:19:06 EDT
Being lazy, I used the convenient 'lsinitrd' tool - this also shows that usr/lib
is a file rather than a directory.

As far as I can tell, it's a copy of libpng12.so.0. It's probably not a
coincidence that plymouth has a dep on that library.

[root@ridley ~]# lsinitrd /boot/initrd-$(uname -r).img.plymouth 
/boot/initrd-2.6.26-0.107.rc8.git2.fc10.ppc64.img.plymouth:
========================================================================
drwx------   2 root     root            0 Jul  8 07:09 firmware
-rwx------   1 root     root         2255 Jul  8 07:10 init
drwx------   2 root     root            0 Jul  8 07:09 lib64
lrwxrwxrwx   1 root     root           19 Jul  8 07:09 lib64/ld64.so.1 ->
/lib64/ld-2.8.90.so
-rwxr-xr-x   1 root     root       849408 Jul  3 10:43 lib64/libm-2.8.90.so
-rwxr-xr-x   1 root     root       580544 Jun  5 17:41 lib64/libparted-1.8.so.8.0.0
-rwxr-xr-x   1 root     root        24816 Jun 20 23:43 lib64/libuuid.so.1.2
-rwxr-xr-x   1 root     root        72248 Jul  3 10:43 lib64/libdl-2.8.90.so
lrwxrwxrwx   1 root     root           22 Jul  8 07:09 lib64/libdl.so.2 ->
/lib64/libdl-2.8.90.so
-rwxr-xr-x   1 root     root       211368 Jul  3 10:43 lib64/ld-2.8.90.so
-rwxr-xr-x   1 root     root       211904 Jun 29 08:36 lib64/libselinux.so.1
lrwxrwxrwx   1 root     root           21 Jul  8 07:09 lib64/libuuid.so.1 ->
/lib64/libuuid.so.1.2
-rwxr-xr-x   1 root     root      1293944 Jul  3 19:09 lib64/libglib-2.0.so.0.1703.0
-rwxr-xr-x   1 root     root        53056 May 25 12:08 lib64/libpopt.so.0.0.0
lrwxrwxrwx   1 root     root           23 Jul  8 07:09 lib64/libpopt.so.0 ->
/lib64/libpopt.so.0.0.0
-rwxr-xr-x   1 root     root        68488 Jun 20 23:43 lib64/libblkid.so.1.0
-rwxr-xr-x   1 root     root       149984 Jun 27 18:51 lib64/libdevmapper.so.1.02
lrwxrwxrwx   1 root     root           21 Jul  8 07:09 lib64/libc.so.6 ->
/lib64/libc-2.8.90.so
-rwxr-xr-x   1 root     root       354992 Jun 22 10:00 lib64/libsepol.so.1
lrwxrwxrwx   1 root     root           35 Jul  8 07:09 lib64/libgcc_s.so.1 ->
/lib64/libgcc_s-4.3.1-20080624.so.1
-rwxr-xr-x   1 root     root      1913384 Jul  3 10:43 lib64/libc-2.8.90.so
lrwxrwxrwx   1 root     root           29 Jul  8 07:09 lib64/libparted-1.8.so.8
-> /lib64/libparted-1.8.so.8.0.0
lrwxrwxrwx   1 root     root           22 Jul  8 07:09 lib64/libblkid.so.1 ->
/lib64/libblkid.so.1.0
-rwxr-xr-x   1 root     root       141168 Jul  3 10:43 lib64/libresolv-2.8.90.so
lrwxrwxrwx   1 root     root           30 Jul  8 07:09 lib64/libglib-2.0.so.0 ->
/lib64/libglib-2.0.so.0.1703.0
lrwxrwxrwx   1 root     root           21 Jul  8 07:09 lib64/libm.so.6 ->
/lib64/libm-2.8.90.so
-rwxr-xr-x   1 root     root        90480 Jun 24 17:18
lib64/libgcc_s-4.3.1-20080624.so.1
lrwxrwxrwx   1 root     root           26 Jul  8 07:09 lib64/libresolv.so.2 ->
/lib64/libresolv-2.8.90.so
drwx------   2 root     root            0 Jul  8 07:10 bin
-rwxr-xr-x   1 root     root       122792 Jun 18 15:13 bin/nash
-rwxr-xr-x   1 root     root        11748 May  1 14:12 bin/rmmod
-rwxr-xr-x   1 root     root        93236 May  1 14:12 bin/modprobe
-rwxr-xr-x   1 root     root        21112 Jul  8 07:10 bin/plymouth
-r-xr-xr-x   1 root     root       709176 Jun 27 18:52 bin/lvm
-rwxr-xr-x   1 root     root        31972 Jul  8 07:10 bin/plymouthd
drwx------   3 root     root            0 Jul  8 07:10 usr
drwx------   2 root     root            0 Jul  8 07:09 usr/lib64
-rwxr-xr-x   1 root     root       282232 Jun 17 15:01
usr/lib64/libdhcp6client-1.0.so.2.0.17
-rwxr-xr-x   1 root     root       123088 Apr 22 18:18
usr/lib64/libdhcp-1.99.so.1.0.7
-rwxr-xr-x   1 root     root       582680 Jun 27 12:06 usr/lib64/libnl.so.1.1
lrwxrwxrwx   1 root     root           38 Jul  8 07:09
usr/lib64/libdhcp4client-4.0.so.0 -> /usr/lib64/libdhcp4client-4.0.so.0.0.0
lrwxrwxrwx   1 root     root           39 Jul  8 07:09
usr/lib64/libdhcp6client-1.0.so.2 -> /usr/lib64/libdhcp6client-1.0.so.2.0.17
-rwxr-xr-x   1 root     root       138232 Jul  7 13:24 usr/lib64/libelf-0.135.so
lrwxrwxrwx   1 root     root           26 Jul  8 07:09 usr/lib64/libelf.so.1 ->
/usr/lib64/libelf-0.135.so
lrwxrwxrwx   1 root     root           32 Jul  8 07:09
usr/lib64/libdhcp-1.99.so.1 -> /usr/lib64/libdhcp-1.99.so.1.0.7
-rwxr-xr-x   1 root     root        27624 Jun 18 15:13 usr/lib64/libbdevid.so.6.0.54
-rwxr-xr-x   1 root     root       194736 Jun 18 15:13 usr/lib64/libnash.so.6.0.54
-rwxr-xr-x   1 root     root       784752 Jun 21 16:23
usr/lib64/libdhcp4client-4.0.so.0.0.0
lrwxrwxrwx   1 root     root           23 Jul  8 07:09 usr/lib64/libnl.so.1 ->
/usr/lib64/libnl.so.1.1
-rwxr-xr-x   1 root     root       176692 Jul  8 07:10 usr/lib
drwx------   4 root     root            0 Jul  8 07:10 etc
drwx------   2 root     root            0 Jul  8 07:10 etc/lvm
-rw-------   1 root     root        16001 Jul  8 07:10 etc/lvm/lvm.conf
-rw-r--r--   1 root     root           28 Jul  3 08:21 etc/ld.so.conf
drwx------   2 root     root            0 Jul  8 07:10 etc/ld.so.conf.d
-rw-r--r--   1 root     root         2524 Jul  8 07:10 etc/ld.so.cache
drwx------   3 root     root            0 Jul  8 07:10 lib
lrwxrwxrwx   1 root     root           25 Jul  8 07:10 lib/libpthread.so.0 ->
/lib/libpthread-2.8.90.so
lrwxrwxrwx   1 root     root           23 Jul  8 07:10 lib/libreadline.so.5 ->
/lib/libreadline.so.5.2
lrwxrwxrwx   1 root     root           20 Jul  8 07:10 lib/librt.so.1 ->
/lib/librt-2.8.90.so
-rwxr-xr-x   1 root     root       281860 Mar 23 16:46 lib/libreadline.so.5.2
drwx------   3 root     root            0 Jul  8 07:09 lib/modules
drwx------   2 root     root            0 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64
-rw-------   1 root     root           43 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/modules.seriomap
-rw-------   1 root     root           73 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/modules.ieee1394map
-rw-------   1 root     root        50456 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/dm-snapshot.ko
-rw-------   1 root     root           69 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/modules.ccwmap
-rw-------   1 root     root        49920 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/dm-mirror.ko
-rw-------   1 root     root         1206 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/modules.dep
-rw-------   1 root     root        33432 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/sata_svw.ko
-rw-------   1 root     root           81 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/modules.isapnpmap
-rw-------   1 root     root       251712 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/ext3.ko
-rw-------   1 root     root       128368 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/ohci-hcd.ko
-rw-------   1 root     root         2956 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/modules.symbols
-rw-------   1 root     root        87632 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/uhci-hcd.ko
-rw-------   1 root     root        22176 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/dm-zero.ko
-rw-------   1 root     root       117856 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/jbd.ko
-rw-------   1 root     root        33328 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/mbcache.ko
-rw-------   1 root     root        27880 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/ata_generic.ko
-rw-------   1 root     root         2283 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/modules.pcimap
-rw-------   1 root     root          141 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/modules.inputmap
-rw-------   1 root     root         1504 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/modules.alias
-rw-------   1 root     root          189 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/modules.usbmap
-rw-------   1 root     root        84640 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/shpchp.ko
-rw-------   1 root     root       141016 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/ehci-hcd.ko
-rw-------   1 root     root          445 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/modules.ofmap
-rw-------   1 root     root       130408 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/dm-mod.ko
-rw-------   1 root     root        39120 Jul  8 07:10
lib/modules/2.6.26-0.107.rc8.git2.fc10.ppc64/dm-log.ko
-rwxr-xr-x   1 root     root       160068 May 26 05:40 lib/libncurses.so.5.6
-rwxr-xr-x   1 root     root        69116 Jul  3 10:24 lib/libdl-2.8.90.so
-rwxr-xr-x   1 root     root        69116 Jul  8 07:10 lib/libdl.so.2
-rwxr-xr-x   1 root     root       124088 May 26 05:40 lib/libtinfo.so.5.6
-rwxr-xr-x   1 root     root       200708 Jul  3 10:24 lib/ld-2.8.90.so
-rwxr-xr-x   1 root     root       200468 Jun 29 08:35 lib/libselinux.so.1
-rwxr-xr-x   1 root     root       200708 Jul  8 07:10 lib/ld.so.1
lrwxrwxrwx   1 root     root           20 Jul  8 07:10 lib/libtinfo.so.5 ->
/lib/libtinfo.so.5.6
-rwxr-xr-x   1 root     root       111360 Jun 27 18:52 lib/libdevmapper.so.1.02
-rwxr-xr-x   1 root     root      1715760 Jul  8 07:10 lib/libc.so.6
-rwxr-xr-x   1 root     root       135572 Jul  3 10:24 lib/libpthread-2.8.90.so
-rwxr-xr-x   1 root     root       287280 Jun 22 09:58 lib/libsepol.so.1
-rwxr-xr-x   1 root     root      1715760 Jul  3 10:24 lib/libc-2.8.90.so
-rwxr-xr-x   1 root     root        86976 Jul  8 07:10 lib/libz.so.1
lrwxrwxrwx   1 root     root           22 Jul  8 07:10 lib/libncurses.so.5 ->
/lib/libncurses.so.5.6
-rwxr-xr-x   1 root     root        69776 Jul  3 10:24 lib/librt-2.8.90.so
-rwxr-xr-x   1 root     root       856400 Jul  8 07:10 lib/libm.so.6
drwx------   2 root     root            0 Jul  8 07:09 sys
lrwxrwxrwx   1 root     root            3 Jul  8 07:09 sbin -> bin
drwx------   2 root     root            0 Jul  8 07:09 sysroot
drwx------   3 root     root            0 Jul  8 07:10 dev
crw-------   1 root     root       4,   1 Jul  8 07:10 dev/tty1
crw-------   1 root     root       4,  67 Jul  8 07:10 dev/ttyS3
crw-------   1 root     root       4,  11 Jul  8 07:10 dev/tty11
crw-------   1 root     root       4,  64 Jul  8 07:10 dev/ttyS0
crw-------   1 root     root       5,   2 Jul  8 07:10 dev/ptmx
crw-------   1 root     root       4,   5 Jul  8 07:10 dev/tty5
brw-------   1 root     root       1,   0 Jul  8 07:10 dev/ram0
crw-------   1 root     root       4,   3 Jul  8 07:10 dev/tty3
crw-------   1 root     root       4,   6 Jul  8 07:10 dev/tty6
crw-------   1 root     root       4,   0 Jul  8 07:10 dev/systty
crw-------   1 root     root       5,   0 Jul  8 07:10 dev/tty
crw-------   1 root     root       4,   8 Jul  8 07:10 dev/tty8
crw-------   1 root     root       1,   3 Jul  8 07:10 dev/null
crw-------   1 root     root       4,   2 Jul  8 07:10 dev/tty2
crw-------   1 root     root       4,   9 Jul  8 07:10 dev/tty9
crw-------   1 root     root       4,  66 Jul  8 07:10 dev/ttyS2
crw-------   1 root     root       4,   4 Jul  8 07:10 dev/tty4
crw-------   1 root     root       4,  12 Jul  8 07:10 dev/tty12
crw-------   1 root     root       4,   0 Jul  8 07:10 dev/tty0
crw-------   1 root     root       4,  65 Jul  8 07:10 dev/ttyS1
drwx------   2 root     root            0 Jul  8 07:10 dev/mapper
crw-------   1 root     root       1,   5 Jul  8 07:10 dev/zero
crw-------   1 root     root       4,  10 Jul  8 07:10 dev/tty10
crw-------   1 root     root       4,   7 Jul  8 07:10 dev/tty7
crw-------   1 root     root       5,   1 Jul  8 07:10 dev/console
lrwxrwxrwx   1 root     root            4 Jul  8 07:10 dev/ram -> ram1
brw-------   1 root     root       1,   1 Jul  8 07:10 dev/ram1
drwx------   2 root     root            0 Jul  8 07:09 proc


[root@ridley ~]# eu-readelf -h /usr/bin/plymouth 
ELF Header:
  Magic:   7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, big endian
  Ident Version:                     1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           PowerPC
  Version:                           1 (current)
  Entry point address:               0x10001ce0
  Start of program headers:          52 (bytes into file)
  Start of section headers:          19992 (bytes into file)
  Flags:                             
  Size of this header:               52 (bytes)
  Size of program header entries:    32 (bytes)
  Number of program headers entries: 8
  Size of section header entries:    40 (bytes)
  Number of section headers entries: 28
  Section header string table index: 27
Comment 6 Ray Strode [halfline] 2008-07-08 13:51:44 EDT
Oh i see, we're doing the mkdir call after we install the libraries...doh
Comment 7 Ray Strode [halfline] 2008-07-08 13:55:04 EDT
should be fixed in tomorrow's rawhide.

Note You need to log in before you can comment on or make changes to this bug.