Files
velzieandClaude Opus 5.5 aba4f61b37 gexcc: what Debian's sources expect of GCC on glibc
- `.symver impl, name@@V`: the default version's name becomes an alias
  of impl (C), as programs link to it (fuse's fuse_parse_cmdline,
  lksctp's sctp_connectx); older versions' names are still left out.
- A shared library may leave symbols to the program or another library,
  bound at load (libfl's main calls yylex), as ld -shared does; -z defs
  or --no-undefined still asks for every one defined.
- features.h over musl's: _GNU_SOURCE gives the LFS64 names (pread64,
  off64_t), as glibc's does (libpciaccess).
- Warnings, not errors, where GCC warns and clang errs: a size_t * for a
  uint32_t * (size_t is unsigned long only on wasm32; kmod), `register`
  in C++17 (libGLU), an unused static inline under -Werror (keyutils).
- -v on a link is verbose, not a query: CMake's compiler ABI check
  linked nothing and every CMAKE_SIZEOF_VOID_P was empty (libjpeg-turbo).

driver.sh checks each.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_40f26e8988a74ea098d8bc80ff68287c
2026-10-21 17:02:34 -04:00

10 lines
422 B
C

/* gexcc: features.h over musl's. glibc's _GNU_SOURCE turns on the LFS64
* names (pread64, off64_t, stat64), and programs written on glibc call them
* after defining _GNU_SOURCE alone; musl gives them only for an explicit
* _LARGEFILE64_SOURCE, as plain aliases (its off_t is 64-bit already). */
#include_next <features.h>
#if defined(_GNU_SOURCE) && !defined(_LARGEFILE64_SOURCE)
#define _LARGEFILE64_SOURCE 1
#endif