From 561478541dbeb92e2c82c2fda7b43461293938e9 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Wed, 19 Nov 2014 16:55:12 -0600 Subject: Fixups for the android/bionic build probes patch. The CFG_* symbols are always defined so if() can use them as compile-time constants, so don't if defined() them. Doing USE_BLAH() around variable definitions opens up the same potential for config-dependent build breaks as #ifdefs do, just make the whole command depend on the symbol for now, factor out the utmpx infrastructure later. The PTY probe was always failing because it used NULL without #including the header that defines it. Substitute 0 instead. --- lib/portability.h | 8 +++++--- scripts/genconfig.sh | 2 +- toys/other/uptime.c | 13 +++++++------ 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/portability.h b/lib/portability.h index 5383efaa..0dace962 100644 --- a/lib/portability.h +++ b/lib/portability.h @@ -188,14 +188,16 @@ ssize_t getline(char **lineptr, size_t *n, FILE *stream); int sethostname(const char *name, size_t len); #endif // "generated/config.h" is included first -#if defined(CFG_TOYBOX_SHADOW) && CFG_TOYBOX_SHADOW +#if CFG_TOYBOX_SHADOW #include #endif -#if defined(CFG_TOYBOX_UTMPX) && CFG_TOYBOX_UTMPX +#if CFG_TOYBOX_UTMPX #include #endif -#if defined(CFG_TOYBOX_PTY) && CFG_TOYBOX_PTY +#if CFG_TOYBOX_PTY #include +#else +pid_t forkpty(int *amaster, char *name, void *termp, void *winp); #endif diff --git a/scripts/genconfig.sh b/scripts/genconfig.sh index e040aea5..e59aa392 100755 --- a/scripts/genconfig.sh +++ b/scripts/genconfig.sh @@ -62,7 +62,7 @@ EOF probesymbol TOYBOX_PTY -c << EOF #include int main(int argc, char *argv[]) { - int master; return forkpty(&master, NULL, NULL, NULL); + int master; return forkpty(&master, 0, 0, 0); } EOF diff --git a/toys/other/uptime.c b/toys/other/uptime.c index f584d9ab..91887dfb 100644 --- a/toys/other/uptime.c +++ b/toys/other/uptime.c @@ -10,6 +10,7 @@ USE_UPTIME(NEWTOY(uptime, NULL, TOYFLAG_USR|TOYFLAG_BIN)) config UPTIME bool "uptime" default y + depends on TOYBOX_UTMPX help usage: uptime @@ -25,8 +26,8 @@ void uptime_main(void) time_t tmptime; struct tm * now; unsigned int days, hours, minutes; - USE_TOYBOX_UTMPX(struct utmpx *entry;) - USE_TOYBOX_UTMPX(int users = 0;) + struct utmpx *entry; + int users = 0; // Obtain the data we need. sysinfo(&info); @@ -34,9 +35,9 @@ void uptime_main(void) now = localtime(&tmptime); // Obtain info about logged on users - USE_TOYBOX_UTMPX(setutxent();) - USE_TOYBOX_UTMPX(while ((entry = getutxent())) if (entry->ut_type == USER_PROCESS) users++;) - USE_TOYBOX_UTMPX(endutxent();) + setutxent(); + while ((entry = getutxent())) if (entry->ut_type == USER_PROCESS) users++; + endutxent(); // Time xprintf(" %02d:%02d:%02d up ", now->tm_hour, now->tm_min, now->tm_sec); @@ -49,7 +50,7 @@ void uptime_main(void) if (days) xprintf("%d day%s, ", days, (days!=1)?"s":""); if (hours) xprintf("%2d:%02d, ", hours, minutes); else printf("%d min, ", minutes); - USE_TOYBOX_UTMPX(printf(" %d user%s, ", users, (users!=1) ? "s" : "");) + printf(" %d user%s, ", users, (users!=1) ? "s" : ""); printf(" load average: %.02f, %.02f, %.02f\n", info.loads[0]/65536.0, info.loads[1]/65536.0, info.loads[2]/65536.0); } -- cgit v1.2.3