Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 463292 - google-chrome: /opt/google/chrome/libudev.so.0: invalid ELF header
Summary: google-chrome: /opt/google/chrome/libudev.so.0: invalid ELF header
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Mike Gilbert
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-25 23:54 UTC by Mark Knecht
Modified: 2013-03-26 02:08 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Knecht 2013-03-25 23:54:08 UTC
Likely this is just something having to do with they way the google-chrome package is put together. If it's a matter of waiting for things to catch up I can do that.

I switched to gcc-4.6 today and did an update of the whole machine as well as rebuilding the kernel and all modules, etc. The machine works fine. So far the only app that doesn't work seems to be google-chrome-26.0.1410.40_beta189199. When starting in a terminal it gives the error:

mark@c2stable ~ $ google-chrome 
/usr/bin/google-chrome: error while loading shared libraries: /opt/google/chrome/libudev.so.0: invalid ELF header
mark@c2stable ~ $

Reproducible: Always

Steps to Reproduce:
1. gcc-config 2 (to switch to the newer gcc)
2. emerge -e @world
3. rebuild kernel & modules-update
4. reboot, log in an run chrome
Actual Results:  
mark@c2stable ~ $ google-chrome 
/usr/bin/google-chrome: error while loading shared libraries: /opt/google/chrome/libudev.so.0: invalid ELF header
mark@c2stable ~ $

Expected Results:  
Should run.
Comment 1 Mike Gilbert gentoo-dev 2013-03-26 00:01:39 UTC
Please show me the output of ls -l /opt/google/chrome/libudev.so.0.
Comment 2 Mark Knecht 2013-03-26 00:19:51 UTC
mark@c2stable ~ $ ls -l /opt/google/chrome/libudev.so.0 
lrwxrwxrwx 1 root root 21 Mar 25 16:23 /opt/google/chrome/libudev.so.0 -> /usr/lib64/libudev.so
mark@c2stable ~ $
Comment 3 Mike Gilbert gentoo-dev 2013-03-26 00:21:11 UTC
Can you following that symlink chain until its end?
Comment 4 Mark Knecht 2013-03-26 00:25:17 UTC
If I understand you then I guess it ends here?

mark@c2stable ~ $ ls -l /opt/google/chrome/libudev.so.0 
lrwxrwxrwx 1 root root 21 Mar 25 16:23 /opt/google/chrome/libudev.so.0 -> /usr/lib64/libudev.so
mark@c2stable ~ $ ls -l /usr/lib64/libudev.so 
-rwxr-xr-x 1 root root 524 Mar 25 14:27 /usr/lib64/libudev.so
mark@c2stable ~ $
Comment 5 Mike Gilbert gentoo-dev 2013-03-26 00:28:54 UTC
Is /usr/lib64/libudev.so a text file (aka a "linker script")?
Comment 6 Mark Knecht 2013-03-26 00:33:52 UTC
I was looking in Google trying to learn a bit about ELF. I found readelf which doesn't seem happy. The contents of the file are shown second.

mark@c2stable ~ $ readelf -h /usr/lib64/libudev.so                                                         
readelf: Error: Unable to read in 0x7964 bytes of section headers                                          
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start                                
mark@c2stable ~ $



mark@c2stable ~ $ cat /usr/lib64/libudev.so                                                                
/* GNU ld script                                                                                           
   Since Gentoo has critical dynamic libraries in /lib, and the static versions                            
   in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we                             
   run into linking problems.  This "fake" dynamic lib is a linker script that                             
   redirects the linker to the real lib.  And yes, this works in the cross-                                
   compiling scenario as the sysroot-ed linker will prepend the real path.                                 
                                                                                                           
   See bug http://bugs.gentoo.org/4411 for more info.                                                      
 */                                                                                                        
OUTPUT_FORMAT ( elf64-x86-64 )                                                                             
GROUP ( /lib64/libudev.so )                                                                                
mark@c2stable ~ $
Comment 7 Mike Gilbert gentoo-dev 2013-03-26 00:36:07 UTC
What version of udev/eudev/systemd do you have installed?

I'm suprised to see that ld script; it is usually a symlink to an ELF file.
Comment 8 Mark Knecht 2013-03-26 00:50:50 UTC
OK, I must admit that these results are getting a bit confusing here. I run _mostly_ stable here. (Only ~amd64 when I need to hopefully) The machine is clean @world:

c2stable ~ # emerge -pvDuN @world

These are the packages that would be merged, in order:

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 kB
c2stable ~ #


However it says I don't have systemd installed and I seem to be getting some portion of udev from the polyc overlay?


c2stable ~ # eix -Ic systemd
No matches found.
c2stable ~ # eix -c systemd
[N] sys-apps/systemd (~198-r5): System and service manager for Linux
[N] sys-apps/systemd-sysv-utils (--): sysvinit compatibility symlinks and manpages
[N] sys-apps/systemd-ui (~1): System and service manager for Linux
[N] sys-devel/systemd-sdk (--): Macros and misc files for systemd daemons
Found 4 matches.
c2stable ~ # 


c2stable ~ # eix -Ic udev
[I] sys-fs/udev (197-r8{tbz2}[1]@03/25/2013): Linux dynamic and persistent device naming support (aka userspace devfs)
[I] sys-fs/udev-init-scripts (23{tbz2}[1]@03/25/2013): udev startup scripts for openrc
[I] virtual/udev (197-r2{tbz2}@03/25/2013): Virtual to select between sys-fs/udev and sys-fs/eudev
[1] "poly-c" /var/lib/layman/poly-c

Found 3 matches.
c2stable ~ # eix -Ic eudev
No matches found.
c2stable ~ #
Comment 9 Mark Knecht 2013-03-26 00:54:57 UTC
If it's causing a problem I can probably drop the poly-c overlay for now. All I wanted originally was jmtpfs which I haven't ended up using much. I suspect emerge is pulling stuff from there instead of the default?



c2stable ~ # eix -c --installed-from-overlay poly-c
[I] app-arch/xz-utils (5.0.4-r1{tbz2}[1]@03/25/2013): utils for managing LZMA compressed files
[I] app-cdr/k3b (2.0.2-r4(4){tbz2}[1]@03/25/2013): The CD/DVD Kreator for KDE
[I] media-sound/alsa-utils (1.0.25-r1(0.9){tbz2}[1]@03/25/2013): Advanced Linux Sound Architecture Utils (alsactl, alsamixer, etc.)
[I] sys-apps/kbd (1.15.3{tbz2}[1]@03/25/2013): Keyboard and console utilities
[I] sys-apps/kmod (12-r1{tbz2}[1]@03/25/2013): library and tools for managing linux kernel modules
[I] sys-apps/man (1.6g{tbz2}[1]@03/25/2013): Standard commands to read man pages
[I] sys-fs/udev (197-r8{tbz2}[1]@03/25/2013): Linux dynamic and persistent device naming support (aka userspace devfs)
[I] sys-fs/udev-init-scripts (23{tbz2}[1]@03/25/2013): udev startup scripts for openrc
[I] sys-fs/jmtpfs [1] (0.4{tbz2}@03/25/2013): a FUSE based MTP filesystem designed to make exchanging files between Android devices and Linux
[I] virtual/jpeg (0{tbz2}[1]@03/25/2013): A virtual for the JPEG implementation
[1] "poly-c" /var/lib/layman/poly-c

Found 10 matches.
c2stable ~ #
Comment 10 Mike Gilbert gentoo-dev 2013-03-26 00:55:19 UTC
(In reply to comment #8)
> However it says I don't have systemd installed and I seem to be getting some
> portion of udev from the polyc overlay?
> 

Right, you would only have 1 of the 3 installed.

I think the problem here is the udev ebuild in the polyc overlay. I would recommend you revert back to the version in the main portage tree.
Comment 11 Mike Gilbert gentoo-dev 2013-03-26 00:56:06 UTC
(In reply to comment #9)

Yes, I would suggest removing that overlay.
Comment 12 Mark Knecht 2013-03-26 01:04:26 UTC
Will remove poly-c and get back to you as soon as updates are done. However I don't see udev getting rebuilt so I'll walk through this stuff again. Maybe I should rebuild all the udev stuff explicitly?

c2stable ~ # emerge -pvDuN @world

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U  ] sys-kernel/linux-headers-3.7 [3.6] 5,201 kB
[ebuild     U  ] media-libs/exiftool-9.120.0 [9.10.0] 3,411 kB
[ebuild     U  ] dev-java/icedtea-bin-6.1.12.4:6 [6.1.12.2:6] USE="X alsa -cjk -cups -doc -examples -nsplugin -source" 37,431 kB

Total: 3 packages (3 upgrades), Size of downloads: 46,043 kB
c2stable ~ # layman -l

 * science                   [Git       ] (git://git.overlays.gentoo.org/proj/sci.git                     )
 * vmware                    [Git       ] (git://git.overlays.gentoo.org/proj/vmware.git                  )

c2stable ~ #
Comment 13 Mike Gilbert gentoo-dev 2013-03-26 01:06:32 UTC
Yes, you will need to explicitly rebuild it.
Comment 14 Mark Knecht 2013-03-26 01:10:49 UTC
Do the new 3.7 version of the linux-headers mean I should rebuild the kernel or anything else to be extra safe?
Comment 15 Mike Gilbert gentoo-dev 2013-03-26 01:24:29 UTC
Nope, no need to rebuild your kernel.
Comment 16 Mark Knecht 2013-03-26 01:30:32 UTC
OK, udev & init-scripts are rebuilt but there's a big @preserved-rebuild to do and then I'll double check things and reboot.

Back in a bit.
Comment 17 Mark Knecht 2013-03-26 01:53:30 UTC
Thanks. That did it. All fixed and posting this back from Chrome.

Cheers and thanks for all the help.
Comment 18 Mike Gilbert gentoo-dev 2013-03-26 02:08:20 UTC
You're welcome, glad I could help.