aboutsummaryrefslogtreecommitdiff
path: root/lib/portability.h
AgeCommit message (Collapse)Author
2019-01-08FreeBSD doesn't #define IUTF8 in termios.h, add workaround to portability.h.Rob Landley
2019-01-08Ed Maste says freebsd hasn't got sys/xattr.h, so move it to portability.h.Rob Landley
2019-01-08Add FreeBSD endianness supportEd Maste
2018-12-07macOS: fix code using POSIX 2008 `st_[acm]tim` fields.Elliott Hughes
Hopefully they'll fix this properly at some point, but until then...
2018-12-07Forgot to check the portability.? changes. (Oops.)Rob Landley
2018-11-30macOS: work around header idiosyncracies.Elliott Hughes
2018-11-30macOS: fix endian macros for macOS.Elliott Hughes
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...)
2018-11-29Remove an extra #include <string.h>Rob Landley
2018-11-29macOS: remove glibc 2.10 workarounds.Elliott Hughes
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.
2018-11-28macOS: there's no <features.h> on the Mac.Elliott Hughes
2018-11-28macOS: replace local strnstr with strcasestr.Elliott Hughes
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.
2018-11-28macOS: noreturn.Elliott Hughes
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.
2018-10-20The static NDK fix broke the dynamic NDK build.Rob Landley
2018-10-10Fix static Android NDK build.Rob Landley
2018-10-07Fix non-android ps build.Rob Landley
2018-10-07libcutils isn't in the NDK.Elliott Hughes
Bug: https://github.com/landley/toybox/issues/43
2018-10-04Make it possible to build the AOSP .config against glibc.Elliott Hughes
It's possible that we should just pull setprop back out of toybox to live with getprop in system/core/, but this lets us build the same toybox configuration for device and host in AOSP. (Longer term we'd like to use host bionic, but if we enable this we can start experimenting on the tobyox side before the bionic side is finished.)
2018-09-15Fix glibc build after 013876f067a11ebfcf47789921b376e7bf3bf5b8.Elliott Hughes
/usr/include/unistd.h:626:15: error: conflicting types for 'confstr'
2018-09-08Tweaks to make building with Android NDK's llvm happier.Rob Landley
2018-07-04Add xgetrandom() with probe for new system call (else open/read /dev/{,u}random)Rob Landley
2018-01-01Cleanup logger.c, and move the facilitynames/prioritynames SYSLOG_NAMESRob Landley
stuff syslog.h does into lib.c and portability.h
2017-05-21Cleaup chrtRob Landley
2017-05-08Remove old uClibc compatibility glue. It's been 5 years since the last release.Rob Landley
See http://lists.busybox.net/pipermail/buildroot/2016-December/180102.html for a full post-mortem on the project.
2017-04-30Android NDK doesn't have cutils/sched_policy.h so add a probed config symbol.Rob Landley
2017-02-20Fix dmesg -c and -C.Elliott Hughes
I never use these, so I didn't notice I'd broken them until someone who does bringup complained. The "one weird trick" with SEEK_DATA is documented at the URL we already point to. SEEK_DATA was added in Linux 3.1 (2011) and isn't available in glibc 2.19 (2014), so I've added that to "portability.h" for the benefit of Ubuntu 14.04. Also make -c and -C mutually exclusive. Also fix some of the formatting I introduced earlier. (A clang-format file would help prevent these mistakes...)
2016-05-04Simplify ps android scheduling policy fetch slightly.Rob Landley
2016-04-30Add a ps "PCY" field for Android scheduling policy.Elliott Hughes
2016-04-08Redefining basename_r to mean something random seems popular (bionic and freebsdRob Landley
both did it) so use getbasename instead.
2016-03-01The last-ever release of uClibc didn't #define MS_RELATIME.Rob Landley
2016-02-18RLIMIT_RTTIME was added to the kernel in 2008, you can't expect uClibc to ↵Rob Landley
have noticed yet.
2016-02-09Add ulimit.Rob Landley
This isn't a shell builtin, it uses prlimit to target any pid (without -P it defaults to $PPID, so acts like historical ulimit by default).
2016-01-05Add error_msg_raw() and friends, replace error_msg("%s", s) uses, enable formatRob Landley
checking, and fix up format checking complaints. Added out(type, value) function to stat to avoid a zillion printf typecasts.
2015-08-30Add portability.h glue to let uptime build without TOYBOX_UTMPX.Rob Landley
2015-07-11Fix 32-bit bionic toybox build.Elliott Hughes
https://android-review.googlesource.com/159035/
2015-05-18More ls -Z upgrading. Move TOYBOX_SELINUX and TOYBOX_SMACK support fromRob Landley
portability.h to new lib/lsm.h. Update ls.c to use it. Fix "ls . toys" (two directories when one is . or ..), which was filtering out the . as something we shouldn't recurse into even though it was explicitly listed on the command line. For some reason "ls -Z . toys" is still segfaulting though (but "ls -Z ." isn't), need to figure out why...
2015-05-08Move not-curses code into interstingtimes.cRob Landley
2015-05-03Move a prototype to the start of portability.h (suggested by Elliott Hughes)Rob Landley
2015-05-01Portability bits for the recent ls smack changes.Rob Landley
2015-04-17Link against libattr and libsmack.Xavier Roche
2015-04-15Put SELINUX in a a menu, and add config option for SMACK.Rob Landley
2015-03-01Only switch on printf format warnings for error_exit() and friends when ↵Rob Landley
TOYBOX_DEBUG enabled. One again gcc manages to be incompetent about producing warnings. For example, in bzcat we error_exit() with a message that's an error code fed into an array of string constants, and apparently dereferencing an array of string literals doesn't give you a string literal according to -Wformat-security. Not breaking the code to humor the compiler here, the compiler is wrong.
2015-03-01let the compiler check format stringsElliott Hughes
i'll be AFK for a week, so here's the patch i've been using this evening to find other format string mistakes. BSD uses __printflike and takes two arguments instead of hard-coding (1,2), but i figured that as long as you don't need the generality you'd prefer not to have it. and it's easy enough to retrofit if we ever do have a formatting function that takes other arguments.
2015-02-06Alright, the Android guys agree with the musl guys: ↵Rob Landley
faccessat(AT_SYMLINK_NOFOLLOW) is not supported.
2015-01-18Lift the basename/libgen.h shenanigans back out of portability.c and make it ↵Rob Landley
a static inline in portability.h, and prototype dirname() while we're at it.
2015-01-18fix non-glibc basename(3) usageElliott Hughes
I considered a #else on the big #ifdef __GLIBC__ above, but that seemed harder to follow.
2015-01-16Move pty.h back to toys.h (under LSB 4.1 headers).Rob Landley
2015-01-16AOSP master has <pty.h> and builds netcat/nc.Elliott Hughes
2015-01-16id.c #ifdefectomy. (ifdefs belong in headers, not in C code.)Rob Landley
2015-01-16This patch adds a TOYBOX_SELINUX configuration option to control bothElliott Hughes
the SELinux commands (such as chcon) and the SELinux-specific options to regular commands (such as ls -Z). This lets us #include <selinux/selinux.h> in portability.h. I've also fixed chcon to insist on being given the a context argument. This patch also adds -Z to id and fixes id's regular output (-G should be separated by spaces, non-G output should be separated by commas, and you don't want a double comma where the egid is omitted from the list of groups).
2014-12-31When you include the posix header libgen.h, glibc #defines basename to some ↵Rob Landley
random other symbol name (because gnu) and this screws up nontrivial macro expansions of NEWTOY(basename), so work around it in portability.h.