Skip to content

Commit af9c037

Browse files
committed
make: add RegQueryInfoKeyW, RegEnumKeyExW, RegEnumValueW to advapi32.def (fixes #18918)
(cherry picked from commit 07ffb4a5333b3d717010a17a1474b787dee1d49f)
1 parent 2269cbd commit af9c037

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

GNUmakefile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,19 @@ endif
204204
ifndef local
205205
latest_tcc: $(TMPTCC)/.git/config
206206
ifeq ($(HAS_GIT),1)
207+
ifdef WIN32
208+
@if [ -f "$(TMPTCC)/lib/advapi32.def" ]; then \
209+
cd "$(TMPTCC)" && $(GIT) checkout -- lib/advapi32.def > /dev/null 2> /dev/null || true; \
210+
fi
211+
endif
207212
cd $(TMPTCC) && $(GITCLEANPULL)
213+
ifdef WIN32
214+
@if [ -f "$(TMPTCC)/lib/advapi32.def" ]; then \
215+
for sym in RegEnumKeyExW RegEnumValueW RegQueryInfoKeyW; do \
216+
grep -qx "$$sym" "$(TMPTCC)/lib/advapi32.def" || printf '%s\n' "$$sym" >> "$(TMPTCC)/lib/advapi32.def"; \
217+
done; \
218+
fi
219+
endif
208220
else
209221
@echo "git not found; skipping update of $(TMPTCC)"
210222
endif
@@ -258,6 +270,11 @@ ifeq ($(HAS_GIT),1)
258270
$(GITFASTCLONE) --branch thirdparty-unknown-unknown $(TCCREPO) "$(TMPTCC)"; \
259271
else \
260272
$(GITFASTCLONE) --branch "$$selected_branch" $(TCCREPO) "$(TMPTCC)"; \
273+
if [ -f "$(TMPTCC)/lib/advapi32.def" ]; then \
274+
for sym in RegEnumKeyExW RegEnumValueW RegQueryInfoKeyW; do \
275+
grep -qx "$$sym" "$(TMPTCC)/lib/advapi32.def" || printf '%s\n' "$$sym" >> "$(TMPTCC)/lib/advapi32.def"; \
276+
done; \
277+
fi; \
261278
if ! "$(TMPTCC)/tcc.exe" --version > /dev/null 2> /dev/null; then \
262279
if [ "$$fallback_branch" != '' ] && [ "$$fallback_branch" != "$$selected_branch" ] \
263280
&& printf '%s\n' "$$branches" | grep -Fx "$$fallback_branch" > /dev/null; then \

v_make.bat

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,17 +250,29 @@ if exist "%tcc_dir%" (
250250
pushd "%tcc_dir%" && (
251251
echo Updating TCC
252252
echo ^> Syncing TCC from !tcc_url!
253+
if exist "lib\advapi32.def" git checkout -- lib\advapi32.def >nul 2>nul
253254
git pull --quiet
254255
popd
255256
)
256257
) else (
257258
call :bootstrap_tcc
258259
)
259260

261+
call :patch_tcc_defs
262+
if %ERRORLEVEL% NEQ 0 goto :error
263+
260264
if not exist "%tcc_exe%" echo ^> TCC not found, even after cloning& goto :error
261265
echo.
262266
exit /b 0
263267

268+
:patch_tcc_defs
269+
set "advapi32_def=%tcc_dir%\lib\advapi32.def"
270+
if not exist "%advapi32_def%" exit /b 0
271+
for %%G in (RegEnumKeyExW RegEnumValueW RegQueryInfoKeyW) do (
272+
findstr /x /c:"%%G" "%advapi32_def%" >nul || >>"%advapi32_def%" echo %%G
273+
)
274+
exit /b 0
275+
264276
:compile_error
265277
echo.
266278
echo Backend compiler error

0 commit comments

Comments
 (0)