diff options
author | Siddhesh Poyarekar <siddhesh@redhat.com> | 2013-12-03 12:26:12 +0530 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@redhat.com> | 2013-12-03 12:26:12 +0530 |
commit | 520d437b9455560d099fe6bd9664be1f9f76868b (patch) | |
tree | 9c5ced695b6a5641628c702d7cc26b375e42004b | |
parent | 416e014536950a77183013fa4c86cb42dfd322a9 (diff) | |
download | glibc-520d437b9455560d099fe6bd9664be1f9f76868b.tar glibc-520d437b9455560d099fe6bd9664be1f9f76868b.tar.gz glibc-520d437b9455560d099fe6bd9664be1f9f76868b.tar.bz2 glibc-520d437b9455560d099fe6bd9664be1f9f76868b.zip |
[BZ #16195] Fix build warnings from systemtap probes in non-systemtap configurations
Joseph pointed out in the bug report (and in an earlier thread) that
systemtap probes cause build time warnings like the following:
../sysdeps/ieee754/dbl-64/e_atan2.c:602:4: warning: the address of
'p' will always evaluate as 'true' [-Waddress]
due to the fact that we're now passing non-weak variables to
LIBC_PROBE in the libm probes. This happens only on configurations
that do not enable systemtap. The macro definition of LIBC_PROBE in
this case only acts as a sanity checker to ensure that the number
parameters passed to LIBC_PROBE is equal to the argument count
parameter passed before it. This can be done in a much simpler manner
by just adding a macro definition for each number of arguments. I am
assuming here that we don't really want to bother with supporting
LIBC_PROBE with an indeterminate number of arguments and if there is a
need for a probe to have more data than what is currently supported (4
arguments), one could simply add an additional macro here.
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | include/stap-probe.h | 15 |
3 files changed, 21 insertions, 9 deletions
@@ -1,3 +1,14 @@ +2013-12-03 Siddhesh Poyarekar <siddhesh@redhat.com> + + [BZ #16195] + * include/stap-probe.h [!USE_STAP_PROBE && !__ASSEMBLER__] + (LIBC_PROBE): Change definition to call STAP_PROBE* macros. + (STAP_PROBE0): New macro. + (STAP_PROBE1): Likewise. + (STAP_PROBE2): Likewise. + (STAP_PROBE3): Likewise. + (STAP_PROBE4): Likewise. + 2013-12-02 Ondřej Bílka <neleai@seznam.cz> * manual/llio.texi (Memory-mapped I/O): Add shm_open and shm_close. @@ -19,8 +19,8 @@ Version 2.19 15892, 15893, 15895, 15897, 15905, 15909, 15917, 15919, 15921, 15923, 15939, 15948, 15963, 15966, 15985, 15988, 15997, 16032, 16034, 16036, 16037, 16041, 16055, 16071, 16072, 16074, 16077, 16078, 16103, 16112, - 16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172, 16214, 16245, - 16271. + 16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172, 16195, 16214, + 16245, 16271. * The public headers no longer use __unused nor __block. This change is to support compiling programs that are derived from BSD sources and use diff --git a/include/stap-probe.h b/include/stap-probe.h index 5f725562cb..e2963506aa 100644 --- a/include/stap-probe.h +++ b/include/stap-probe.h @@ -61,13 +61,14 @@ # ifndef __ASSEMBLER__ /* Evaluate all the arguments and verify that N matches their number. */ -# define LIBC_PROBE(name, n, ...) \ - do { \ - _Bool __libc_probe_args[] = { 0, ## __VA_ARGS__ }; \ - _Bool __libc_probe_verify_n[(sizeof __libc_probe_args / sizeof (_Bool)) \ - == n + 1 ? 1 : -1]; \ - (void) __libc_probe_verify_n; \ - } while (0) +#define LIBC_PROBE(name, n, ...) STAP_PROBE##n (__VA_ARGS__) + +#define STAP_PROBE0() +#define STAP_PROBE1(a1) +#define STAP_PROBE2(a1, a2) +#define STAP_PROBE3(a1, a2, a3) +#define STAP_PROBE4(a1, a2, a3, a4) + # else # define LIBC_PROBE(name, n, ...) /* Nothing. */ # endif |