Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 342335 - dev-libs/libusb-1.0.8: libusb-1.0.so.0 missing symbol `libusb_control_transfer' (causes sys-power/upower link failure)
Summary: dev-libs/libusb-1.0.8: libusb-1.0.so.0 missing symbol `libusb_control_transfe...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Robin Johnson
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-23 15:50 UTC by Cănărău Constantin
Modified: 2010-10-23 17:47 UTC (History)
1 user (show)

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


Attachments
build.log for 0.9.5 (build.log-0.9.5,52.47 KB, text/plain)
2010-10-23 15:54 UTC, Cănărău Constantin
Details
build.log for 0.9.6 (build.log.0.9.6,9.82 KB, text/plain)
2010-10-23 15:54 UTC, Cănărău Constantin
Details
EXTRA_ECONF="--disable-silent-rules" emerge -1 upower (build.log,84.97 KB, text/plain)
2010-10-23 16:16 UTC, Cănărău Constantin
Details
Log of LDFLAGS="-Wl,-O1,--sort-common,--warn-once,--hash-style=gnu" EXTRA_ECONF="--disable-silent-rules" emerge -1 upower (build.log,84.87 KB, text/plain)
2010-10-23 16:19 UTC, Cănărău Constantin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Cănărău Constantin 2010-10-23 15:50:30 UTC
upower-0.9.5 and upower 0.9.6 fail to compile
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../src -DPACKAGE_LIBEXEC_DIR=\""/usr/libexec"\" -DPACKAGE_SYSCONF_DIR=\""/etc"\" -DPACKAGE_DATA_DIR=\""/usr/share"\" -DPACKAGE_BIN_DIR=\""/usr/bin"\" -DPACKAGE_LOCALSTATE_DIR=\""/var"\" -DPACKAGE_LOCALE_DIR=\""/usr/share/locale"\" -DPACKAGE_LIB_DIR=\""/usr/lib64"\" -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -DG_UDEV_API_IS_SUBJECT_TO_CHANGE -DUP_COMPILATION -DUP_DISABLE_DEPRECATED -I../libupower-glib -I.. -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -pthread -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -pthread -I/usr/include/gudev-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -pthread -I/usr/include/polkit-1 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -I../src -DG_LOG_DOMAIN=\"up-daemon\"  -DG_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -DGSEAL_ENABLE -Wall -Wcast-align -Wno-uninitialized -Wmissing-declarations -Wpointer-arith -Wcast-align -Wwrite-strings -Winit-self -Wreturn-type -Wformat-nonliteral -Wformat-security -Wmissing-format-attribute -Wsign-compare -Wuninitialized -Waggregate-return -Wdeclaration-after-statement -Wno-strict-aliasing   -c -o upowerd-up-marshal.o `test -f 'up-marshal.c' || echo './'`up-marshal.c
  CCLD   upowerd
linux/.libs/libupshared.a(libupshared_la-up-device-csr.o): In function `up_device_csr_refresh':
up-device-csr.c:(.text+0x7ee): undefined reference to `libusb_control_transfer'
collect2: ld returned 1 exit status
make[4]: *** [upowerd] Error 1
make[4]: Leaving directory `/var/tmp/portage/sys-power/upower-0.9.5/work/upower-0.9.5/src'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/var/tmp/portage/sys-power/upower-0.9.5/work/upower-0.9.5/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/var/tmp/portage/sys-power/upower-0.9.5/work/upower-0.9.5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/sys-power/upower-0.9.5/work/upower-0.9.5'
make: *** [all] Error 2
emake failed
 * ERROR: sys-power/upower-0.9.5 failed:
 *   emake failed
 * 
 * Call stack:
 *     ebuild.sh, line   56:  Called src_compile
 *   environment, line 3228:  Called _eapi2_src_compile
 *     ebuild.sh, line  660:  Called die
 * The specific snippet of code:
 *   		emake || die "emake failed"
 * 
 * If you need support, post the output of 'emerge --info =sys-power/upower-0.9.5',
 * the complete build log and the output of 'emerge -pqv =sys-power/upower-0.9.5'.
 * The complete build log is located at '/var/tmp/portage/sys-power/upower-0.9.5/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-power/upower-0.9.5/temp/environment'.
 * S: '/var/tmp/portage/sys-power/upower-0.9.5/work/upower-0.9.5'

>>> Failed to emerge sys-power/upower-0.9.5, Log file:

>>>  '/var/tmp/portage/sys-power/upower-0.9.5/temp/build.log'


Reproducible: Always

Steps to Reproduce:
1. emerge --oneshot upower
2.
3.

Actual Results:  
Fail to compile

Expected Results:  
>=sys-power/upower-0.9.5 compile succefully

Portage 2.2_rc99 (default/linux/amd64/10.0/desktop, gcc-4.5.1, glibc-2.12.1-r1, 2.6.36-gentoo x86_64)
=================================================================
System uname: Linux-2.6.36-gentoo-x86_64-Intel-R-_Core-TM-_i7_CPU_860_@_2.80GHz-with-gentoo-2.0.1
Timestamp of tree: Sat, 23 Oct 2010 07:00:01 +0000
app-shells/bash:     4.1_p9
dev-java/java-config: 2.1.11
dev-lang/python:     2.6.6-r1, 3.1.2-r4
dev-util/cmake:      2.8.1-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.3
sys-apps/sandbox:    2.3-r1
sys-devel/autoconf:  2.13, 2.68
sys-devel/automake:  1.7.9-r2, 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.51.0.11
sys-devel/gcc:       4.5.1
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.10
sys-devel/make:      3.82
virtual/os-headers:  2.6.35 (sys-kernel/linux-headers)
Repositories: gentoo added local_sunrise gnome
ACCEPT_KEYWORDS="amd64 ~amd64 ~x86"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=native -mtune=native -ftree-vectorize -w -floop-interchange -floop-strip-mine -floop-block"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /var/bind /var/lib/citadel /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo"
CXXFLAGS="-O2 -pipe -march=native -mtune=native -ftree-vectorize -w -floop-interchange -floop-strip-mine -floop-block"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--jobs=4 --load-average=7.9 --keep-going --with-bdeps=y --complete-graph"
FEATURES="assume-digests binpkg-logs candy collision-protect distlocks fail-clean fixlafiles fixpackages news nodoc noinfo parallel-fetch preserve-libs protect-owned sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://localhost/ http://mirrors.xservers.ro/gentoo/ http://ftp.roedu.net/pub/mirrors/gentoo.org/ http://mirrors.evolva.ro/gentoo/ http://distfiles.gentoo.org/ http://distfiles.gentoo.org"
LANG="ro_RO.UTF-8"
LC_ALL="ro_RO.UTF-8"
LDFLAGS="-Wl,-O1,--sort-common,--warn-once,--hash-style=gnu,--as-needed"
LINGUAS="ro en"
MAKEOPTS="-j8 --load-average=11"
PKGDIR="/usr/portage/packages"
PORTAGE_COMPRESS="bzip2"
PORTAGE_COMPRESS_FLAGS="-9"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--delete-before --human-readable --progress"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/added /usr/portage/local/local_sunrise /usr/portage/local/gnome"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amavis amd64 apache2 bash-completion bindist bzip2 cairo caps cdr clamdtop cleartype cli consolekit cpudetection cracklib crypt cups curl custom-cflags custom-cpuopts custom-optimization cvs cxx dbus device-mapper directfb diskio dri dts dvd dvdr eds emboss encode exif faac faad fam fbcondecor ffmpeg firefox flac flexresp2 fontconfig fortran fuse gconf gdbm gdu geoip gif git glitz gmp gnome gnutls gpm graphviz gstreamer gtk hal iconv icu idn imagemagick inotify ipv6 ithreads java jbig jpeg jpeg2k kde kerberos lame lcdfilter lcms ldap ldap-sasl libcaca libnotify libssh2 lm_sensors logrotate lua lzma mad matroska mikmod mmx mng modules mp3 mp4 mpeg mpi mudflap multilib mysql mysqli ncurses nls nptl nptlonly nsplugin ogg opengl openmp optimization optimized-qmake oss pam pango pch pcre pdf perl php png policykit postgres ppds pppd prelude python qt3support qt4 quicktime quota rar readline replytolist resolvconf samba sasl schroedinger sdl secure-delete sensord session slang smp snmp socks5 spell sqlite3 sse sse2 ssh ssl startup-notification subversion suexec svg symlink sysfs syslog system-sqlite tcl tcpd theora threads tiff tk tools truetype udev unicode usb v4l v4l2 vdpau vhosts vorbis wmf x264 xcb xcomposite xinerama xml xorg xpm xulrunner xv xvid zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir disk_cache dumpio env expires ext_filter file_cache filter headers ident imagemap include info log_config log_forensic logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http rewrite setenvif so speling status substitute unique_id userdir usertrack version vhost_alias" APACHE2_MPMS="worker" COLLECTD_PLUGINS="apache apcups ascent battery bind conntrack contextswitch cpu cpufreq csv curl curl_xml dbi df disk dns email entropy exec filecount fscache gmond hddtemp interface iptables irq java load logfile madwifi match_empty_counter match_hashed match_regex match_timediff match_value mbmon memcachec memcached memory multimeter mysql network nfs nginx notify_desktop notify_email ntpd olsrd onewire openvpn postgresql powerdns processes protocols python rrdcached rrdtool sensors serial snmp swap syslog table tail target_notification target_replace target_scale target_set tcpconns ted thermal unixsock uptime users uuid vmem wireless write_http" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ro en" LIRC_DEVICES="hauppauge" NGINX_MODULES_HTTP="access addition auth_basic autoindex browser cache_purge charset dav empty_gif fastcgi flv geo geoip gzip headers_more image_filter limit_req limit_zone map memcached perl proxy random_index realip referer rewrite scgi secure_link split_clients ssi stub_status sub upstream_ip_hash userid uwsgi xslt" NGINX_MODULES_MAIL="imap pop3 smtp" PHP_TARGETS="php5-2" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nv nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND
Comment 1 Cănărău Constantin 2010-10-23 15:54:10 UTC
Created attachment 251703 [details]
build.log for 0.9.5
Comment 2 Cănărău Constantin 2010-10-23 15:54:35 UTC
Created attachment 251705 [details]
build.log for 0.9.6
Comment 3 Samuli Suominen (RETIRED) gentoo-dev 2010-10-23 16:00:13 UTC
Can you post build.log from:

EXTRA_ECONF="--disable-silent-rules" emerge -1 upower

Does it help to remove -Wl,--as-needed from LDFLAGS?

Comment 4 Cănărău Constantin 2010-10-23 16:16:06 UTC
Created attachment 251711 [details]
EXTRA_ECONF="--disable-silent-rules" emerge -1 upower

Same error occured
Comment 5 Cănărău Constantin 2010-10-23 16:19:20 UTC
Created attachment 251713 [details]
Log of LDFLAGS="-Wl,-O1,--sort-common,--warn-once,--hash-style=gnu" EXTRA_ECONF="--disable-silent-rules" emerge -1 upower

Still fail to compile
Comment 6 Samuli Suominen (RETIRED) gentoo-dev 2010-10-23 16:28:59 UTC
> up-history.o upowerd-up-main.o upowerd-up-marshal.o -lm -lusb-1.0   -pthread > linux/.libs/libupshared.a(libupshared_la-up-device-csr.o): In function >`up_device_csr_refresh':
> up-device-csr.c:(.text+0x7ee): undefined reference to `libusb_control_transfer'

-lusb-1.0 is there like it should, does it have the required symbols? you can check with nm, for example:

$ nm -D /usr/lib64/libusb-1.0.so.0.0.0 |grep libusb_control
00000000000062b0 T libusb_control_transfer

(try recompiling libusb)
Comment 7 Cănărău Constantin 2010-10-23 16:49:37 UTC
nm -D /usr/lib64/libusb-1.0.so.0.0.0 |grep libusb_control 
return nothing. The symbol is missing.


nm -D /usr/lib64/libusb-1.0.so.0.0.0 |grep libusb
0000000000005b70 T libusb_alloc_transfer
00000000000023c0 T libusb_attach_kernel_driver
0000000000005bf0 T libusb_bulk_transfer
0000000000005a70 T libusb_cancel_transfer
0000000000002550 T libusb_claim_interface
000000000000b7b0 T libusb_clear_halt
0000000000002730 T libusb_close
00000000000023f0 T libusb_detach_kernel_driver
0000000000005990 T libusb_event_handler_active
0000000000005ae0 T libusb_event_handling_ok
000000000000bb30 T libusb_exit
0000000000002a60 T libusb_free_device_list
0000000000005b30 T libusb_free_transfer
00000000000045f0 T libusb_get_bus_number
0000000000004f80 T libusb_get_config_descriptor
0000000000004e90 T libusb_get_config_descriptor_by_value
00000000000025e0 T libusb_get_configuration
0000000000002690 T libusb_get_device
00000000000045e0 T libusb_get_device_address
0000000000002bd0 T libusb_get_device_list
0000000000003400 T libusb_get_max_iso_packet_size
00000000000044b0 T libusb_get_max_packet_size
000000000000b600 T libusb_get_next_timeout
00000000000053a0 T libusb_get_pollfds
0000000000004660 T libusb_get_string_descriptor_ascii
0000000000005940 T libusb_handle_events
00000000000055d0 T libusb_handle_events_locked
000000000000b340 T libusb_handle_events_timeout
000000000000b7c0 T libusb_init
000000000000afb0 T libusb_interrupt_transfer
0000000000002420 T libusb_kernel_driver_active
00000000000059e0 T libusb_lock_event_waiters
00000000000031a0 T libusb_open
0000000000002d90 T libusb_open_device_with_vid_pid
000000000000b5e0 T libusb_pollfds_handle_timeouts
00000000000033e0 T libusb_ref_device
00000000000024d0 T libusb_release_interface
0000000000002450 T libusb_reset_device
00000000000025d0 T libusb_set_configuration
00000000000023a0 T libusb_set_debug
0000000000002460 T libusb_set_interface_alt_setting
00000000000055a0 T libusb_set_pollfd_notifiers
0000000000004b50 T libusb_submit_transfer
0000000000005a00 T libusb_try_lock_events
0000000000005970 T libusb_unlock_event_waiters
00000000000029d0 T libusb_unref_device
000000000000a740 T libusb_wait_for_event


ls -als /usr/lib64/libusb-*
780 -rw-r--r-- 1 root root 798356 oct 23 18:41 /usr/lib64/libusb-1.0.a
  1 -rw-r--r-- 1 root root    951 oct 23 18:41 /usr/lib64/libusb-1.0.la
  0 lrwxrwxrwx 1 root root     19 oct 23 18:41 /usr/lib64/libusb-1.0.so -> libusb-1.0.so.0.0.0
  0 lrwxrwxrwx 1 root root     19 oct 23 18:41 /usr/lib64/libusb-1.0.so.0 -> libusb-1.0.so.0.0.0
 84 -rwxr-xr-x 1 root root  84520 oct 23 18:41 /usr/lib64/libusb-1.0.so.0.0.0


equery b /usr/lib64/libusb-1.0.a /usr/lib64/libusb-1.0.la /usr/lib64/libusb-1.0.so /usr/lib64/libusb-1.0.so.0 /usr/lib64/libusb-1.0.so.0.0.0
 * Searching for /usr/lib64/libusb-1.0.a,/usr/lib64/libusb-1.0.la,/usr/lib64/libusb-1.0.so,/usr/lib64/libusb-1.0.so.0,/usr/lib64/libusb-1.0.so.0.0.0 ... 
dev-libs/libusb-1.0.8 (/usr/lib64/libusb-1.0.so.0 -> libusb-1.0.so.0.0.0)
dev-libs/libusb-1.0.8 (/usr/lib64/libusb-1.0.a)
dev-libs/libusb-1.0.8 (/usr/lib64/libusb-1.0.so -> libusb-1.0.so.0.0.0)
dev-libs/libusb-1.0.8 (/usr/lib64/libusb-1.0.so.0.0.0)
dev-libs/libusb-1.0.8 (/usr/lib64/libusb-1.0.la)


emerge -p --unmerge libusb
 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

>>> These are the packages that would be unmerged:

 dev-libs/libusb
    selected: 0.1.12-r7 1.0.8 
   protected: none 
     omitted: none 

All selected packages: dev-libs/libusb-0.1.12-r7 dev-libs/libusb-1.0.8


emerge -1 libusb
Calculating dependencies                                    ... done!
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) dev-libs/libusb-1.0.8
>>> Installing (1 of 1) dev-libs/libusb-1.0.8
>>> Jobs: 1 of 1 complete                           Load avg: 1.11, 1.21, 1.16
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

but libusb_control symbol is still missing.

emerge -1 upower - fail.
Comment 8 Cănărău Constantin 2010-10-23 16:54:41 UTC
@preserved-rebuild set is empty and revdep-rebuild return no package that need to be recompiled.
Comment 9 Samuli Suominen (RETIRED) gentoo-dev 2010-10-23 17:13:09 UTC
Then libusb is miscompiled if libusb_control_transfer is missing. Post build.log of libusb-1.0.8?
Comment 10 Samuli Suominen (RETIRED) gentoo-dev 2010-10-23 17:15:21 UTC
(In reply to comment #0)
> ACCEPT_KEYWORDS="amd64 ~amd64 ~x86"
> CFLAGS="-O2 -pipe -march=native -mtune=native -ftree-vectorize -w
> -floop-interchange -floop-strip-mine -floop-block"
> CXXFLAGS="-O2 -pipe -march=native -mtune=native -ftree-vectorize -w
> -floop-interchange -floop-strip-mine -floop-block"

I'm not suprised if packages get miscompiled with this setup, though. ACCEPT_KEYWORDS should *never* have more than one arch at time. And the *FLAGS look like overoptimizing.

robbat2: feel free to close as worksforme if you want
Comment 11 Cănărău Constantin 2010-10-23 17:39:51 UTC
I set ACCEPT_KEYWORDS="~amd64" in /etc/make.conf and recompiled both libusb versions.
Now upower (including 0.9.6) compiled successfully.
Mea culpa. I am sorry for that silly settings.
I think it should be closed with "INVALID" resolution.

Thank you very much for your support!