diff options
author | Rob Landley <rob@landley.net> | 2014-11-19 16:55:12 -0600 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2014-11-19 16:55:12 -0600 |
commit | 561478541dbeb92e2c82c2fda7b43461293938e9 (patch) | |
tree | 6371132e393c80fc5c26655dab9a9961f9d96412 | |
parent | 46ddf0e34b03f7711a9c80f7a70dc8cbf732f782 (diff) | |
download | toybox-561478541dbeb92e2c82c2fda7b43461293938e9.tar.gz |
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.
-rw-r--r-- | lib/portability.h | 8 | ||||
-rwxr-xr-x | scripts/genconfig.sh | 2 | ||||
-rw-r--r-- | 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 <shadow.h> #endif -#if defined(CFG_TOYBOX_UTMPX) && CFG_TOYBOX_UTMPX +#if CFG_TOYBOX_UTMPX #include <utmpx.h> #endif -#if defined(CFG_TOYBOX_PTY) && CFG_TOYBOX_PTY +#if CFG_TOYBOX_PTY #include <pty.h> +#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 <pty.h> 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); } |