Bug 761493

Summary: stap module compilation fails when using --ldd (i386 specific)
Product: Red Hat Enterprise Linux 5 Reporter: Petr Muller <pmuller>
Component: systemtapAssignee: Frank Ch. Eigler <fche>
Status: CLOSED WONTFIX QA Contact: qe-baseos-tools-bugs
Severity: low Docs Contact:
Priority: low    
Version: 5.8CC: 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:
Description Flags
systemtap -vvvv output
none
i386 binary reproducer artifact
none
stap-symbols.h containing the overflowing integer constant none

Description Petr Muller 2011-12-08 12:44:13 UTC
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.

Comment 1 Frank Ch. Eigler 2011-12-08 12:56:34 UTC
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.

Comment 2 Frank Ch. Eigler 2011-12-08 12:57:00 UTC
Ah, and if you use stap -k ..., you can see the stap-symbol.h values of
concern, which should narrow down our search.

Comment 3 Petr Muller 2011-12-08 13:53:21 UTC
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

Comment 4 Petr Muller 2011-12-08 13:54:10 UTC
Created attachment 542539 [details]
systemtap -vvvv output

Comment 5 Petr Muller 2011-12-08 13:56:43 UTC
Created attachment 542546 [details]
i386 binary reproducer artifact

The binary was compiled using RHEL5.8 toolchain, using g++.

Comment 6 Frank Ch. Eigler 2011-12-08 16:06:45 UTC
Could you attach the stap-symbols.h file too?  It could be a
prelinking-related problem.

Comment 7 Petr Muller 2011-12-09 11:21:08 UTC
Created attachment 544479 [details]
stap-symbols.h containing the overflowing integer constant

Comment 8 RHEL Program Management 2012-04-02 13:10:18 UTC
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.

Comment 9 Frank Ch. Eigler 2012-04-25 16:44:44 UTC
We'll aim to fix this upstream & backport, but cond-nak until the patch is available.

Comment 10 RHEL Program Management 2012-10-30 05:49:40 UTC
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.

Comment 11 Frank Ch. Eigler 2013-03-12 16:21:02 UTC
Sorry, we don't have a fix for this occasional problem yet, and likely won't be able to backport it soon enough.