From eced142aa884d853bc72dac449cdc1ae5fc94e47 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Wed, 24 May 2023 21:31:21 +0200 Subject: [PATCH] BUILD: ist: use the literal declaration for ist_lc/ist_uc under TCC TCC doesn't knoow about __attribute__((weak)), it silently ignores it. We could add a "static" modifier there in this case but we already have an alternate portable mode that is based on a slightly larger literal for obsolete linkers (and non-ELF systems) which choke on weak. Let's just add the test for tcc there and use it in this case. No backport is needed. --- include/import/ist.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/import/ist.h b/include/import/ist.h index 1ac23c815..50df199f1 100644 --- a/include/import/ist.h +++ b/include/import/ist.h @@ -109,9 +109,10 @@ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, \ } -#ifdef USE_OBSOLETE_LINKER +#if defined(USE_OBSOLETE_LINKER) || defined(__TINYC__) /* some old linkers and some non-ELF platforms have issues with the weak - * attribute so we turn these arrays to literals there. + * attribute so we turn these arrays to literals there. TCC silently ignores + * it so we switch to literal as well. */ #define ist_lc ((const unsigned char[256])_IST_LC) #define ist_uc ((const unsigned char[256])_IST_UC)