Files
vlibc/.gitignore
T
huntedbytheirsandSisyphus 53c8531eab bench(string): add bench_string.c vs glibc/musl
System-headers-only harness timing the five L1 string functions
(strlen, strcmp, memcpy, memmove, memset) at 8- and 64-byte inputs.
Calls go through volatile function pointers to defeat builtin
substitution and LICM hoisting; correctness self-asserts route through
the same pointers. Prints FUNC@SIZE ns/call lines.

bench_string uses empty per-target CPPFLAGS (no -I include) so it links
against whichever libc --with-libc= selects; the bench target runs it
always and bench_vlibc only under BENCH_LINK_VLIBC. Both programs
relink when config.status changes, so a reconfigure cannot silently
reuse a binary from the previous libc.

Measured vs glibc 2.44 (median of 3 runs): mem* 1.0-3.3x,
strlen/strcmp 3.2-3.9x — word-at-a-time vs AVX2, all sane.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-08-31 21:28:04 -04:00

110 lines
1.5 KiB
Plaintext

# ---> C
# Prerequisites
*.d
# Object files
*.o
*.ko
*.obj
*.elf
# Linker output
*.ilk
*.map
*.exp
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
# Debug files
*.dSYM/
*.su
*.idb
*.pdb
# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf
# Autotools backup files (autoreconf/autoheader).
*~
*.orig
*.rej
# ---> vlibc / Autotools
# Generated build system. `configure` and `autogen.sh` are tracked (layouts/C.md);
# the Makefiles and other artifacts produced from configure.ac / Makefile.am are not.
Makefile
Makefile.in
.dirstamp
/aclocal.m4
/autom4te.cache/
/config.h
/config.h.in
/config.log
/config.status
/config.guess
/config.sub
/install-sh
/missing
/depcomp
/ltmain.sh
/libtool
/libtool.m4
/ltoptions.m4
/ltsugar.m4
/ltversion.m4
/lt~obsolete.m4
/stamp-h1
/build-aux/
/m4/
# Generated feature header (from include/vlibc/features.h.in); the template is tracked.
/include/vlibc/features.h
# Libtool build directories and artifacts.
.deps/
.libs/
*.lo
# Build outputs (bin/{release,debug}); keep the directory placeholders.
/bin/release/*
!/bin/release/.gitkeep
/bin/debug/*
!/bin/debug/.gitkeep
# Generated compiler drivers (from tools/*.in); the templates are tracked.
/tools/vlibc-gcc
/tools/vlibc-clang
# Built benchmark harnesses (benchmarks/bench_* are generated from bench_*.c).
/benchmarks/bench_vlibc
/benchmarks/bench_string