Summary: | dev-libs/libusb-1.0.8: libusb-1.0.so.0 missing symbol `libusb_control_transfer' (causes sys-power/upower link failure) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Cănărău Constantin <canarauc> |
Component: | [OLD] Core system | Assignee: | Robin Johnson <robbat2> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | freedesktop-bugs |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
build.log for 0.9.5
build.log for 0.9.6 EXTRA_ECONF="--disable-silent-rules" emerge -1 upower Log of LDFLAGS="-Wl,-O1,--sort-common,--warn-once,--hash-style=gnu" EXTRA_ECONF="--disable-silent-rules" emerge -1 upower |
Description
Cănărău Constantin
2010-10-23 15:50:30 UTC
Created attachment 251703 [details]
build.log for 0.9.5
Created attachment 251705 [details]
build.log for 0.9.6
Can you post build.log from: EXTRA_ECONF="--disable-silent-rules" emerge -1 upower Does it help to remove -Wl,--as-needed from LDFLAGS? Created attachment 251711 [details]
EXTRA_ECONF="--disable-silent-rules" emerge -1 upower
Same error occured
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
> 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)
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. @preserved-rebuild set is empty and revdep-rebuild return no package that need to be recompiled. Then libusb is miscompiled if libusb_control_transfer is missing. Post build.log of libusb-1.0.8? (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 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! |