From ccb729df47188874401c655dda8d47b55cddd3b7 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 19 Aug 2015 00:50:17 +0000 Subject: Fix -Wundef warnings in login/tst-utmp.c. To remove -Wno-error=undef, we need to fix the remaining cases where there are -Wundef warnings in the testsuite. One of those places is in login/tst-utmp.c. When included from tst-utmpx.c, is included instead of , meaning the _HAVE_UT_* macros are not defined. The test is prepared for them not being defined, in that all the relevant conditionals also include "defined UTMPX". However, they test the _HAVE_UT_* macros first, so resulting in -Wundef warnings. This patch does the minimal fix of swapping the || operands. This is logically correct - avoiding checking a macro we know will not be defined in the case where it is not defined. It won't fix such warnings for the case where the toplevel bits/utmp.h is used and most _HAVE_UT_* aren't defined at all even when is included, but that case doesn't apply to any current glibc configuration. Fixing it would also be tricky in that, while glibc itself consistently uses _HAVE_UT_* in ways that would work with 0 instead of undefined, external packages that use the macros expect defined / undefined instead of 1 / 0 (codesearch.debian.net shows uses by util-linux, python-utmp, libsys-utmp-perl). Tested for x86_64. * login/tst-utmp.c [_HAVE_UT_TYPE || defined UTMPX]: Change conditional to [defined UTMPX || _HAVE_UT_TYPE]. [_HAVE_UT_TV || defined UTMPX]: Change conditional to [defined UTMPX || _HAVE_UT_TV]. [_HAVE_UT_TV - 0 || defined UTMPX]: Change conditional to [defined UTMPX || _HAVE_UT_TV - 0]. --- ChangeLog | 9 +++++++++ login/tst-utmp.c | 8 ++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0daf15eeb9..da9a3e0851 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2015-08-19 Joseph Myers + + * login/tst-utmp.c [_HAVE_UT_TYPE || defined UTMPX]: Change + conditional to [defined UTMPX || _HAVE_UT_TYPE]. + [_HAVE_UT_TV || defined UTMPX]: Change conditional to [defined + UTMPX || _HAVE_UT_TV]. + [_HAVE_UT_TV - 0 || defined UTMPX]: Change conditional to [defined + UTMPX || _HAVE_UT_TV - 0]. + 2015-08-18 Joseph Myers * sysdeps/mips/dl-machine.h [__mips_isa_rev < 6]: Change diff --git a/login/tst-utmp.c b/login/tst-utmp.c index 2f2da908ed..a69a556de5 100644 --- a/login/tst-utmp.c +++ b/login/tst-utmp.c @@ -39,7 +39,7 @@ #endif -#if _HAVE_UT_TYPE || defined UTMPX +#if defined UTMPX || _HAVE_UT_TYPE /* Prototype for our test function. */ static int do_test (int argc, char *argv[]); @@ -75,7 +75,7 @@ do_prepare (int argc, char *argv[]) struct utmp entry[] = { -#if _HAVE_UT_TV || defined UTMPX +#if defined UTMPX || _HAVE_UT_TV #define UT(a) .ut_tv = { .tv_sec = (a)} #else #define UT(a) .ut_time = (a) @@ -167,7 +167,7 @@ simulate_login (const char *line, const char *user) entry[n].ut_pid = (entry_pid += 27); entry[n].ut_type = USER_PROCESS; strncpy (entry[n].ut_user, user, sizeof (entry[n].ut_user)); -#if _HAVE_UT_TV - 0 || defined UTMPX +#if defined UTMPX || _HAVE_UT_TV - 0 entry[n].ut_tv.tv_sec = (entry_time += 1000); #else entry[n].ut_time = (entry_time += 1000); @@ -201,7 +201,7 @@ simulate_logout (const char *line) { entry[n].ut_type = DEAD_PROCESS; strncpy (entry[n].ut_user, "", sizeof (entry[n].ut_user)); -#if _HAVE_UT_TV - 0 || defined UTMPX +#if defined UTMPX || _HAVE_UT_TV - 0 entry[n].ut_tv.tv_sec = (entry_time += 1000); #else entry[n].ut_time = (entry_time += 1000); -- cgit 1.4.1