Skip to content

Commit ca926d4

Browse files
committed
Fix wine bootstrap
Fixes #39124 Closes #39022
1 parent bb608e5 commit ca926d4

File tree

7 files changed

+14
-8
lines changed

7 files changed

+14
-8
lines changed

Make.inc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,8 @@ endif # SYSTEM_LLVM
10261026
# Windows builds need a little help finding the LLVM libraries for llvm-config
10271027
LLVM_CONFIG_PATH_FIX :=
10281028
ifeq ($(OS),WINNT)
1029-
LLVM_CONFIG_PATH_FIX := PATH="$(build_bindir):$(PATH)"
1029+
# WINEPATH is only needed for a wine-based cross compile, but doesn't hurt on windows
1030+
LLVM_CONFIG_PATH_FIX := PATH="$(build_bindir):$(PATH)" WINEPATH="$(build_bindir)"
10301031
endif
10311032

10321033
ifeq ($(BUILD_OS),$(OS))

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ $(build_depsbindir)/stringreplace: $(JULIAHOME)/contrib/stringreplace.c | $(buil
154154
@$(call PRINT_CC, $(HOSTCC) -o $(build_depsbindir)/stringreplace $(JULIAHOME)/contrib/stringreplace.c)
155155

156156
julia-base-cache: julia-sysimg-$(JULIA_BUILD_MODE) | $(DIRS) $(build_datarootdir)/julia
157-
@JULIA_BINDIR=$(call cygpath_w,$(build_bindir)) $(call spawn, $(JULIA_EXECUTABLE) --startup-file=no $(call cygpath_w,$(JULIAHOME)/etc/write_base_cache.jl) \
157+
@JULIA_BINDIR=$(call cygpath_w,$(build_bindir)) WINEPATH=$(build_bindir) $(call spawn, $(JULIA_EXECUTABLE) --startup-file=no $(call cygpath_w,$(JULIAHOME)/etc/write_base_cache.jl) \
158158
$(call cygpath_w,$(build_datarootdir)/julia/base.cache))
159159

160160
# public libraries, that are installed in $(prefix)/lib

base/env.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ if Sys.iswindows()
3232
function _unsetenv(svar::AbstractString)
3333
var = cwstring(svar)
3434
ret = ccall(:SetEnvironmentVariableW,stdcall,Int32,(Ptr{UInt16},Ptr{UInt16}),var,C_NULL)
35-
windowserror(:setenv, ret == 0)
35+
windowserror(:setenv, ret == 0 && Libc.GetLastError() != ERROR_ENVVAR_NOT_FOUND)
3636
end
3737
else # !windows
3838
_getenv(var::AbstractString) = ccall(:getenv, Cstring, (Cstring,), var)

cli/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ ABI_UNDERSCORE := _\#\#
106106
else
107107
ABI_UNDERSCORE :=
108108
endif
109-
EXPORTED_FUNCS := $(shell echo -e "#include \"jl_exported_funcs.inc\"\n#define XX(x) $(ABI_UNDERSCORE)x\nJL_EXPORTED_FUNCS(XX)" | $(CPP) -I$(JULIAHOME)/src - | tail -n 1)
109+
EXPORTED_FUNCS := $(shell $(CPP) -DABI_UNDERSCORE=$(ABI_UNDERSCORE) -I$(JULIAHOME)/src - < exported_symbols.inc | tail -n 1)
110110
STRIP_EXPORTED_FUNCS := $(patsubst %,--strip-symbol=%,$(EXPORTED_FUNCS))
111111
endif
112112

cli/exported_symbols.inc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#include "jl_exported_funcs.inc"
2+
#define XX(x) ABI_UNDERSCORE ## x
3+
JL_EXPORTED_FUNCS(XX)

src/Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,13 @@ DEBUGFLAGS += "-DJL_LIBJULIA_SONAME=\"libjulia-debug.$(JL_MAJOR_SHLIB_EXT)\"" "-
140140

141141
ifeq ($(USE_CROSS_FLISP), 1)
142142
FLISPDIR := $(BUILDDIR)/flisp/host
143+
FLISP_EXECUTABLE_debug := $(FLISPDIR)/flisp-debug$(BUILD_EXE)
144+
FLISP_EXECUTABLE_release := $(FLISPDIR)/flisp$(BUILD_EXE)
143145
else
144146
FLISPDIR := $(BUILDDIR)/flisp
147+
FLISP_EXECUTABLE_debug := $(FLISPDIR)/flisp-debug$(EXE)
148+
FLISP_EXECUTABLE_release := $(FLISPDIR)/flisp$(EXE)
145149
endif
146-
FLISP_EXECUTABLE_debug := $(FLISPDIR)/flisp-debug$(BUILD_EXE)
147-
FLISP_EXECUTABLE_release := $(FLISPDIR)/flisp$(BUILD_EXE)
148150
ifeq ($(OS),WINNT)
149151
FLISP_EXECUTABLE := $(FLISP_EXECUTABLE_release)
150152
else

sysimage.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ $(build_private_libdir)/corecompiler.ji: $(COMPILER_SRCS)
6565

6666
$(build_private_libdir)/sys.ji: $(build_private_libdir)/corecompiler.ji $(JULIAHOME)/VERSION $(BASE_SRCS) $(STDLIB_SRCS)
6767
@$(call PRINT_JULIA, cd $(JULIAHOME)/base && \
68-
if ! JULIA_BINDIR=$(call cygpath_w,$(build_bindir)) $(call spawn, $(JULIA_EXECUTABLE)) -g1 -O0 -C "$(JULIA_CPU_TARGET)" --output-ji $(call cygpath_w,$@).tmp $(JULIA_SYSIMG_BUILD_FLAGS) \
68+
if ! JULIA_BINDIR=$(call cygpath_w,$(build_bindir)) WINEPATH=$(build_bindir) $(call spawn, $(JULIA_EXECUTABLE)) -g1 -O0 -C "$(JULIA_CPU_TARGET)" --output-ji $(call cygpath_w,$@).tmp $(JULIA_SYSIMG_BUILD_FLAGS) \
6969
--startup-file=no --warn-overwrite=yes --sysimage $(call cygpath_w,$<) sysimg.jl $(RELBUILDROOT); then \
7070
echo '*** This error might be fixed by running `make clean`. If the error persists$(COMMA) try `make cleanall`. ***'; \
7171
false; \
@@ -75,7 +75,7 @@ $(build_private_libdir)/sys.ji: $(build_private_libdir)/corecompiler.ji $(JULIAH
7575
define sysimg_builder
7676
$$(build_private_libdir)/sys$1-o.a $$(build_private_libdir)/sys$1-bc.a : $$(build_private_libdir)/sys$1-%.a : $$(build_private_libdir)/sys.ji
7777
@$$(call PRINT_JULIA, cd $$(JULIAHOME)/base && \
78-
if ! JULIA_BINDIR=$$(call cygpath_w,$(build_bindir)) $$(call spawn, $3) $2 -C "$$(JULIA_CPU_TARGET)" --output-$$* $$(call cygpath_w,$$@).tmp $$(JULIA_SYSIMG_BUILD_FLAGS) \
78+
if ! JULIA_BINDIR=$$(call cygpath_w,$(build_bindir)) WINEPATH=$(build_bindir) $$(call spawn, $3) $2 -C "$$(JULIA_CPU_TARGET)" --output-$$* $$(call cygpath_w,$$@).tmp $$(JULIA_SYSIMG_BUILD_FLAGS) \
7979
--startup-file=no --warn-overwrite=yes --sysimage $$(call cygpath_w,$$<) $$(call cygpath_w,$$(JULIAHOME)/contrib/generate_precompile.jl) $(JULIA_PRECOMPILE); then \
8080
echo '*** This error is usually fixed by running `make clean`. If the error persists$$(COMMA) try `make cleanall`. ***'; \
8181
false; \

0 commit comments

Comments
 (0)