linux-tools: perf should link statically to libbfd
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| linux (Ubuntu) |
Low
|
Unassigned | ||
| Lucid |
Undecided
|
Stefan Bader | ||
| Maverick |
Undecided
|
Stefan Bader | ||
| Natty |
Undecided
|
Stefan Bader | ||
| Oneiric |
Low
|
Unassigned |
Bug Description
SRU Justification:
Impact: By dynamically linking libbfd, it is not possible to have older versions of the perf tool installed (as there can only be one version of this lib). Also, Debian policy actually forbids depending on a certain version of the library).
Fix: Change the makefile to statically link libbfd. This is a Ubuntu specific change, though. Which unlikely will make it upstream.
Testcase: Check the perf version provided though the builders (it seems that building in chroots can cause builds not linking against libbfd at all as HAVE_CPLUS_DEMANGLE gets set). The ouput of ldd should not show libbfd.
---
Trying to install linux-tools-
Unpacking replacement linux-tools-
dpkg: dependency problems prevent configuration of linux-tools-
linux-
Version of binutils on system is 2.21.0.
dpkg: error processing linux-tools-
dependency problems - leaving unconfigured
Errors were encountered while processing:
linux-
This is because perf is dynamically linked to libbfd, and only one version of libbfd (in the binutils package) can be installed at a time. This makes it impossible to install linux-tools for more than one Ubuntu release onto the system at the same time, which is a hindrance to debugging for obvious reasons.
Please link perf statically against libbfd.
ProblemType: Bug
DistroRelease: Ubuntu 11.04
Package: linux-image-
ProcVersionSign
Uname: Linux 2.6.35-28-generic x86_64
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.23.
Architecture: amd64
ArecordDevices:
**** List of CAPTURE Hardware Devices ****
card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
AudioDevicesInUse:
USER PID ACCESS COMMAND
/dev/snd/
Card0.Amixer.info:
Card hw:0 'Intel'/'HDA Intel at 0xf2520000 irq 47'
Mixer name : 'Intel IbexPeak HDMI'
Components : 'HDA:14f15069,
Controls : 14
Simple ctrls : 6
Card29.Amixer.info:
Card hw:29 'ThinkPadEC'
Mixer name : 'ThinkPad EC 6QHT30WW-1.11'
Components : ''
Controls : 1
Simple ctrls : 1
Card29.
Simple mixer control 'Console',0
Capabilities: pswitch pswitch-joined penum
Playback channels: Mono
Mono: Playback [on]
Date: Mon May 16 12:52:52 2011
HibernationDevice: RESUME=
InstallationMedia: Ubuntu 10.04.1 LTS "Lucid Lynx" - Release amd64 (20100816.1)
MachineType: LENOVO 3249CTO
ProcEnviron:
LANGUAGE=en_US:en
PATH=(custom, user)
LANG=en_US.UTF-8
SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=
RelatedPackageV
linux-
linux-
linux-firmware 1.52
SourcePackage: linux
UpgradeStatus: Upgraded to natty on 2011-03-24 (52 days ago)
WifiSyslog:
dmi.bios.date: 08/23/2010
dmi.bios.vendor: LENOVO
dmi.bios.version: 6QET52WW (1.22 )
dmi.board.name: 3249CTO
dmi.board.vendor: LENOVO
dmi.board.version: Not Available
dmi.chassis.
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.
dmi.modalias: dmi:bvnLENOVO:
dmi.product.name: 3249CTO
dmi.product.
dmi.sys.vendor: LENOVO
Steve Langasek (vorlon) wrote : | #1 |
Changed in linux (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Low |
Anders Kaseorg (andersk) wrote : | #2 |
description: | updated |
Changed in linux (Ubuntu Lucid): | |
assignee: | nobody → Stefan Bader (stefan-bader-canonical) |
status: | New → In Progress |
Changed in linux (Ubuntu Maverick): | |
assignee: | nobody → Stefan Bader (stefan-bader-canonical) |
status: | New → In Progress |
Changed in linux (Ubuntu Natty): | |
assignee: | nobody → Stefan Bader (stefan-bader-canonical) |
status: | New → In Progress |
Stefan Bader (smb) wrote : | #4 |
The provided patch seems incomplete to me. The changed lines only seem to effect any testing, not the build. Though I could see that my own testbuilds were not linking against libbfd, but that turned out to be because HAVE_CPLUS_DEMANGLE is defined. Which actually may be an alternate solution (to modify the builddeps of the kernel package).
Anyway, for a starter, this is the modified Oneiric patch.
Anders Kaseorg (andersk) wrote : | #5 |
Yeah, the fixed patch looks right, thanks.
Stefan Bader (smb) wrote : | #6 |
Actually, just when you think you understood things, I now see why the old patch seemed to work. What happens is that with those modifications (use /usr/lib/libbfd.a) all compile tests that try to find out whether libbfd, libiberty or libz are there fail. And so we always take the last route of HAVE_CPLUS_
Well, the compile works, but I am not really sure whether this is what we want. There certainly is a reason to try libbfd first. Then, while talking about this, there was one idea that, whatever we do, if we could avoid having a Ubuntu specific change to carry around, this would be much less burden to maintain.
There seemed to be an option documented in the makefile (which is to define LDFLAGS="-static") that should result in a static build. Though this seems broken. However, if that can be fixed, that would be something acceptable upstream. So I need to look at that a bit more.
Changed in linux (Ubuntu Oneiric): | |
status: | Triaged → Fix Committed |
Changed in linux (Ubuntu Lucid): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Maverick): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Natty): | |
status: | In Progress → Fix Committed |
Launchpad Janitor (janitor) wrote : | #7 |
This bug was fixed in the package linux - 3.0.0-9.12
---------------
linux (3.0.0-9.12) oneiric; urgency=low
[ Andy Whitcroft ]
* [Config] standardise CONFIG_
* [Config] move ECRYPT_FS back to =y for all architectures
- LP: #827197
* record the compiler in the ABI and check for inconsistant builds
[ Leann Ogasawara ]
* Revert "SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX"
* Revert "SAUCE: OMAP: DSS2: check for both cpu type and revision, rather
than just revision"
* Revert "SAUCE: ARM: OMAP: Add macros for comparing silicon revision"
* rebase to v3.0.2
* rebase to v3.0.3
* Temporarily ignore module check
* [Config] Set CONFIG_DM_MIRROR=m on amd64, i386, and arm
* [Config] Set CONFIG_
* [Config] Set CONFIG_
* [Config] Enable CONFIG_
* [Config] Enable CONFIG_
* [Config] Enable CONFIG_
* [Config] Enable CONFIG_
* [Config] Set CONFIG_EFI_VARS=m on amd64 and i386
[ Stefan Bader ]
* [Upstream] xen-blkfront: Drop name and minor adjustments for emulated
scsi devices
- LP: #784937
* [Config] Force perf to use libiberty for demangling
- LP: #783660
[ Stefano Stabellini ]
* [Upstream] xen: Do not enable PV IPIs when vector callback not present
- LP: #791850
[ Tim Gardner ]
* [Config] updateconfigs after rebase to 3.0.2
[ Upstream Kernel Changes ]
* Not all systems expose a firmware or platform mechanism for changing
the backlight intensity on i915, so add native driver support.
- LP: #568611
* rebase to v3.0.2
* rebase to v3.0.3
-- Leann Ogasawara <email address hidden> Mon, 15 Aug 2011 13:35:57 -0700
Changed in linux (Ubuntu Oneiric): | |
status: | Fix Committed → Fix Released |
Herton R. Krzesinski (herton) wrote : | #8 |
This bug is awaiting verification that the kernel for Natty in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-
If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.
See https:/
tags: | added: verification-needed-natty |
Steve Langasek (vorlon) wrote : | #9 |
Confirmed that the natty-proposed linux-tools-
tags: |
added: verification-done-natty removed: verification-needed-natty |
Launchpad Janitor (janitor) wrote : | #10 |
This bug was fixed in the package linux - 2.6.38-11.50
---------------
linux (2.6.38-11.50) natty-proposed; urgency=low
[Herton R. Krzesinski]
* Release Tracking Bug
- LP: #848246
[ Upstream Kernel Changes ]
* Revert "eCryptfs: Handle failed metadata read in lookup"
* Revert "KVM: fix kvmclock regression due to missing clock update"
* Revert "ath9k: use split rx buffers to get rid of order-1 skb
allocations"
linux (2.6.38-11.49) natty-proposed; urgency=low
[Herton R. Krzesinski]
* Release Tracking Bug
- LP: #836903
[ Adam Jackson ]
* SAUCE: drm/i915/pch: Fix integer math bugs in panel fitting
- LP: #753994
[ Keng-Yu Lin ]
* SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo Zhaoyang E47
- LP: #632884, #803005
[ Stefan Bader ]
* [Config] Force perf to use libiberty for demangling
- LP: #783660
[ Tim Gardner ]
* [Config] Add enic/fnic to udebs
- LP: #801610
[ Upstream Kernel Changes ]
* eeepc-wmi: add keys found on EeePC 1215T
- LP: #812644
* eCryptfs: Handle failed metadata read in lookup
- LP: #509180
* pagemap: close races with suid execve, CVE-2011-1020
- LP: #813026
- CVE-2011-1020
* report errors in /proc/*/*map* sanely, CVE-2011-1020
- LP: #813026
- CVE-2011-1020
* close race in /proc/*/environ, CVE-2011-1020
- LP: #813026
- CVE-2011-1020
* auxv: require the target to be tracable (or yourself), CVE-2011-1020
- LP: #813026
- CVE-2011-1020
* deal with races in /proc/*/{syscall, stack, personality}, CVE-2011-1020
- LP: #813026
- CVE-2011-1020
* vmscan: fix a livelock in kswapd
- LP: #813797
* mmc: Add PCI fixup quirks for Ricoh 1180:e823 reader
- LP: #773524
* mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency
- LP: #773524
* rose: Add length checks to CALL_REQUEST parsing, CVE-2011-1493
- LP: #816550
- CVE-2011-1493
* pata_marvell: Add support for 88SE91A0, 88SE91A4
- LP: #777325
* GFS2: make sure fallocate bytes is a multiple of blksize, CVE-2011-2689
- LP: #819572
- CVE-2011-2689
* Bluetooth: l2cap and rfcomm: fix 1 byte infoleak to userspace.
- LP: #819569
- CVE-2011-2492
* drm/nv50-nvc0: work around an evo channel hang that some people see
- LP: #583760
* KVM: fix kvmclock regression due to missing clock update
- LP: #795717
* Add mount option to check uid of device being mounted = expect uid,
CVE-2011-1833
- LP: #732628
- CVE-2011-1833
* proc: fix oops on invalid /proc/<pid>/maps access, CVE-2011-1020
- LP: #813026
- CVE-2011-1020
* ipv6: make fragment identifications less predictable, CVE-2011-2699
- LP: #827685
- CVE-2011-2699
* ath9k: use split rx buffers to get rid of order-1 skb allocations
- LP: #728835
* perf: Fix software event overflow, CVE-2011-2918
- LP: #834121
- CVE-2011-2918
-- Herton Ronaldo Krzesinski <email address hidden> Mon, 12 Sep 2011 17:23:38 -0300
Changed in linux (Ubuntu Natty): | |
status: | Fix Committed → Fix Released |
Herton R. Krzesinski (herton) wrote : | #11 |
This bug is awaiting verification that the kernel for Maverick in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-
If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.
See https:/
tags: | added: verification-needed-maverick |
Stefan Bader (smb) wrote : | #12 |
Confirming that the perf tool in the Maverick package has no dependency on libbfd.
tags: |
added: verification-done-maverick removed: verification-needed-maverick |
Launchpad Janitor (janitor) wrote : | #13 |
This bug was fixed in the package linux - 2.6.35-30.60
---------------
linux (2.6.35-30.60) maverick-proposed; urgency=low
[Herton R. Krzesinski]
* Release Tracking Bug
- LP: #854092
[ Stefan Bader ]
* [Config] Force perf to use libiberty for demangling
- LP: #783660
[ Tim Gardner ]
* [Config] Simplify binary-udebs dependencies
* [Config] kernel preparation cannot be parallelized
* [Config] Linearize module/abi checks
* [Config] Linearize and simplify tree preparation rules
* [Config] Build kernel image in parallel with modules
* [Config] Set concurrency for kmake invocations
* [Config] Improve install-
* [Config] Fix binary-perarch dependencies
* [Config] Removed stamp-flavours target
* [Config] Serialize binary indep targets
* [Config] Use build stamp directly
* [Config] Restore prepare-% target
* [Config] Fix binary-% build target
[ Upstream Kernel Changes ]
* Add mount option to check uid of device being mounted = expect uid,
CVE-2011-1833
- LP: #732628
- CVE-2011-1833
* ipv6: make fragment identifications less predictable, CVE-2011-2699
- LP: #827685
- CVE-2011-2699
* perf: Fix software event overflow, CVE-2011-2918
- LP: #834121
- CVE-2011-2918
* cifs: fix possible memory corruption in CIFSFindNext, CVE-2011-3191
- LP: #834135
- CVE-2011-3191
* befs: Validate length of long symbolic links, CVE-2011-2928
- LP: #834124
- CVE-2011-2928
* gro: Only reset frag0 when skb can be pulled, CVE-2011-2723
- LP: #844371
- CVE-2011-2723
* Validate size of EFI GUID partition entries, CVE-2011-1776
- LP: #844365
- CVE-2011-1776
* inet_diag: fix inet_diag_
- LP: #838421
- CVE-2011-2213
* si4713-i2c: avoid potential buffer overflow on si4713, CVE-2011-2700
- LP: #844370
- CVE-2011-2700
* Bluetooth: Prevent buffer overflow in l2cap config request,
CVE-2011-2497
- LP: #838423
- CVE-2011-2497
* core: Fix memory leak/corruption on VLAN GRO_DROP, CVE-2011-1576
- LP: #844361
- CVE-2011-1576
-- Herton Ronaldo Krzesinski <email address hidden> Mon, 19 Sep 2011 15:10:43 -0300
Changed in linux (Ubuntu Maverick): | |
status: | Fix Committed → Fix Released |
Herton R. Krzesinski (herton) wrote : | #14 |
This bug is awaiting verification that the kernel for Lucid in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-
If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.
See https:/
tags: | added: verification-needed-lucid |
Stefan Bader (smb) wrote : | #15 |
Verified that there is no reference to libbfd in the Lucid version either.
tags: |
added: verification-done-lucid removed: verification-needed-lucid |
Launchpad Janitor (janitor) wrote : | #16 |
This bug was fixed in the package linux - 2.6.32-35.78
---------------
linux (2.6.32-35.78) lucid-proposed; urgency=low
[Herton R. Krzesinski]
* Release Tracking Bug
- LP: #871899
[ Andrew Dickinson ]
* SAUCE: sched: Prevent divide by zero when cpu_power is 0
- LP: #614853
[ Stefan Bader ]
* [Config] Force perf to use libiberty for demangling
- LP: #783660
[ Tim Gardner ]
* [Config] Simplify binary-udebs dependencies
- LP: #832352
* [Config] kernel preparation cannot be parallelized
- LP: #832352
* [Config] Linearize module/abi checks
- LP: #832352
* [Config] Linearize and simplify tree preparation rules
- LP: #832352
* [Config] Build kernel image in parallel with modules
- LP: #832352
* [Config] Set concurrency for kmake invocations
- LP: #832352
* [Config] Improve install-
- LP: #832352
* [Config] Fix binary-perarch dependencies
- LP: #832352
* [Config] Removed stamp-flavours target
- LP: #832352
* [Config] Serialize binary indep targets
- LP: #832352
* [Config] Use build stamp directly
- LP: #832352
* [Config] Restore prepare-% target
- LP: #832352
* [Config] Fix binary-% build target
* [Config] Fix install-headers target
- LP: #832352
* SAUCE: igb: Protect stats update
- LP: #829566
* SAUCE: rtl8192se spams log
- LP: #859702
[ Upstream Kernel Changes ]
* Add mount option to check uid of device being mounted = expect uid,
CVE-2011-1833
- LP: #732628
- CVE-2011-1833
* crypto: Move md5_transform to lib/md5.c
- LP: #827462
* net: Compute protocol sequence numbers and fragment IDs using MD5.
- LP: #827462
* ALSA: timer - Fix Oops at closing slave timer
- LP: #827462
* ALSA: snd-usb-caiaq: Fix keymap for RigKontrol3
- LP: #827462
* powerpc: Fix device tree claim code
- LP: #827462
* powerpc: pseries: Fix kexec on machines with more than 4TB of RAM
- LP: #827462
* Linux 2.6.32.45+drm33.19
- LP: #827462
* ipv6: make fragment identifications less predictable, CVE-2011-2699
- LP: #827685
- CVE-2011-2699
* tunnels: fix netns vs proto registration ordering
- LP: #823296
* Fix broken backport for IPv6 tunnels in 2.6.32-longterm kernels.
* USB: xhci: fix OS want to own HC
- LP: #837669
* USB: assign instead of equal in usbtmc.c
- LP: #837669
* USB: usb-storage: unusual_devs entry for ARM V2M motherboard.
- LP: #837669
* USB: Serial: Added device ID for Qualcomm Modem in Sagemcom's HiLo3G
- LP: #837669
* atm: br2864: sent packets truncated in VC routed mode
- LP: #837669
* hwmon: (ibmaem) add missing kfree
- LP: #837669
* ALSA: snd-usb-caiaq: Correct offset fields of outbound iso_frame_desc
- LP: #837669
* mm: fix wrong vmap address calculations with odd NR_CPUS values
- LP: #837669
* perf tools: do not look at ./config for configuration
- LP: #837669
* fs/partitions/
oops
- LP: #837669
* befs: Validate length of long symbolic links.
- LP: #837669
* ALSA: snd_usb_caiaq: track submitted output urbs
- LP: #8...
Changed in linux (Ubuntu Lucid): | |
status: | Fix Committed → Fix Released |
See also the binutils-dev package description, which explicitly forbids linking Debian packages dynamically with libbfd:
Package: binutils-dev
Description: The GNU binary utilities (BFD development files)
This package includes header files and static libraries necessary to build
programs which use the GNU BFD library, which is part of binutils. Note that
building Debian packages which depend on the shared libbfd is Not Allowed.
The same thing happened to oprofile several times until it was finally fixed to link libbfd statically (http:// bugs.debian. org/537744, http:// bugs.debian. org/573905, bug 426614, bug 588033).