Age | Commit message (Collapse) | Author |
|
I think this was the preferred option for this code that turns out
to be very different on Linux vs BSD. I don't yet have a BSD
implementation, and I'm not likely to have chance to work on one
in the near future, so this just #ifdefs it out for macOS right
now.
With this (and a suitably minimal .config), toybox builds for macOS
out of the box.
|
|
I realized (after being questioned about my motivation) that I hadn't
added a test for the -u behavior. Adding the missing test confirmed the
usual "if there isn't a test, the code is broken", but now I think I
actually understand how we're supposed to choose between DIR, $TMPDIR,
and /tmp. I've added more tests to back this up, and rewritten the code
one more time so that we pass all the tests.
|
|
|
|
|
|
|
|
Old versions of glibc had warn_unused_result on mktemp(3), despite it
always returning its argument. Still, we can silence the warning and
save a line, so...
|
|
|
|
|
|
|
|
|
|
These were added in macOS 10.7 in 2011-07, so the seven year rule applies...
|
|
Don't hard-code Linux's buffer size.
|
|
|
|
|
|
|
|
Even if we don't build ps, we can't have a Linux-only struct in GLOBALS.
The obvious alternative to this would be to have a fake struct sysinfo
in lib/portability.h. Since having a real macOS replacement for
sysinfo(2) seems unlikely at this point, I went this route instead.
|
|
I've also flipped the `#if` because `#ifdef` feels more naturally readable
than #ifndef when there's also a `#else`.
(I've preserved the oddness of the clearenv declaration being here,
because there isn't currently a more suitable `#ifdef __APPLE__` to move
it too. Later...)
|
|
|
|
|
|
The only part of this I actually need for macOS is to remove __APPLE__
from the getdelim/getline workaround, but if we're following the usual
"seven year rule", glibc 2.10 is dead to us anyway, and we should just
remove all of this.
|
|
The new tests pass on the host (coreutils 8.28) and with toybox after
this patch is applied.
|
|
|
|
bionic, glibc, macOS, and musl all have strcasestr
(see http://man7.org/linux/man-pages/man3/strstr.3.html).
macOS (via BSD) has a strnstr that does what strnstr sounds like it
should do by analogy with strnlen and strncpy.
So we at least need to rename strnstr, but it probably makes more sense
just to switch to strcasestr instead.
|
|
The macOS libc headers use `__attribute__((noreturn))` rather than
`__attribute__((__noreturn__))`, so toybox's `noreturn` macro trips them
up. Since we already have a variety of uses of `__attribute__` that
aren't guarded in this way, let's do the same here.
|
|
GNU sed supports -E, -r, and --regexp-extended. BSD sed only supports
-r.
|
|
Used by OTA package scripts in AOSP, and quite widely inside Google.
I've also added --lines because it seems crazy to support one and not
the other, and --lines is also widly used inside Google too.
|
|
There are a bunch of if (!memcmp(s+28,...)) lines,
let's make them "else if"
|
|
|
|
|
|
|
|
|
|
|
|
default in Yocto 2.6 Thud release" and identified several error_exit() and
friends that should use the _raw versions.
|
|
|
|
At least the AOSP build doesn't try to _set_ the hostname...
|
|
I actually only need --quiet to build AOSP, but it seems weird to add
--quiet as a synonym for -s but _not_ add the more obviously related
--silent.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AOSP doesn't need -a specifically, but since it's needed for -s we may
as well accept it too.
|
|
I assume it's actually meaningful on BSD/macOS and makes them behave
like us, but I don't have access to a Mac to test that theory.
|
|
Both occur in AOSP. (Until I looked, I had no idea there were _two_
long versions of -p...)
|
|
|
|
|
|
genbuild() is a bunch of echo statements, and with enough parallelism piping
its output to "head" can close the pipe before all the echo statements have
run, then they complain about writing to a closed pipe. (We're intentionally
discarding the output, it's not an error, so...)
|
|
|
|
|