Skip to content
  • Allison Karlitskaya's avatar
    build: simplify dtrace configuration · 7563ab47
    Allison Karlitskaya authored and Matthias Clasen's avatar Matthias Clasen committed
    The ability to pass libtool via $(CC) to dtrace and have it respect this
    appears to be a feature that is only present in the systemtap version of
    the tool.  In particular, FreeBSD (which seems to be using a copy of the
    tool from Solaris) doesn't support this.
    
    The result is that, with $(CC) ignored, and a .lo file specified in -o,
    we get an ELF written to the .lo.
    
    Instead of trying to have dtrace run libtool we can have libtool run
    dtrace.  dtrace is really just a compiler that produces an object file
    here, and it even understands -o, so libtool can make the appropriate
    adjustments.
    
    There appears to be some prior art for this approach.  A quick search
    shows that at least QEMU is using this approach.  It also appears to
    work on Linux with systemtap's dtrace and on FreeBSD.
    
    This may regress cross-compilation because the dtrace command will have
    no way of knowing which compiler we intend for it to use to produce the
    object file.  I say "may" because I don't know if dtrace ever worked in
    the first place under cross-compilation.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=725902
    7563ab47