/* * vlibc-under-test adapter for the bench_vlibc harness (todo 6 bench fix). * * This translation unit is compiled with vlibc's OWN headers (-I ../include) * and is the ONLY TU in the benchmark that may include a vlibc header. The * harness TU (bench_vlibc.c) must never include one: vlibc's self-contained * /// shadow GCC's internal headers, * so any TU that mixes a vlibc header with the host / * fails to compile (glibc's needs __gnuc_va_list, which only the * compiler's internal defines). The adapter isolates the * vlibc-facing call here and exposes it to the host-header harness through * its own declaration. * * Passing through the adapter also drops vlibc_version()'s * __attribute__((const)) at the harness call site: the harness sees a plain * external function, so the timed loop genuinely executes the call instead * of being hoisted out by the optimizer. */ #include const char * bench_vlibc_version(void); const char * bench_vlibc_version(void) { return vlibc_version(); }