Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do not hide libssp.dll.a (Windows import library) in private library dir #52820

Merged
merged 3 commits into from
Jan 14, 2024

Conversation

mkitti
Copy link
Contributor

@mkitti mkitti commented Jan 8, 2024

Fix #51740

The libssp.dll.a is a Windows import library

An import library (.lib) file contains information the linker needs to resolve external references to exported DLL functions, so the system can locate the specified DLL and exported DLL functions at run time. You can create an import library for your DLL when you build your DLL.

That contains the necessary information to dynamically link a DLL on Windows.

Since we are providing libssp.dll on Windows and we want to dynamically link to it, exposing libssp.dll.a is necessary.

build_libdir is the location of other *.dll.a import libraries:

kittisopikulm@KITTISOPIKULM-2 MINGW64 ~/julia/usr/lib
$ ls *.dll.a
libLLVM-15jl.dll.a         libjulia-codegen.dll.a   libpcre2-16.dll.a
libamd.dll.a               libjulia-internal.dll.a  libpcre2-32.dll.a
libblastrampoline-5.dll.a  libjulia.dll.a           libpcre2-8.dll.a
libbtf.dll.a               libklu.dll.a             libpcre2-posix.dll.a
libcamd.dll.a              libklu_cholmod.dll.a     librbio.dll.a
libccolamd.dll.a           libldl.dll.a             libspqr.dll.a
libcholmod.dll.a           libmbedcrypto.dll.a      libssh2.dll.a
libcolamd.dll.a            libmbedtls.dll.a         libssp.dll.a
libcurl.dll.a              libmbedx509.dll.a        libsuitesparseconfig.dll.a
libgit2.dll.a              libmpfr.dll.a            libumfpack.dll.a
libgmp.dll.a               libnghttp2.dll.a         libuv.dll.a
libgmpxx.dll.a             libopenblas64_.dll.a     libz.dll.a

Edit: There seems to be some inconsistencies. I changed it to move to build_shlibdir which will be the bin directory where libssp-0.dll lives.

The inconsistency is that libjulia-codegen.so looks in build_libdir and build_private_libdir while standard library precompilation looks in build_shlibdir and build_private_dir.

@mkitti
Copy link
Contributor Author

mkitti commented Jan 8, 2024

@maleadt could you see if this works for you?

@gbaraldi gbaraldi requested a review from vtjnash January 8, 2024 20:51
@giordano giordano added domain:building Build system, or building Julia or its dependencies system:windows Affects only Windows labels Jan 9, 2024
Copy link
Sponsor Member

@vtjnash vtjnash left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM. Since we link it explicitly, we probably need this in the build_libdir. A bit annoying to have there, but also such a tiny library we probably won't run into any issues with duplicates.

@mkitti
Copy link
Contributor Author

mkitti commented Jan 9, 2024

Err... there is more to fix here. I did not really want to do multiple copies of libssp.dll.a, but I think that is the easiest short term fix. As far as I can tell that's not really an issue on Windows because it really just wants to be able to find libssp-0.dll at the end of the day.

Thus, I'm going to take a pragmatic approach and go for two of the following.

  • build_libdir
  • build_shlibdir
  • build_private_libdir

I'm leaning towards these two.

  1. build_libdir
  2. build_private_libdir

@mkitti
Copy link
Contributor Author

mkitti commented Jan 9, 2024

If we just have libssp.dll.a in build_libdir then codegen compiles, but we have problems buliding the system image.

It only looks for libssp.dll.a in lib/julia (build_private_libdir) and bin (build_shlibdir), but not lib (build_libdir)

Base  ────────── 73.434219 seconds
  | FileWatching  ──  9.046818 seconds
  | Libdl  ─────────  0.014016 seconds
  | Artifacts  ─────  0.351157 seconds
  | SHA  ───────────  0.285354 seconds
  | Sockets  ───────  0.421611 seconds
  | LinearAlgebra  ─  8.958008 seconds
  | Random  ────────  0.898721 seconds
  | Stdlibs total  ─ 19.985967 seconds
  | Sysimage built. Summary:
  | Base ────────  73.434219 seconds 78.6034%
  | Stdlibs ─────  19.985967 seconds 21.3928%
  | Total ───────  93.423746 seconds
  | make[1]: Leaving directory '/c/workdir'
  | make[1]: Entering directory '/c/workdir'
  | cd /c/workdir/base && if ! JULIA_BINDIR=`cygpath -w /c/workdir/usr/bin` WINEPATH="`cygpath -w /c/workdir/usr/bin`;$WINEPATH" JULIA_LOAD_PATH='@stdlib' JULIA_PROJECT= JULIA_DEPOT_PATH=':' JULIA_NUM_THREADS=1  /c/workdir/usr/bin/julia.exe -O3 -C "pentium4" --heap-size-hint=1000M --output-o `cygpath -w /c/workdir/usr/lib/julia/sys-o.a`.tmp  --startup-file=no --warn-overwrite=yes --sysimage `cygpath -w /c/workdir/usr/lib/julia/sys.ji` `cygpath -w /c/workdir/contrib/generate_precompile.jl` 1; then echo '*** This error is usually fixed by running `make clean`. If the error persists, try `make cleanall`. ***'; false; fi
  | ERROR: failed process: Process(setenv(`'C:\workdir\usr\tools\lld.exe' -flavor gnu -m i386pe -Bdynamic --enable-auto-image-base --allow-multiple-definition '' -shared -o 'C:\Users\ContainerAdministrator\AppData\Local\Temp\jl_hKnHNO\compiled\v1.11\jl_39B.tmp' --whole-archive 'C:\Users\ContainerAdministrator\AppData\Local\Temp\jl_hKnHNO\compiled\v1.11\jl_39A.tmp' --no-whole-archive '-LC:\workdir\usr\lib\julia' '-LC:\workdir\usr\bin' -ljulia -ljulia-internal -lopenlibm -lssp -lgcc_s -lgcc -lmsvcrt`,["LONG_COMMIT=2b55ba46e18cc5cbaadfe3aa4a0259540d259ade", "PUBLIC=C:\\Users\\Public", "JULIA_BINDIR=C:\\workdir\\usr\\bin", "BUILDKITE_PIPELINE_NAME=julia-master", "BUILDKITE_AGENT_NAME=win2k22-amdci6.3", "LC_ALL=C", "MAKE_FLAGS=VERBOSE=1", "JULIA_CPU_THREADS=8", "JULIA_BINARYDIST_FILENAME=julia-2b55ba46e1-win32", "LANG=C"  …  "BUILDKITE_TIMEOUT=80", "BUILDKITE_AGENT_META_DATA_QUEUE=julia,juliaecosystem", "BUILDKITE_PIPELINE_SLUG=julia-master", "BUILDKITE_BUILD_AUTHOR_EMAIL=mkitti@users.noreply.github.com", "BUILDKITE_PIPELINE_ID=53de1ea5-6dd3-4008-b976-161c9f34b0ad", "BUILDROOT=C:/workdir", "HOME=C:\\msys64\\home\\ContainerUser", "SHORT_COMMIT=2b55ba46e1", "VERBOSE=1", "PROGRAMFILES=C:\\Program Files (x86)"]), ProcessExited(1)) [1]
  |  
  | Stacktrace:
  | [1] pipeline_error
  | @ .\process.jl:597 [inlined]
  | [2] run(::Cmd, ::Base.DevNull, ::Vararg{Any}; wait::Bool)
  | @ Base .\process.jl:512
  | [3] run
  | @ .\process.jl:509 [inlined]
  | [4] link_image (repeats 2 times)
  | @ .\linking.jl:166 [inlined]
  | [5] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; reasons::Dict{String, Int32})
  | @ Base .\loading.jl:2624
  | [6] compilecache
  | @ Base .\loading.jl:2580 [inlined]
  | [7] compilecache(pkg::Base.PkgId, path::String)
  | @ Base .\loading.jl:2580
  | [8] top-level scope
  | @ none:1
  | Collecting and executing precompile statements
  | └ Collect (Basic: ✓ 870) => Execute ✓ 639
  | Outputting sysimage file...
  | Output ────── 173.667396 seconds
  | make[1]: Leaving directory '/c/workdir'
  | make[1]: Entering directory '/c/workdir'
  | g++ -march=pentium4 -m32  -shared  -L/c/workdir/usr/lib/julia -L/c/workdir/usr/lib -L/c/workdir/usr/bin -o /c/workdir/usr/lib/julia/sys.dll -Wl,--whole-archive /c/workdir/usr/lib/julia/sys-o.a -Wl,--no-whole-archive -ljulia-internal -ljulia $([ WINNT = WINNT ] && echo '' -lssp)
  | make[1]: Leaving directory '/c/workdir'
  | make[1]: Entering directory '/c/workdir'
  | touch stdlib/Artifacts.release.image
  | make[1]: Leaving directory '/c/workdir'
  | make[1]: Entering directory '/c/workdir'
  | touch stdlib/FileWatching.release.image
  | make[1]: Leaving directory '/c/workdir'
  | make[1]: Entering directory '/c/workdir'
  | touch stdlib/Libdl.release.image
  | make[1]: Leaving directory '/c/workdir'
  | make[1]: Entering directory '/c/workdir'
  | touch stdlib/SHA.release.image
  | make[1]: Leaving directory '/c/workdir'
  | make[1]: Entering directory '/c/workdir'
  | touch stdlib/libblastrampoline_jll.release.image
  | make[1]: Leaving directory '/c/workdir'
  | make[1]: Entering directory '/c/workdir'
  | touch stdlib/OpenBLAS_jll.release.image
  | make[1]: Leaving directory '/c/workdir'
  | make[1]: Entering directory '/c/workdir'
  | touch stdlib/Random.release.image
  | make[1]: Leaving directory '/c/workdir'
  | make[1]: Entering directory '/c/workdir'
  | touch stdlib/LinearAlgebra.release.image
  | make[1]: Leaving directory '/c/workdir'
  | make[1]: Entering directory '/c/workdir'
  | touch stdlib/Sockets.release.image
  | make[1]: Leaving directory '/c/workdir'
  | make[1]: Entering directory '/c/workdir'
  | /c/workdir/usr/bin/julia.exe --startup-file=no --check-bounds=yes -e 'Base.compilecache(Base.identify_package("Unicode"))'
  | lld: error: unable to find library -lssp
  | ERROR: failed process: Process(setenv(`'C:\workdir\usr\tools\lld.exe' -flavor gnu -m i386pe -Bdynamic --enable-auto-image-base --allow-multiple-definition '' -shared -o 'C:/workdir/usr/share/julia\compiled\v1.11\Unicode\jl_84D2.tmp' --whole-archive 'C:/workdir/usr/share/julia\compiled\v1.11\Unicode\jl_84D1.tmp' --no-whole-archive '-LC:\workdir\usr\lib\julia' '-LC:\workdir\usr\bin' -ljulia -ljulia-internal -lopenlibm -lssp -lgcc_s -lgcc -lmsvcrt`,["LONG_COMMIT=2b55ba46e18cc5cbaadfe3aa4a0259540d259ade", "PUBLIC=C:\\Users\\Public", "LC_ALL=C", "BUILDKITE_PIPELINE_NAME=julia-master", "BUILDKITE_AGENT_NAME=win2k22-amdci6.3", "MAKE_FLAGS=VERBOSE=1", "JULIA_CPU_THREADS=8", "JULIA_BINARYDIST_FILENAME=julia-2b55ba46e1-win32", "LANG=C", "SYSTEMDRIVE=C:"  …  "BUILDKITE_TIMEOUT=80", "BUILDKITE_AGENT_META_DATA_QUEUE=julia,juliaecosystem", "BUILDKITE_PIPELINE_SLUG=julia-master", "BUILDKITE_BUILD_AUTHOR_EMAIL=mkitti@users.noreply.github.com", "BUILDKITE_PIPELINE_ID=53de1ea5-6dd3-4008-b976-161c9f34b0ad", "BUILDROOT=C:/workdir", "HOME=C:\\msys64\\home\\ContainerUser", "SHORT_COMMIT=2b55ba46e1", "VERBOSE=1", "PROGRAMFILES=C:\\Program Files (x86)"]), ProcessExited(1)) [1]
 

@mkitti
Copy link
Contributor Author

mkitti commented Jan 9, 2024

If I just have libssp.dll.a just in build_shlibdir, then we have problems precompiling.

Precompilation only looks in lib/julia (build_private_libdir) and bin (build_shlibdir), and not lib (build_libdir).

LinearAlgebra/bidiag                             (5) \|        started at 2024-01-09T08:06:04.924
  | From worker 2:	┌ Info: Pkg test output is being logged to file
  | From worker 2:	└   logfile = "C:\\Users\\julia\\AppData\\Local\\Temp\\jl_MuioDf\\Pkg.log"
  | From worker 2:	lld: error: unable to find library -lssp
  | Pkg                                              (2) \|         failed at 2024-01-09T08:06:20.510
  | Error During Test at C:\buildkite-agent\builds\win2k22-amdci6-0\julialang\julia-master\julia-6e64f1d251\share\julia\test\testdefs.jl:24
  | Got exception outside of a @test
  | LoadError: failed process: Process(setenv(`'C:\buildkite-agent\builds\win2k22-amdci6-0\julialang\julia-master\julia-6e64f1d251\libexec\julia\lld.exe' -flavor gnu -m i386pep -Bdynamic --enable-auto-image-base --allow-multiple-definition '' -shared -o 'C:\Users\julia\AppData\Local\Temp\jl_jRFwmw\compiled\v1.11\HistoricalStdlibVersions\jl_7E17.tmp' --whole-archive 'C:\Users\julia\AppData\Local\Temp\jl_jRFwmw\compiled\v1.11\HistoricalStdlibVersions\jl_7E16.tmp' --no-whole-archive '-LC:\buildkite-agent\builds\win2k22-amdci6-0\julialang\julia-master\julia-6e64f1d251\lib\julia' '-LC:\buildkite-agent\builds\win2k22-amdci6-0\julialang\julia-master\julia-6e64f1d251\bin' -ljulia -ljulia-internal -lopenlibm -lssp -lgcc_s -lgcc -lmsvcrt`,["PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW", "COMMONPROGRAMW6432=C:\\Program Files\\Common Files", "USERDOMAIN=WIN2K22-AMDCI6-", "BUILDKITE_PULL_REQUEST_REPO=https://github.com/mkitti/julia.git", "BUILDKITE_SOURCE=webhook", "BUILDKITE_GIT_CLONE_FLAGS=-v --dissociate", "BUILDKITE_PLUIGIN_CRYPYTIC_SECRETS_MOUNT_POINT=C:\\secrets", "PLINK_PROTOCOL=ssh", "BUILDKITE_ENV_FILE=C:\\Users\\julia\\AppData\\Local\\Temp\\job-env-018ced28-a366-4029-b2d0-d6c98959323c370724910", "BUILDKITE_BUILD_NUMBER=32032", "BUILDKITE_GIT_CLONE_MIRROR_FLAGS=-v", "BUILDKITE_AGENT_DEBUG=false", "BUILDKITE_AGENT_META_DATA_QUEUE=julia,juliaecosystem", "BUILDKITE_COMMAND_EVAL=true", "BUILDKITE_PLUGINS_PATH=C:\\buildkite-agent\\plugins", "TRIPLET=x86_64-w64-mingw32", "JULIA_INSTALL_DIR=julia-6e64f1d251", "BUILDKITE_ORGANIZATION_SLUG=julialang", "BUILDKITE_PIPELINE_PROVIDER=github", "BUILDKITE_AGENT_EXPERIMENT=git-mirrors,output-redactor,ansi-timestamps,resolve-commit-after-checkout", "BUILDKITE_CONFIG_PATH=C:\\buildkite-agent\\buildkite-agent.cfg", "NUMBER_OF_PROCESSORS=8", "BUILDKITE_PIPELINE_TEAMS=all-users-base-julia-ci-build-and-read:base-julia-ci-build-and-read:base-julia-ci-slack-notifications:committers-at-julialang-slash-committers", "BUILDKITE_AGENT_META_DATA_CRYPTIC_CAPABLE=true", "MAJMIN=1.11", "BUILDKITE_AGENT_ACCESS_TOKEN=[REDACTED]", "COMMONPROGRAMFILES(X86)=C:\\Program Files (x86)\\Common Files", "BUILDKITE_BUILD_CREATOR_EMAIL=mkitti@users.noreply.github.com", "JULIA_PKG_PRECOMPILE_AUTO=0", "BUILDKITE_SSH_KEYSCAN=true", "COMMONPROGRAMFILES=C:\\Program Files\\Common Files", "BUILDKITE_PROJECT_SLUG=julialang/julia-master", "BUILDKITE_INITIAL_JOB_ID=018ced28-31fc-4396-8ad7-dc54efda37d7", "BUILDKITE_BIN_PATH=C:\\buildkite-agent\\bin", "PWD=C:/buildkite-agent/builds/win2k22-amdci6-0/julialang/julia-master", "OPENBLAS_NUM_THREADS=1", "BUILDKITE_GIT_SUBMODULES=true", "BUILDKITE_AGENT_META_DATA_OS=windows", "CI=true", "BUILDKITE_STEP_KEY=test_x86_64-w64-mingw32", "BUILDKITE_STEP_IDENTIFIER=test_x86_64-w64-mingw32", "JULIA_SHELL=C:/Program Files/Git/usr/bin/bash", "BUILDKITE_GROUP_KEY=", "BUILDKITE_AGENT_PID=4296", "JULIA_CPU_TARGET=generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)", "TAR_VERSION=6e64f1d251", "BUILDKITE_AGENT_META_DATA_CPUSET_LIMITED=true", "BUILDKITE_LAST_HOOK_EXIT_STATUS=0", "ARCH=x86_64", "BUILDKITE_PTY=false", "SYSTEMROOT=C:\\Windows", "JULIA_TEST_MAXRSS_MB=3800", "JULIA_CMD_FOR_TESTS=julia-6e64f1d251/bin/julia.exe .buildkite/utilities/timeout.jl julia-6e64f1d251/bin/julia.exe", "BUILDKITE_BUILD_CREATOR=mkitti", "TMP=C:\\Users\\julia\\AppData\\Local\\Temp", "BUILDKITE_REBUILT_FROM_BUILD_ID=", "COMSPEC=C:\\Windows\\system32\\cmd.exe", "ALLUSERSPROFILE=C:\\ProgramData", "BUILDKITE_BRANCH=mkitti:mkitti-fix-51740-libssp-mingw", "JULIA_DEPOT_PATH=C:\\Users\\julia\\AppData\\Local\\Temp\\jl_jRFwmw;C:\\buildkite-agent\\builds\\win2k22-amdci6-0\\julialang\\julia-master\\julia-6e64f1d251\\local\\share\\julia;C:\\buildkite-agent\\builds\\win2k22-amdci6-0\\julialang\\julia-master\\julia-6e64f1d251\\share\\julia", "BUILDKITE_AGENT_DEBUG_HTTP=false", "BUILDKITE=true", "BUILDKITE_HOOKS_PATH=C:\\buildkite-agent\\hooks", "SHORT_COMMIT=6e64f1d251", "BUILDKITE_PIPELINE_DEFAULT_BRANCH=master", "BUILDKITE_REBUILT_FROM_BUILD_NUMBER=", "HOME=C:\\Users\\julia", "MAJMINPAT=1.11.0", "LOCALAPPDATA=C:\\Users\\julia\\AppData\\Local", "BUILDKITE_TRIGGERED_FROM_BUILD_PIPELINE_SLUG=", "GKSWSTYPE=100", "BUILDKITE_BUILD_CHECKOUT_PATH=C:\\buildkite-agent\\builds\\win2k22-amdci6-0\\julialang\\julia-master", "BUILDKITE_SCRIPT_PATH=bash .buildkite/utilities/test_julia.sh", "MAKE=make", "BUILDKITE_PIPELINE_NAME=julia-master", "SHLVL=2", "JL_TERM_TIMEOUT=180m", "BUILDKITE_BUILD_PATH=C:\\buildkite-agent\\builds", "BUILDKITE_BUILD_AUTHOR_EMAIL=mkitti@users.noreply.github.com", "BUILDKITE_TIMEOUT=225", "BUILDKITE_GIT_MIRRORS_PATH=C:\\cache\\repos", "BUILDKITE_LABEL=:windows: test x86_64-w64-mingw32", "JULIA_TEST_VERBOSE_LOGS_DIR=C:\\Users\\julia\\AppData\\Local\\Temp\\jl_MuioDf", "BUILDKITE_BUILD_CREATOR_TEAMS=", "UPLOAD_FILENAME=julia-6e64f1d251-windows-x86_64", "BUILDKITE_PROJECT_PROVIDER=github", "LONG_COMMIT=6e64f1d251940af3f448ad84f6aebe0b4e750d36", "PSMODULEPATH=C:\\Program Files\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules", "BUILDKITE_GROUP_LABEL=Test", "PUBLIC=C:\\Users\\Public", "PROGRAMDATA=C:\\ProgramData", "BUILDKITE_REPO_MIRROR=C:\\cache\\repos\\https---github-com-JuliaLang-julia-git", "JULIA_IMAGE_THREADS=8", "OS=windows", "GIT_TERMINAL_PROMPT=0", "BUILDKITE_JOB_ID=018ced28-a366-4029-b2d0-d6c98959323c", "BUILDKITE_REDACTED_VARS=*_PASSWORD,*_SECRET,*_TOKEN,*_ACCESS_KEY,*_SECRET_KEY", "BUILDKITE_BUILD_AUTHOR=mkitti", "JULIA_BINARYDIST_FILENAME=", "BUILDKITE_GROUP_ID=018ced28-5640-417d-82a7-f38724cf9023", "USERNAME=julia", "BUILDKITE_REPO=https://github.com/JuliaLang/julia.git", "BUILDKITE_GIT_FETCH_FLAGS=-v --prune --tags", "MSYSTEM=MINGW64", "BUILDKITE_LOCAL_HOOKS_ENABLED=true", "PROCESSOR_LEVEL=23", "BUILDKITE_GIT_MIRRORS_LOCK_TIMEOUT=300", "BUILDKITE_AGENT_ID=018ced40-9edd-491c-8b0f-b75fbe088db4", "BUILDKITE_GIT_MIRRORS_SKIP_UPDATE=false", "BUILDKITE_ARTIFACT_PATHS=", "BUILDKITE_PLUGIN_EXTERNAL_BUILDKITE_VERSION=70bde73f6cb17d4381b62236fc2d96b1c7acbba7", "BUILDKITE_BUILD_URL=https://buildkite.com/julialang/julia-master/builds/32032", "WINDIR=C:\\Windows", "BUILDKITE_MESSAGE=move libssp.dll.a to build_shlibdir", "BUILDKITE_RETRY_COUNT=0", "JULIA_CPU_THREADS=8", "BUILDKITE_PLUGIN_JULIA_CACHE_DIR=C:\\cache\\julia-buildkite-plugin", "JULIA_NUM_THREADS=1", "BUILDKITE_PIPELINE_SLUG=julia-master", "BUILDKITE_SHELL=bash.exe -c", "BUILDKITE_PLUGINS_ENABLED=true", "PROGRAMFILES=C:\\Program Files", "BUILDKITE_AGENT_NAME=win2k22-amdci6.0", "BUILDKITE_STEP_ID=018ced28-a343-4efa-be10-5a6f12860ed8", "BUILDKITE_TAG=", "SYSTEMDRIVE=C:", "NCORES_FOR_TESTS=8", "PROCESSOR_ARCHITECTURE=AMD64", "OPENBLAS_MAIN_FREE=1", "PATH=C:\\buildkite-agent\\builds\\win2k22-amdci6-0\\julialang\\julia-master\\julia-6e64f1d251\\lib\\julia;C:\\buildkite-agent\\builds\\win2k22-amdci6-0\\julialang\\julia-master\\julia-6e64f1d251\\bin;C:\\Program Files\\Git\\mingw64\\bin;C:\\Program Files\\Git\\usr\\bin;C:\\Users\\julia\\bin;C:\\buildkite-agent\\bin;C:\\Program Files\\Python310\\Scripts;C:\\Program Files\\Python310;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0;C:\\Windows\\System32\\OpenSSH;C:\\Program Files\\Git\\cmd;C:\\Program Files\\Git\\usr\\bin;C:\\Program Files\\WireGuard;C:\\Users\\julia\\AppData\\Local\\Microsoft\\WindowsApps;C:\\buildkite-agent\\bin", "GKS_ENCODING=utf8", "APPDATA=C:\\Users\\julia\\AppData\\Roaming", "BUILDKITE_AGENT_META_DATA_NUM_CPUS=8", "PROCESSOR_REVISION=0102", "BUILDKITE_TRIGGERED_FROM_BUILD_NUMBER=", "BUILDKITE_AGENT_META_DATA_CONFIG_GITSHA=844e6dd1", "BUILDKITE_COMMAND=bash .buildkite/utilities/test_julia.sh", "BUILDKITE_PLUGIN_VALIDATION=false", "COMPUTERNAME=WIN2K22-AMDCI6-", "BUILDKITE_AGENT_META_DATA_ARCH=x86_64", "JULIA_VERSION=1.11.0-DEV", "USERPROFILE=C:\\Users\\julia", "=C:=C:\\buildkite-agent\\builds\\win2k22-amdci6-0\\julialang\\julia-master\\julia-6e64f1d251\\share\\julia\\test", "PROGRAMW6432=C:\\Program Files", "BUILDKITE_TRIGGERED_FROM_BUILD_ID=", "TERM=xterm-256color", "TEMP=C:\\Users\\julia\\AppData\\Local\\Temp", "BUILDKITE_PULL_REQUEST_BASE_BRANCH=master", "BUILDKITE_PIPELINE_ID=53de1ea5-6dd3-4008-b976-161c9f34b0ad", "TESTS=all --ci", "PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 1 Stepping 2, AuthenticAMD", "PROMPT=\$P\$G", "BUILDKITE_PLUGIN_EXTERNAL_BUILDKITE_FOLDER=.buildkite", "_=julia-6e64f1d251/bin/julia.exe", "BUILDKITE_BUILD_ID=018ced28-31cd-4894-80e1-7b1f724fdb7c", "BUILDKITE_AGENT_ENDPOINT=https://agent.buildkite.com/v3", "BUILDKITE_PLUGINS=[{\"github.com/JuliaCI/external-buildkite-buildkite-plugin#v1\":{\"version\":\"./.buildkite-external-version\",\"repo_url\":\"https://github.com/JuliaCI/julia-buildkite\"}}]", "PROGRAMFILES(X86)=C:\\Program Files (x86)", "BUILDKITE_GIT_CLEAN_FLAGS=-ffxdq", "DRIVERDATA=C:\\Windows\\System32\\Drivers\\DriverData", "JULIA_TEST_IS_BASE_CI=true", "BUILDKITE_COMMIT=6e64f1d251940af3f448ad84f6aebe0b4e750d36", "JULIA_LOAD_PATH=@;@stdlib", "BUILDKITE_PULL_REQUEST=52820", "EXEPATH=C:\\Program Files\\Git\\bin"]), ProcessExited(1)) [1]
 

@mkitti
Copy link
Contributor Author

mkitti commented Jan 10, 2024

I was getting myself very confused, and then I noticed these installation lines.

julia/Makefile

Line 291 in dceeafe

-$(INSTALL_M) $(wildcard $(build_private_libdir)/*.a) $(DESTDIR)$(private_libdir)/

julia/Makefile

Line 297 in dceeafe

-$(INSTALL_M) $(build_libdir)/libssp.dll.a $(DESTDIR)$(libdir)/

@mkitti
Copy link
Contributor Author

mkitti commented Jan 13, 2024

@vtjnash CI passes. Merge, please?

@vtjnash vtjnash merged commit c3836e1 into JuliaLang:master Jan 14, 2024
7 checks passed
KristofferC pushed a commit that referenced this pull request Aug 2, 2024
…dir (#52820)

Fix #51740

Since we are providing libssp.dll on Windows and we want to dynamically
link to it, exposing libssp.dll.a is necessary. The inconsistency is
that libjulia-codegen.so looks in build_libdir and build_private_libdir
while standard library precompilation looks in build_shlibdir and
build_private_dir.

(cherry picked from commit c3836e1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain:building Build system, or building Julia or its dependencies system:windows Affects only Windows
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Windows build fails on MinGW GCC 13 due to libssp changes
3 participants