[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Circular header dependency between ltm.h and lstate.h
- From: Roger Leigh <rleigh@...>
- Date: Sat, 29 Jul 2023 16:03:03 +0000
On FreeBSD:
[42/54] /usr/bin/cc -I/tmp/tmp.5Aqibooi/src -I/tmp/tmp.5Aqibooi/cmake-build-debug-freebsd-c-shared/src -g -fcolor-diagnostics -MD -MT src/CMakeFiles/lua_library-headers.dir/__/test/lua_library/headers/ltm-1.c.o -MF src/CMakeFiles/lua_library-headers.dir/__/test/lua_library/headers/ltm-1.c.o.d -o src/CMakeFiles/lua_library-headers.dir/__/test/lua_library/headers/ltm-1.c.o -c /tmp/tmp.5Aqibooi/cmake-build-debug-freebsd-c-shared/test/lua_library/headers/ltm-1.c
FAILED: src/CMakeFiles/lua_library-headers.dir/__/test/lua_library/headers/ltm-1.c.o
/usr/bin/cc -I/tmp/tmp.5Aqibooi/src -I/tmp/tmp.5Aqibooi/cmake-build-debug-freebsd-c-shared/src -g -fcolor-diagnostics -MD -MT src/CMakeFiles/lua_library-headers.dir/__/test/lua_library/headers/ltm-1.c.o -MF src/CMakeFiles/lua_library-headers.dir/__/test/lua_library/headers/ltm-1.c.o.d -o src/CMakeFiles/lua_library-headers.dir/__/test/lua_library/headers/ltm-1.c.o -c /tmp/tmp.5Aqibooi/cmake-build-debug-freebsd-c-shared/test/lua_library/headers/ltm-1.c
In file included from /tmp/tmp.5Aqibooi/cmake-build-debug-freebsd-c-shared/test/lua_library/headers/ltm-1.c:3:
In file included from /tmp/tmp.5Aqibooi/src/ltm.h:12:
/tmp/tmp.5Aqibooi/src/lstate.h:298:19: error: use of undeclared identifier 'TM_N'
TString *tmname[TM_N]; /* array with tag-method names */
Same on Windows:
[27/54] C:\PROGRA~1\MIB055~1\2022\COMMUN~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\cl.exe /nologo -IC:\Users\rleigh\code\lua-cmake\src -IC:\Users\rleigh\code\lua-cmake\cmake-build-debug-visual-studio-2022-shared\src /DWIN32 /D_WINDOWS /Zi /Ob0 /Od /RTC1 -MDd /showIncludes /Fosrc\CMakeFiles\lua_library-headers.dir\__\test\lua_library\headers\ltm-2.c.obj /Fdsrc\CMakeFiles\lua_library-headers.dir\ /FS -c C:\Users\rleigh\code\lua-cmake\cmake-build-debug-visual-studio-2022-shared\test\lua_library\headers\ltm-2.c
FAILED: src/CMakeFiles/lua_library-headers.dir/__/test/lua_library/headers/ltm-2.c.obj
C:\PROGRA~1\MIB055~1\2022\COMMUN~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\cl.exe /nologo -IC:\Users\rleigh\code\lua-cmake\src -IC:\Users\rleigh\code\lua-cmake\cmake-build-debug-visual-studio-2022-shared\src /DWIN32 /D_WINDOWS /Zi /Ob0 /Od /RTC1 -MDd /showIncludes /Fosrc\CMakeFiles\lua_library-headers.dir\__\test\lua_library\headers\ltm-2.c.obj /Fdsrc\CMakeFiles\lua_library-headers.dir\ /FS -c C:\Users\rleigh\code\lua-cmake\cmake-build-debug-visual-studio-2022-shared\test\lua_library\headers\ltm-2.c
C:\Users\rleigh\code\lua-cmake\src\lstate.h(298): error C2065: 'TM_N': undeclared identifier
C:\Users\rleigh\code\lua-cmake\src\lstate.h(298): error C2057: expected constant expression
C:\Users\rleigh\code\lua-cmake\src\lstate.h(299): error C2229: struct 'global_State' has an illegal zero-sized array
Source file:
====================================
#include "ltm.h"
====================================
ltm.h includes lstate.h. lstate.h includes ltm.h. It looks like things need reordering in order to make these includes work robustly. The above was a part of a test of each header in isolation to identify any problems.
Separately, I'm curious what the "do" stands for in "ldo.c". I didn't see the abbreviation explained anywhere. Can anyone explain what this means, please?
Kind regards,
Roger