BUILD: compiler: systematically set USE_OBSOLETE_LINKER with TCC

TCC silently ignores the weak and section attributes, which ruins the
initcalls. Technically we're exactly in the same situation as with an
obsolete linker. Let's just automatically set the flag if TCC is
detected, this avoids surprises where the program compiles but does
not start.

No backport is needed.
This commit is contained in:
Willy Tarreau 2023-05-24 21:37:06 +02:00
parent eced142aa8
commit b298882acc

View File

@ -127,6 +127,13 @@
#define __maybe_unused __attribute__((unused)) #define __maybe_unused __attribute__((unused))
#endif #endif
/* TCC doesn't support weak attribute, sections etc and needs the more portable
* obsolete linker model instead.
*/
#if defined(__TINYC__) && !defined(USE_OBSOLETE_LINKER)
#define USE_OBSOLETE_LINKER 1
#endif
/* These macros are used to declare a section name for a variable. /* These macros are used to declare a section name for a variable.
* WARNING: keep section names short, as MacOS limits them to 16 characters. * WARNING: keep section names short, as MacOS limits them to 16 characters.
* The _START and _STOP attributes have to be placed after the start and stop * The _START and _STOP attributes have to be placed after the start and stop