Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 454353 - plymouth libraries are not loaded correctly on ppc64
Summary: plymouth libraries are not loaded correctly on ppc64
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: plymouth
Version: rawhide
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Ray Strode [halfline]
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-07-07 21:41 UTC by Will Woods
Modified: 2008-07-08 17:55 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-07-08 17:55:04 UTC


Attachments (Terms of Use)

Description Will Woods 2008-07-07 21:41:32 UTC
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-08 01:49:36 UTC
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 14:03:38 UTC
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 14:04:09 UTC
actually thinking about it, we *want* /usr/lib for ppc64

Comment 4 Ray Strode [halfline] 2008-07-08 14:10:26 UTC
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 15:19:06 UTC
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 17:51:44 UTC
Oh i see, we're doing the mkdir call after we install the libraries...doh

Comment 7 Ray Strode [halfline] 2008-07-08 17:55:04 UTC
should be fixed in tomorrow's rawhide.


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