Bug 14078 - librpmio.so exports bundled broken glob(3) clone
Summary: librpmio.so exports bundled broken glob(3) clone
Status: RESOLVED FIXED
Alias: None
Product: systemtap
Classification: Unclassified
Component: translator (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: Unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-05-08 14:15 UTC by Mark Wielaard
Modified: 2012-05-08 14:25 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
RHBZ-819680-librpmio.so-exports-bundled-broken-glob-.patch (6.70 KB, patch)
2012-05-08 14:15 UTC, Mark Wielaard
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Wielaard 2012-05-08 14:15:31 UTC
Created attachment 6401 [details]
RHBZ-819680-librpmio.so-exports-bundled-broken-glob-.patch

See https://bugzilla.redhat.com/show_bug.cgi?id=819680

The attached patch makes sure we always explicitly use the glibc glob version.

Not yet applied, Frank is looking into another solution using -lc that doesn't require adding our own stap_glob function.

Tested on RHEL5, F16 and F17.
Comment 1 Frank Ch. Eigler 2012-05-08 14:25:37 UTC
commit f02c2e4 appears to work:

LD_DEBUG=all ./stap -p4 -e 'probe process("/lib*/libfoo.bar").function("*") {}' |& grep 'glob;'
     12537:	symbol=glob;  lookup in file=./stap [0]
     12537:	symbol=glob;  lookup in file=/usr/lib64/librpm.so.2 [0]
     12537:	symbol=glob;  lookup in file=/lib64/libc.so.6 [0]

super /home/fche/Private/DEVEL/DEVEL-systemtap/git/BUILD2
[10:25:18] % LD_DEBUG=all ./stap -p4 -e 'probe process("/lib*/libfoo.bar").function("*") {}' |& grep 'glob' | grep -v global
     12545:	symbol=glob;  lookup in file=./stap [0]
     12545:	symbol=glob;  lookup in file=/usr/lib64/librpm.so.2 [0]
     12545:	symbol=glob;  lookup in file=/lib64/libc.so.6 [0]
     12545:	binding file ./stap [0] to /lib64/libc.so.6 [0]: normal symbol `glob' [GLIBC_2.2.5]
     12545:	symbol=globfree;  lookup in file=./stap [0]
     12545:	symbol=globfree;  lookup in file=/usr/lib64/librpm.so.2 [0]
     12545:	symbol=globfree;  lookup in file=/lib64/libc.so.6 [0]
     12545:	binding file ./stap [0] to /lib64/libc.so.6 [0]: normal symbol `globfree' [GLIBC_2.2.5]
semantic error: glob /lib*/libfoo.bar error (3)