mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-03 17:56:17 +01:00
build: simplify dtrace configuration
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
This commit is contained in:
parent
b990acf7ae
commit
7563ab4734
@ -362,15 +362,12 @@ libglib_2_0_la_LDFLAGS = $(GLIB_LINK_FLAGS) \
|
|||||||
INSTALL_PROGS=
|
INSTALL_PROGS=
|
||||||
|
|
||||||
if ENABLE_DTRACE
|
if ENABLE_DTRACE
|
||||||
DTCOMPILE = $(patsubst -W%,,$(LTCOMPILE))
|
|
||||||
DTCFLAGS = $(patsubst -W%,,$(CFLAGS))
|
|
||||||
|
|
||||||
glib_probes.h: glib_probes.d
|
glib_probes.h: glib_probes.d
|
||||||
$(AM_V_GEN) $(DTRACE) -C -h -s $< -o $@.tmp
|
$(AM_V_GEN) $(DTRACE) -C -h -s $< -o $@.tmp
|
||||||
@$(SED) -e "s,define STAP_HAS_SEMAPHORES 1,undef STAP_HAS_SEMAPHORES," < $@.tmp > $@ && rm -f $@.tmp
|
@$(SED) -e "s,define STAP_HAS_SEMAPHORES 1,undef STAP_HAS_SEMAPHORES," < $@.tmp > $@ && rm -f $@.tmp
|
||||||
|
|
||||||
glib_probes.lo: glib_probes.d
|
glib_probes.lo: glib_probes.d
|
||||||
$(AM_V_GEN) env CC="$(DTCOMPILE)" CFLAGS="$(DTCFLAGS)" $(DTRACE) -G -s $< -o $@
|
$(AM_V_GEN) $(LIBTOOL) --mode=compile $(AM_V_lt) --tag=CC $(DTRACE) -G -s $< -o $@
|
||||||
|
|
||||||
BUILT_SOURCES += glib_probes.h glib_probes.lo
|
BUILT_SOURCES += glib_probes.h glib_probes.lo
|
||||||
CLEANFILES += glib_probes.h glib_probes.h.tmp
|
CLEANFILES += glib_probes.h glib_probes.h.tmp
|
||||||
|
@ -110,15 +110,13 @@ gobject_c_sources = \
|
|||||||
gvaluetypes.c
|
gvaluetypes.c
|
||||||
|
|
||||||
if ENABLE_DTRACE
|
if ENABLE_DTRACE
|
||||||
DTCOMPILE = $(patsubst -W%,,$(LTCOMPILE))
|
|
||||||
DTCFLAGS = $(patsubst -W%,,$(CFLAGS))
|
|
||||||
|
|
||||||
gobject_probes.h: gobject_probes.d
|
gobject_probes.h: gobject_probes.d
|
||||||
$(AM_V_GEN) $(DTRACE) -C -h -s $< -o $@.tmp
|
$(AM_V_GEN) $(DTRACE) -C -h -s $< -o $@.tmp
|
||||||
@$(SED) -e "s,define STAP_HAS_SEMAPHORES 1,undef STAP_HAS_SEMAPHORES," < $@.tmp > $@ && rm -f $@.tmp
|
@$(SED) -e "s,define STAP_HAS_SEMAPHORES 1,undef STAP_HAS_SEMAPHORES," < $@.tmp > $@ && rm -f $@.tmp
|
||||||
|
|
||||||
gobject_probes.lo: gobject_probes.d
|
gobject_probes.lo: gobject_probes.d
|
||||||
$(AM_V_GEN) env CC="$(DTCOMPILE)" CFLAGS="$(DTCFLAGS)" $(DTRACE) -G -s $< -o $@
|
$(AM_V_GEN) $(LIBTOOL) --mode=compile $(AM_V_lt) --tag=CC $(DTRACE) -G -s $< -o $@
|
||||||
|
|
||||||
BUILT_SOURCES += gobject_probes.h gobject_probes.lo
|
BUILT_SOURCES += gobject_probes.h gobject_probes.lo
|
||||||
CLEANFILES += gobject_probes.h
|
CLEANFILES += gobject_probes.h
|
||||||
|
Loading…
Reference in New Issue
Block a user