summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* config: Test-compile packages even if pkg-config says they existTavian Barnes2024-04-192-55/+55
| | | | This fixes `make config CC=musl-gcc`, for example.
* config: Add missing copyright headersTavian Barnes2024-04-195-0/+15
| | | | | They're probably too trivial to be copyrightable, but might as well include the SPDX tags for consistency anyway.
* Rename config.h to prelude.hTavian Barnes2024-04-1951-54/+54
|
* tests: Add ../src to the include pathTavian Barnes2024-04-1912-36/+37
|
* config: Use ✔/✘ rather than [y]/[n]Tavian Barnes2024-04-191-2/+2
|
* config: Remove unused ${ARCH} variableTavian Barnes2024-04-191-1/+0
|
* config: Remove explicit -MF from DEPFLAGSTavian Barnes2024-04-191-1/+1
| | | | We use the default name anyway.
* config: Fix ${SAN} on BSD makeTavian Barnes2024-04-191-1/+2
| | | | | | This seems to have hit some BSD make limitation, making it set `SAN := y` unconditionally for some reason. Breaking up the expression fixes it.
* config: Don't build config tests with -o /dev/nullTavian Barnes2024-04-191-2/+8
| | | | | | | | | macOS doesn't like it, complaining that error: cannot parse the debug map for '/dev/null': The file was not recognized as a valid object file clang: error: dsymutil command failed with exit code 1 (use -v to see invocation) Use a temporary file instead.
* config: Delete gen/objs.mkTavian Barnes2024-04-172-10/+2
| | | | | Rather than explicitly listing all these dependencies, we can rely on DEPFLAGS to generate them for us.
* build: Directly generate version.cTavian Barnes2024-04-178-28/+22
|
* build: Dont include ${BUILDDIR} in short messagesTavian Barnes2024-04-177-9/+15
|
* mtab: Arena-allocate struct bfs_mountTavian Barnes2024-04-171-15/+28
|
* build: Add back the default CFLAGSTavian Barnes2024-04-171-6/+20
|
* build: Properly export PKG_CONFIGTavian Barnes2024-04-172-0/+2
|
* build: Make the config scripts POSIX-compliantTavian Barnes2024-04-174-16/+18
|
* build: Support NOLIBS=1Tavian Barnes2024-04-171-1/+1
|
* build: Refactor configurationTavian Barnes2024-04-1613-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 diffTavian Barnes2024-04-161-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 Barnes2024-04-161-2/+2
|
* distcheck: Run all the checksTavian Barnes2024-04-151-1/+1
| | | | Oops.
* build: Be quieter by defaultTavian Barnes2024-04-151-22/+74
|
* build: Make distclean also clean the distcheck dirsTavian Barnes2024-04-151-9/+11
|
* build: Show a nicer error if the user forgets to run make configTavian Barnes2024-04-151-2/+9
|
* build: Remove unneeded USE_* defaultsTavian Barnes2024-04-151-10/+1
|
* build: Fix FreeBSD *SAN buildsTavian Barnes2024-04-111-1/+1
|
* build: Factor out vars.mk generation into a scriptTavian Barnes2024-04-102-34/+83
|
* build: Run pkg-config with all packages at onceTavian Barnes2024-04-108-99/+150
|
* config/cc.sh: Pass all the flags when running the compilerTavian Barnes2024-04-101-4/+8
|
* printf: Implement %ZTavian Barnes2024-04-101-0/+23
|
* Implement -contextTavian Barnes2024-04-107-62/+103
| | | | Closes: https://github.com/tavianator/bfs/issues/27
* fsade: Add libselinux wrappersTavian Barnes2024-04-102-0/+50
|
* build: Add optional libselinux dependencyTavian Barnes2024-04-104-7/+22
|
* docs/BUILDING: Fixes for new build systemTavian Barnes2024-04-101-14/+14
|
* tests: Move newer_link out of posix/Tavian Barnes2024-04-094-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 stepTavian Barnes2024-04-0923-432/+757
|
* ci: Update {Net,Open}BSDTavian Barnes2024-04-091-2/+2
|
* xspawn: Fix $PATH resolution on NetBSD 10Tavian Barnes2024-04-091-2/+2
|
* build: Don't use libattrTavian Barnes2024-04-046-18/+4
| | | | | We only rely on interfaces like listxattr() which are provided by the C library itself.
* config: Allow inlining allocator functionsTavian Barnes2024-03-281-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 testTavian Barnes2024-03-282-0/+13
|
* tests/gnu: Add a -used testTavian Barnes2024-03-282-0/+44
|
* tests/common: Add a -delete error handling testTavian Barnes2024-03-282-0/+17
|
* xspawn: Fix bfs_resolve_late() error reportingTavian Barnes2024-03-272-8/+25
|
* tests/xspawn: Test path resolution failureTavian Barnes2024-03-271-3/+30
|
* tests/xspawn: Also test dup2()Tavian Barnes2024-03-271-1/+3
|
* tests/xspawn: New unit testTavian Barnes2024-03-275-2/+183
|
* tests: New bfs_pcheck() macro to report xstrerror(errno)Tavian Barnes2024-03-273-3/+25
|
* xspawn: Don't use posix_spawnp() on macOSTavian Barnes2024-03-271-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 resolutionTavian Barnes2024-03-271-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.