summaryrefslogtreecommitdiffstats
path: root/build
Commit message (Collapse)AuthorAgeFilesLines
* thread: New thread_setname() functionTavian Barnes2024-11-273-0/+20
|
* build: Check for -pthread before using itTavian Barnes2024-11-232-2/+12
| | | | | | QNX's qcc, for example, will complain that cc1: error: command-line option '-pthread' is valid for the driver but not for C
* ioq: Check for io_uring_register_iowq_max_workers() before using itTavian Barnes2024-11-112-0/+12
| | | | | | | This allows us to build against liburing as old as version 2.0, which is apparently shipped by the latest Amazon Linux distribution. Fixes: https://github.com/tavianator/bfs/issues/147
* alloc: Don't require size % align == 0Tavian Barnes2024-11-022-9/+0
| | | | | | | | | Allowing unaligned sizes will allow us to allocate aligned slabs with additional metadata in the tail without ballooning the allocation size for large alignments. Link: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2244.htm#dr_460 Link: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2072.htm
* Release 4.0.44.0.4Tavian Barnes2024-10-311-1/+1
|
* Release 4.0.34.0.3Tavian Barnes2024-10-221-1/+1
|
* xtime: Add a wrapper for timer_create()/setitimer()Tavian Barnes2024-10-102-0/+10
| | | | | | setitimer() is obsolescent in POSIX 2008 and removed from POSIX 2024. However, at least macOS doesn't implement the new timer_create() API, so we still need the setitimer() fallback.
* build: Add -Wundef-prefix=BFS_Tavian Barnes2024-10-012-0/+10
|
* Fix spellingTavian Barnes2024-09-231-1/+1
|
* build/prelude: Remove vestigal OBJS definitionTavian Barnes2024-09-181-11/+0
|
* Release 4.0.24.0.2Tavian Barnes2024-09-171-1/+1
|
* build: Remove gen/deps.mkTavian Barnes2024-09-144-66/+0
| | | | | | | | | | | | | | | | Since commit 3552b79 ("build/flags: Infrastructure to detect compiler flag support"), this file only listed a bunch of lines like -include obj/src/alloc.d -include obj/src/bar.d ... We can do that just as well from the main Makefile, and in one line too: -include ${OBJS:.o=.d} This lets us pull the list of all objects out of build/prelude.mk and put it closer to where those objects are actually used.
* build/flags: Use auto-detection for all warning flagsTavian Barnes2024-09-059-12/+73
|
* build/embed.sh: Simplify a sed expressionTavian Barnes2024-09-031-1/+1
|
* build: Move feature test macros to prelude.hTavian Barnes2024-08-281-13/+1
| | | | | | This replaces the explicit CPPFLAGS list in flags.mk with just `-include src/prelude.h`, shortening our compiler command lines and allowing them to be easily documented.
* build: Move tsan/target_clones conflict to the preludeTavian Barnes2024-08-281-4/+0
|
* build: Move per-file flag support into cc.shTavian Barnes2024-08-283-11/+33
|
* build: Move the "compiler works at all" test earlierTavian Barnes2024-08-283-12/+19
|
* build: Include the auto-flag build logs in config.logTavian Barnes2024-08-282-1/+2
|
* build/flags-if: Fix sed expression on BSDTavian Barnes2024-08-281-1/+1
| | | | | | | | `p` needs a terminating semicolon; otherwise we get sed: 1: "\|^///|{s|^/// ||; s|[^ ...": extra characters at the end of p command Fixes: 3552b79 ("build/flags: Infrastructure to detect compiler flag support")
* build: Allow ./configure --version=X.Y.ZTavian Barnes2024-08-281-0/+1
|
* build/version.sh: Move version calculation hereTavian Barnes2024-08-281-0/+18
|
* bar: Use tcgetwinsize() from POSIX 2024 if availableTavian Barnes2024-07-282-0/+10
|
* build: De-duplicate conditionally-supported flagsTavian Barnes2024-07-281-6/+14
|
* xspawn: Use _Fork() if availableTavian Barnes2024-07-274-0/+18
| | | | | | | This completes the workaround for bfs_spawn() hanging on FreeBSD with ASan enabled. Link: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280318
* build/flags: Add -Wmissing-variable-declarations if supportedTavian Barnes2024-07-272-1/+11
|
* build/flags: Infrastructure to detect compiler flag supportTavian Barnes2024-07-274-5/+44
| | | | Use it to detect -MD -MP support.
* build/define-if.sh: Remove unneeded codeTavian Barnes2024-07-271-3/+1
|
* build: Save cc.sh build products to gen/Tavian Barnes2024-06-214-13/+8
|
* build: Generate config.mk after config.hTavian Barnes2024-06-212-5/+8
| | | | That way if ./configure fails, make will complain about it directly.
* configure: Bail out if CC doesn't work at allTavian Barnes2024-06-181-2/+10
|
* build: Rename CONFIG to CONFFLAGSTavian Barnes2024-06-181-1/+1
|
* build: Include CC in bfs --version outputTavian Barnes2024-06-131-0/+1
|
* build: Use exec "$@" rather than just "$@"Tavian Barnes2024-06-111-1/+1
| | | | This avoids extra error reporting from set -e.
* Revert "build: Add -Wmissing-variable-declarations"Tavian Barnes2024-06-081-1/+0
| | | | | | Turns out that flag was only added in GCC 14. This reverts commit 7cddd64b3131812b82feffe2deb311bf6ab9a262.
* build: Add -Wmissing-variable-declarationsTavian Barnes2024-06-081-0/+1
|
* Embed more configuration info in bfs --versionTavian Barnes2024-06-083-1/+18
|
* atomic: Fix RISC-V build with GCC < 14Tavian Barnes2024-06-062-0/+8
| | | | | | | | | | | | Prior to GCC 14.1, the __builtin_riscv_pause() can cause an error if the appropriate extension is not enabled in -march: /tmp/ccR1L1lA.s: Assembler messages: /tmp/ccR1L1lA.s:670: Error: unrecognized opcode `pause', extension `zihintpause' required Link: https://gcc.gnu.org/pipermail/gcc-patches/2023-August/626748.html Link: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=c2d04dd659c499d8df19f68d0602ad4c7d7065c2 Link: https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=riscv64&ver=3.3.1-1&stamp=1717488400&raw=0
* list: New SLIST_SPLICE() macroTavian Barnes2024-05-311-0/+1
|
* configure: Color the checkmarksTavian Barnes2024-05-241-2/+12
|
* build/deps: Fix _CPPFLAGS variable nameTavian Barnes2024-05-241-1/+1
|
* configure: Use --with/--without for librariesTavian Barnes2024-05-249-19/+15
|
* build: Simplify flags.mkTavian Barnes2024-05-211-64/+43
|
* build: Fix ubsan CFLAGS typoTavian Barnes2024-05-211-1/+1
|
* build: Allow flags.mk to override command line variablesTavian Barnes2024-05-213-29/+29
| | | | | | | | Previously, during something like ./configure LDFLAGS=..., any additions to LDFLAGS from the generated makefiles were ignored. I had thought that sub-make invocations would allow those variables to be overridden, but that is not the behaviour of make. So instead, set _LDFLAGS etc. in the generated files so that they don't conflict.
* prelude: Remove max_align_t polyfillTavian Barnes2024-05-202-9/+0
| | | | | | This has been fixed in Cosmopolitan. Link: https://github.com/jart/cosmopolitan/issues/944
* build: Remove unused configure testTavian Barnes2024-05-191-13/+0
|
* dir: Add support for posix_getdents()Tavian Barnes2024-05-173-0/+23
| | | | | | | | This will be added to the next POSIX standard, and is already implemented in musl. Link: https://www.austingroupbugs.net/view.php?id=697 Link: https://git.musl-libc.org/cgit/musl/commit/?id=1b0d48517f816e98f19111df82f32bfc1608ecec
* build: Add missing SPDX headersTavian Barnes2024-05-173-0/+9
|
* stat: Support __st_birthtim on OpenBSDTavian Barnes2024-05-162-0/+10
|