Skip to content

Commit

Permalink
Use MODULE_NAME in stap-probe instead of IN_LIB
Browse files Browse the repository at this point in the history
Define MODULE_NAME in the build command and define IN_MODULE using
MODULE_NAME.  Verified that the generated code is unchanged on x86_64.

	* Makeconfig (module-cppflags-real): Define MODULE_NAME
	instead of IN_MODULE.
	* include/libc-symbols.h (IN_MODULE): Define using
	MODULE_NAME.
	(PASTE_NAME, PASTE_NAME1): New macros.
	* include/stap-probe.h (LIBC_PROBE_1): Use MODULE_NAME instead
	of IN_LIB.
	(STAP_PROBE_ASM): Likewise.
  • Loading branch information
Siddhesh Poyarekar committed Nov 24, 2014
1 parent e0cfa51 commit 279bc5b
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 6 deletions.
11 changes: 11 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
2014-11-24 Siddhesh Poyarekar <siddhesh@redhat.com>

* Makeconfig (module-cppflags-real): Define MODULE_NAME
instead of IN_MODULE.
* include/libc-symbols.h (IN_MODULE): Define using
MODULE_NAME.
(PASTE_NAME, PASTE_NAME1): New macros.
* include/stap-probe.h (LIBC_PROBE_1): Use MODULE_NAME instead
of IN_LIB.
(STAP_PROBE_ASM): Likewise.

2014-11-23 Samuel Thibault <samuel.thibault@ens-lyon.org>

* sysdeps/mach/hurd/i386/init-first.c (posixland_init): Call
Expand Down
6 changes: 3 additions & 3 deletions Makeconfig
Original file line number Diff line number Diff line change
Expand Up @@ -830,9 +830,9 @@ in-module = $(subst -,_,$(firstword $(libof-$(basename $(@F))) \
libc))

module-cppflags-real = -include $(common-objpfx)libc-modules.h \
-DIN_MODULE=MODULE_$(in-module)
-DMODULE_NAME=$(in-module)

# We don't need libc-modules.h and the IN_MODULE definition for
# We don't need libc-modules.h and the MODULE_NAME definition for
# shlib-version.v.i.
module-cppflags = $(if $(filter $(@F),$(skip-module-cppflags)), \
,$(module-cppflags-real))
Expand Down Expand Up @@ -1008,7 +1008,7 @@ postclean-generated += soversions.mk soversions.i \
before-compile += $(common-objpfx)libc-modules.h
ifeq ($(soversions.mk-done),t)
# Generate a header with macro definitions for use with the IS_IN macro.
# These are the possible values for the IN_MODULE macro defined when building
# These are the possible values for the MODULE_NAME macro defined when building
# sources, to identify which module the translation unit is going to be built
# into.
$(common-objpfx)libc-modules.h: $(common-objpfx)libc-modules.stmp; @:
Expand Down
4 changes: 4 additions & 0 deletions include/libc-symbols.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,12 @@
#ifndef _LIBC_SYMBOLS_H
#define _LIBC_SYMBOLS_H 1

#define IN_MODULE PASTE_NAME (MODULE_, MODULE_NAME)
#define IS_IN(lib) (IN_MODULE == MODULE_##lib)

#define PASTE_NAME(a,b) PASTE_NAME1 (a,b)
#define PASTE_NAME1(a,b) a##b

/* This file's macros are included implicitly in the compilation of every
file in the C library by -imacros.
Expand Down
6 changes: 3 additions & 3 deletions include/stap-probe.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
Systemtap's header defines the macros STAP_PROBE (provider, name) and
STAP_PROBEn (provider, name, arg1, ..., argn). For "provider" we paste
in the IN_LIB name (libc, libpthread, etc.) automagically.
in MODULE_NAME (libc, libpthread, etc.) automagically.
The format of the arg parameters is discussed here:
Expand All @@ -53,15 +53,15 @@
# endif

# define LIBC_PROBE(name, n, ...) \
LIBC_PROBE_1 (IN_LIB, name, n, ## __VA_ARGS__)
LIBC_PROBE_1 (MODULE_NAME, name, n, ## __VA_ARGS__)

# define LIBC_PROBE_1(lib, name, n, ...) \
STAP_PROBE##n (lib, name, ## __VA_ARGS__)

# define STAP_PROBE0 STAP_PROBE

# define LIBC_PROBE_ASM(name, template) \
STAP_PROBE_ASM (IN_LIB, name, template)
STAP_PROBE_ASM (MODULE_NAME, name, template)

# define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS

Expand Down

0 comments on commit 279bc5b

Please sign in to comment.