#4319 Fedora systemtap: can't compile with dtrace

obsolete: 8.5.6
open-accepted
3
2009-03-12
2009-03-12
mmaslano
No

The compilation with configure option "--enable-dtrace" isn't successful on Fedora because of nested macros. I'm not sure where it should be redefined so here are my findings:
- tcl8.5.6/generic/tclCmdAH.c has trouble with TclDecrRefCount in macro STORE_ARY
- tcl8.5.6/generic/tclExecute.c has trouble with
macro TCL_DTRACE_INST_NEXT. Here are defined earlier TCL_DTRACE_INST_DONE and TCL_DTRACE_INST_START

The current source is failing with these errors:
/home/marca/Development/CVSF/tcl/devel/tcl8.5.6/unix/../generic/tclCmdAH.c: In function 'StoreStatData':
/home/marca/Development/CVSF/tcl/devel/tcl8.5.6/unix/../generic/tclCmdAH.c:1517: error: duplicate label '_stapprobe1_obj__free_1517'
/home/marca/Development/CVSF/tcl/devel/tcl8.5.6/unix/../generic/tclCmdAH.c:1517: error: previous definition of '_stapprobe1_obj__free_1517' was here
/home/marca/Development/CVSF/tcl/devel/tcl8.5.6/unix/../generic/tclCmdAH.c:1518: error: duplicate label '_stapprobe1_obj__free_1518'
/home/marca/Development/CVSF/tcl/devel/tcl8.5.6/unix/../generic/tclCmdAH.c:1518: error: previous definition of '_stapprobe1_obj__free_1518' was here
...

After fixing this new ones pop up:
/home/marca/Development/CVSF/tcl/devel/tcl8.5.6/unix/../generic/tclExecute.c: In function 'TclExecuteByteCode':
/home/marca/Development/CVSF/tcl/devel/tcl8.5.6/unix/../generic/tclExecute.c:1896: error: duplicate label '_stapprobe1_inst__start_1896'
/home/marca/Development/CVSF/tcl/devel/tcl8.5.6/unix/../generic/tclExecute.c:1896: error: previous definition of '_stapprobe1_inst__start_1896' was here
/home/marca/Development/CVSF/tcl/devel/tcl8.5.6/unix/../generic/tclExecute.c:1989: error: duplicate label '_stapprobe1_inst__start_1989'
/home/marca/Development/CVSF/tcl/devel/tcl8.5.6/unix/../generic/tclExecute.c:1989: error: previous definition of '_stapprobe1_inst__start_1989' was here
/home/marca/Development/CVSF/tcl/devel/tcl8.5.6/unix/../generic/tclExecute.c:2016: error: duplicate label '_stapprobe1_inst__start_2016'
/home/marca/Development/CVSF/tcl/devel/tcl8.5.6/unix/../generic/tclExecute.c:2016: error: previous definition of '_stapprobe1_inst__start_2016' was here

Build with:
gcc-4.3.2-7.x86_64
systemtap-0.8-1.fc10.x86_64
tcl-8.5.6

Discussion

  • mmaslano
    mmaslano
    2009-03-12

    • assigned_to: mdejong --> das
     
  • This looks like a systemtap limitation, these macros work just fine with DTrace
    DTrace support was only ever tested with Solaris and Mac OS X dtrace, if you can make it work with systemtap, feel free to submit a patch, I don't have access to that platform

     
    • priority: 5 --> 3
    • summary: can't compile with dtrace --> Fedora systemtap: can't compile with dtrace
    • status: open --> open-accepted
     
  • mmaslano
    mmaslano
    2009-05-18

    The build with '--enable-dtrace' is possible since systemtap-0.9.5 release, which fixed previous problem.