Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | build: Make the config scripts POSIX-compliant | Tavian Barnes | 2024-04-17 | 4 | -16/+18 |
| | |||||
* | build: Support NOLIBS=1 | Tavian Barnes | 2024-04-17 | 1 | -1/+1 |
| | |||||
* | build: Refactor configuration | Tavian Barnes | 2024-04-16 | 13 | -464/+454 |
| | | | | | | We now use a recursive make invocation to do the work of `make config`. The new implementation is also compatible with GNU make 3.81 found on macOS. | ||||
* | tests: Quiet diff | Tavian Barnes | 2024-04-16 | 1 | -2/+2 |
| | | | | | | On Solaris/Illumos, `diff` prints "No differences encountered" if the files are the same. Guard it with `cmp -s` so we get no output for passing tests. | ||||
* | build: Center [ CC ] / [ LD ] | Tavian Barnes | 2024-04-16 | 1 | -2/+2 |
| | |||||
* | distcheck: Run all the checks | Tavian Barnes | 2024-04-15 | 1 | -1/+1 |
| | | | | Oops. | ||||
* | build: Be quieter by default | Tavian Barnes | 2024-04-15 | 1 | -22/+74 |
| | |||||
* | build: Make distclean also clean the distcheck dirs | Tavian Barnes | 2024-04-15 | 1 | -9/+11 |
| | |||||
* | build: Show a nicer error if the user forgets to run make config | Tavian Barnes | 2024-04-15 | 1 | -2/+9 |
| | |||||
* | build: Remove unneeded USE_* defaults | Tavian Barnes | 2024-04-15 | 1 | -10/+1 |
| | |||||
* | build: Fix FreeBSD *SAN builds | Tavian Barnes | 2024-04-11 | 1 | -1/+1 |
| | |||||
* | build: Factor out vars.mk generation into a script | Tavian Barnes | 2024-04-10 | 2 | -34/+83 |
| | |||||
* | build: Run pkg-config with all packages at once | Tavian Barnes | 2024-04-10 | 8 | -99/+150 |
| | |||||
* | config/cc.sh: Pass all the flags when running the compiler | Tavian Barnes | 2024-04-10 | 1 | -4/+8 |
| | |||||
* | printf: Implement %Z | Tavian Barnes | 2024-04-10 | 1 | -0/+23 |
| | |||||
* | Implement -context | Tavian Barnes | 2024-04-10 | 7 | -62/+103 |
| | | | | Closes: https://github.com/tavianator/bfs/issues/27 | ||||
* | fsade: Add libselinux wrappers | Tavian Barnes | 2024-04-10 | 2 | -0/+50 |
| | |||||
* | build: Add optional libselinux dependency | Tavian Barnes | 2024-04-10 | 4 | -7/+22 |
| | |||||
* | docs/BUILDING: Fixes for new build system | Tavian Barnes | 2024-04-10 | 1 | -14/+14 |
| | |||||
* | tests: Move newer_link out of posix/ | Tavian Barnes | 2024-04-09 | 4 | -0/+5 |
| | | | | | | | | POSIX has clarified that it's unspecified whether -newer uses times from stat() or lstat(), because implementations vary. It does specify that it must fall back to lstat() for broken links, so test that. Link: https://austingroupbugs.net/view.php?id=1776 | ||||
* | build: Add a separate configuration step | Tavian Barnes | 2024-04-09 | 23 | -432/+757 |
| | |||||
* | ci: Update {Net,Open}BSD | Tavian Barnes | 2024-04-09 | 1 | -2/+2 |
| | |||||
* | xspawn: Fix $PATH resolution on NetBSD 10 | Tavian Barnes | 2024-04-09 | 1 | -2/+2 |
| | |||||
* | build: Don't use libattr | Tavian Barnes | 2024-04-04 | 6 | -18/+4 |
| | | | | | We only rely on interfaces like listxattr() which are provided by the C library itself. | ||||
* | config: Allow inlining allocator functions | Tavian Barnes | 2024-03-28 | 1 | -1/+1 |
| | | | | | GCC disables inlining on custom allocator/deallocator pairs, so that they can be matched up accurately in stack traces. | ||||
* | tests/bsd: Add a -sparse test | Tavian Barnes | 2024-03-28 | 2 | -0/+13 |
| | |||||
* | tests/gnu: Add a -used test | Tavian Barnes | 2024-03-28 | 2 | -0/+44 |
| | |||||
* | tests/common: Add a -delete error handling test | Tavian Barnes | 2024-03-28 | 2 | -0/+17 |
| | |||||
* | xspawn: Fix bfs_resolve_late() error reporting | Tavian Barnes | 2024-03-27 | 2 | -8/+25 |
| | |||||
* | tests/xspawn: Test path resolution failure | Tavian Barnes | 2024-03-27 | 1 | -3/+30 |
| | |||||
* | tests/xspawn: Also test dup2() | Tavian Barnes | 2024-03-27 | 1 | -1/+3 |
| | |||||
* | tests/xspawn: New unit test | Tavian Barnes | 2024-03-27 | 5 | -2/+183 |
| | |||||
* | tests: New bfs_pcheck() macro to report xstrerror(errno) | Tavian Barnes | 2024-03-27 | 3 | -3/+25 |
| | |||||
* | xspawn: Don't use posix_spawnp() on macOS | Tavian Barnes | 2024-03-27 | 1 | -1/+33 |
| | | | | | | | | On macOS, posix_spawnp() resolves the executable against the $PATH *before* the file_actions are applied, contrary to the upcoming POSIX wording [1] for posix_spawn_file_actions_addfchdir(). [1]: https://www.austingroupbugs.net/view.php?id=1208#c4830 | ||||
* | xspawn: Refactor $PATH resolution | Tavian Barnes | 2024-03-27 | 1 | -81/+240 |
| | | | | | | | | | Technically, we should be resolving executables *after* applying the file actions. It's only safe to resolve earlier if $PATH contains no relative entries, or if there are no fchdir() actions. The new implementation resolves as early as possible, deferring to posix_spawnp() if necessary for correctness. | ||||
* | xspawn: Implement bfs_spawn_addopen() | Tavian Barnes | 2024-03-27 | 2 | -3/+67 |
| | |||||
* | bfstd: Escape ASCII tildes | Tavian Barnes | 2024-03-26 | 2 | -1/+3 |
| | | | | | | | | The POSIX spec [1] lists some characters that may need to be escaped. Unfortunately, the document uses ˜ (U+02DC SMALL TILDE) instead of ~ (U+007E TILDE), and I copy-pasted from it. [1]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02 | ||||
* | xtime: Don't update tm if xtimegm() overflows | Tavian Barnes | 2024-03-26 | 2 | -41/+55 |
| | |||||
* | completions: Add -j | Tavian Barnes | 2024-03-25 | 3 | -4/+7 |
| | |||||
* | trie: Calculate representative indices branchlessly | Tavian Barnes | 2024-03-23 | 1 | -3/+4 |
| | |||||
* | bftw: Use a signed integer for dir_limit | Tavian Barnes | 2024-03-22 | 1 | -25/+8 |
| | |||||
* | Fix some -Wpedantic warnings | Tavian Barnes | 2024-03-22 | 2 | -10/+8 |
| | |||||
* | bfstd: Add an ASCII fast path to xstrwidth() | Tavian Barnes | 2024-03-21 | 1 | -1/+10 |
| | |||||
* | bfstd: New asciilen() function | Tavian Barnes | 2024-03-21 | 3 | -25/+73 |
| | |||||
* | bit: Check __BYTE_ORDER__ for the native endian | Tavian Barnes | 2024-03-21 | 2 | -2/+15 |
| | | | | __ORDER_NATIVE_ENDIAN__ is not a thing. | ||||
* | bfstd: Check that wcwidth() is positive | Tavian Barnes | 2024-03-20 | 2 | -2/+9 |
| | | | | | wcwidth() returns -1 for non-printable characters, but terminals typically don't print anything for them, so treat them as 0. | ||||
* | ioq: Fix some allocation failure paths | Tavian Barnes | 2024-03-20 | 1 | -2/+4 |
| | |||||
* | Implement -limit N | Tavian Barnes | 2024-03-20 | 15 | -3/+103 |
| | | | | Closes: https://github.com/tavianator/bfs/issues/133 | ||||
* | ci: Work around https://github.com/actions/runner-images/issues/9491 | Tavian Barnes | 2024-03-19 | 1 | -0/+2 |
| | | | | | | Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113430 Link: https://github.com/llvm/llvm-project/issues/78354 Link: https://zolutal.github.io/aslrnt/ | ||||
* | config: Don't mix [[attr]] and __attribute__((attr)) | Tavian Barnes | 2024-03-19 | 1 | -6/+2 |
| | | | | | GCC and Clang don't support combining the two attribute syntaxes in arbitrary order. For now, just use the GNU style. |