| Summary: | stap module compilation fails when using --ldd (i386 specific) | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 5 | Reporter: | Petr Muller <pmuller> | ||||||||
| Component: | systemtap | Assignee: | Frank Ch. Eigler <fche> | ||||||||
| Status: | CLOSED WONTFIX | QA Contact: | qe-baseos-tools-bugs | ||||||||
| Severity: | low | Docs Contact: | |||||||||
| Priority: | low | ||||||||||
| Version: | 5.8 | CC: | mjw, ohudlick, scox | ||||||||
| Target Milestone: | rc | ||||||||||
| Target Release: | --- | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Whiteboard: | |||||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||||
| Doc Text: | Story Points: | --- | |||||||||
| Clone Of: | Environment: | ||||||||||
| Last Closed: | 2013-03-12 16:21:02 UTC | Type: | --- | ||||||||
| Regression: | --- | Mount Type: | --- | ||||||||
| Documentation: | --- | CRM: | |||||||||
| Verified Versions: | Category: | --- | |||||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||||
| Attachments: |
|
||||||||||
Petr, could you share your test binary, and the output of stap -vvvv --ldd ... ? This test works for me on rhel5 i686 with the latest stap rpms. Ah, and if you use stap -k ..., you can see the stap-symbol.h values of concern, which should narrow down our search. Sure, I'll append both the output and the binary. Perhaps the culprit is glibc-debuginfo installed? The offending part of stap-symbol.h looks like this:
static struct _stp_section _stp_module_5_sections[] = {
{
.name = ".dynamic",
.size = 0xeacb8,
.symbols = _stp_module_5_symbols_0,
.num_symbols = 3949,
#if defined(STP_USE_DWARF_UNWINDER) && defined(STP_NEED_UNWIND_DATA)
.debug_hdr = _stp_module_5_debug_frame_hdr_0,
.debug_hdr_len = 20364,
.sec_load_offset = 0xffffffffffffda20 <<< HUGE INT
#else
.debug_hdr = NULL,
.debug_hdr_len = 0,
.sec_load_offset = 0
Created attachment 542539 [details]
systemtap -vvvv output
Created attachment 542546 [details]
i386 binary reproducer artifact
The binary was compiled using RHEL5.8 toolchain, using g++.
Could you attach the stap-symbols.h file too? It could be a prelinking-related problem. Created attachment 544479 [details]
stap-symbols.h containing the overflowing integer constant
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux release for currently deployed products. This request is not yet committed for inclusion in a release. We'll aim to fix this upstream & backport, but cond-nak until the patch is available. This request was not resolved in time for the current release. Red Hat invites you to ask your support representative to propose this request, if still desired, for consideration in the next release of Red Hat Enterprise Linux. Sorry, we don't have a fix for this occasional problem yet, and likely won't be able to backport it soon enough. |
Description of problem: # cat test.cpp #include <iostream> int main(){ return 0; } # g++ -g test.cpp -o test # stap --ldd -c ./test -e 'probe process("./test").function("main*"){ print_ubacktrace(); }' -v Pass 1: parsed user script and 76 library script(s) using 24260virt/13656res/2652shr kb, in 200usr/10sys/213real ms. Pass 2: analyzed script: 1 probe(s), 1 function(s), 1 embed(s), 0 global(s) using 24576virt/14600res/3300shr kb, in 0usr/0sys/7real ms. Pass 3: translated to C into "/tmp/stapofWzie/stap_96714d006bb67e7e2fc41ed97df46e58_1828_src.c" using 98468virt/15680res/4084shr kb, in 260usr/90sys/352real ms. cc1: warnings being treated as errors In file included from /tmp/stapofWzie/stap_96714d006bb67e7e2fc41ed97df46e58_1828_src.c:858: /tmp/stapofWzie/stap-symbols.h:43492: warning: integer constant is too large for ‘long’ type /tmp/stapofWzie/stap-symbols.h:43498: warning: large integer implicitly truncated to unsigned type make[1]: *** [/tmp/stapofWzie/stap_96714d006bb67e7e2fc41ed97df46e58_1828_src.o] Error 1 make: *** [_module_/tmp/stapofWzie] Error 2 Warning: make exited with status: 2 Pass 4: compiled C into "stap_96714d006bb67e7e2fc41ed97df46e58_1828.ko" in 1180usr/190sys/1361real ms. Pass 4: compilation failed. Try again with another '--vp 0001' option. Version-Release number of selected component (if applicable): systemtap-1.6-6.el5 systemtap-1.3-9.el5 => not a regression How reproducible: always on i386, not on different architectures Steps to Reproduce: 1. see above Actual results: Pass 4 failed Expected results: Pass 4 passed Additional info: This is not a regression, at least not in stap. I'm proposing this for 5.9, mostly for tracking. It is definitely not a 5.8 respin reason.