Skip to content

[OCaml] Add Windows / macOS pre-built binaries #11124

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

Merged
merged 1 commit into from
May 7, 2025

Conversation

topolarity
Copy link
Contributor

Locally I'm hitting:

┌ Warning: Minimum instruction set detected for lib/ocaml/stublibs/dllunixnat.dll is avx2, not x86_64 as desired.
└ @ BinaryBuilder.Auditor ~/.julia/packages/BinaryBuilder/gFhyp/src/Auditor.jl:358

If you know the appropriate -mtune or CFLAGS, I'll be happy to re-build to get a baseline-compatible binary

@giordano
Copy link
Member

giordano commented May 6, 2025

@topolarity topolarity force-pushed the ct/ocaml-binaries branch 3 times, most recently from b43ff55 to 3ede0a3 Compare May 6, 2025 18:17
@topolarity
Copy link
Contributor Author

topolarity commented May 6, 2025

Looks like the flags didn't make it a few spots in the build system.

Let me try again...

@topolarity
Copy link
Contributor Author

That was an adventure... JuliaPackaging/BinaryBuilder.jl#1380

@giordano
Copy link
Member

giordano commented May 7, 2025

is this good to go?

@topolarity
Copy link
Contributor Author

I still locally get some warnings:

┌ Warning: bin/ocamlopt.exe: Linked library api-ms-win-core-synch-l1-2-0.dll could not be resolved and could not be auto-mapped
└ @ BinaryBuilder.Auditor ~/.julia/dev/BinaryBuilder/src/Auditor.jl:447
┌ Warning: bin/ocamlopt.exe: Linked library VERSION.dll could not be resolved and could not be auto-mapped
└ @ BinaryBuilder.Auditor ~/.julia/dev/BinaryBuilder/src/Auditor.jl:447

but assuming those are benign, this is good to go

@giordano
Copy link
Member

giordano commented May 7, 2025

@topolarity
Copy link
Contributor Author

Looks like they are, yeah:

$ ls /cygdrive/c/Windows/System32/downlevel/ | grep api-ms-win-core-synch
api-ms-win-core-synch-l1-1-0.dll
api-ms-win-core-synch-l1-2-0.dll
$ ls /cygdrive/c/Windows/System32 | grep version
version.dll

There are a few more:

$ ls /cygdrive/c/Windows/System32/downlevel/
API-MS-Win-Core-Heap-Obsolete-L1-1-0.dll          api-ms-win-core-interlocked-l1-1-0.dll               api-ms-win-core-threadpool-legacy-l1-1-0.dll
API-MS-Win-Core-Kernel32-Private-L1-1-0.dll       api-ms-win-core-io-l1-1-0.dll                        api-ms-win-core-threadpool-private-l1-1-0.dll
API-MS-Win-Core-Kernel32-Private-L1-1-1.dll       api-ms-win-core-io-l1-1-1.dll                        api-ms-win-core-timezone-l1-1-0.dll
API-MS-Win-EventLog-Legacy-L1-1-0.dll             api-ms-win-core-kernel32-legacy-l1-1-0.dll           api-ms-win-core-url-l1-1-0.dll
API-MS-Win-Eventing-ClassicProvider-L1-1-0.dll    api-ms-win-core-kernel32-legacy-l1-1-1.dll           api-ms-win-core-util-l1-1-0.dll
API-MS-Win-Eventing-Controller-L1-1-0.dll         api-ms-win-core-libraryloader-l1-1-0.dll             api-ms-win-core-version-l1-1-0.dll
API-MS-Win-Eventing-Legacy-L1-1-0.dll             api-ms-win-core-libraryloader-l1-1-1.dll             api-ms-win-core-wow64-l1-1-0.dll
API-MS-Win-Eventing-Provider-L1-1-0.dll           api-ms-win-core-localization-l1-2-0.dll              api-ms-win-core-xstate-l1-1-0.dll
API-MS-Win-Security-Lsalookup-L2-1-0.dll          api-ms-win-core-localization-l1-2-1.dll              api-ms-win-crt-conio-l1-1-0.dll
API-MS-Win-Security-Lsalookup-L2-1-1.dll          api-ms-win-core-memory-l1-1-0.dll                    api-ms-win-crt-convert-l1-1-0.dll
API-MS-Win-core-file-l2-1-0.dll                   api-ms-win-core-memory-l1-1-1.dll                    api-ms-win-crt-environment-l1-1-0.dll
API-MS-Win-core-file-l2-1-1.dll                   api-ms-win-core-memory-l1-1-2.dll                    api-ms-win-crt-filesystem-l1-1-0.dll
API-MS-Win-core-localization-obsolete-l1-2-0.dll  api-ms-win-core-namedpipe-l1-1-0.dll                 api-ms-win-crt-heap-l1-1-0.dll
API-MS-Win-core-string-l2-1-0.dll                 api-ms-win-core-privateprofile-l1-1-0.dll            api-ms-win-crt-locale-l1-1-0.dll
API-MS-Win-core-string-obsolete-l1-1-0.dll        api-ms-win-core-privateprofile-l1-1-1.dll            api-ms-win-crt-math-l1-1-0.dll
API-MS-Win-core-xstate-l2-1-0.dll                 api-ms-win-core-processenvironment-l1-1-0.dll        api-ms-win-crt-multibyte-l1-1-0.dll
API-MS-Win-devices-config-L1-1-0.dll              api-ms-win-core-processenvironment-l1-2-0.dll        api-ms-win-crt-private-l1-1-0.dll
API-MS-Win-devices-config-L1-1-1.dll              api-ms-win-core-processthreads-l1-1-0.dll            api-ms-win-crt-process-l1-1-0.dll
API-MS-Win-security-lsapolicy-l1-1-0.dll          api-ms-win-core-processthreads-l1-1-1.dll            api-ms-win-crt-runtime-l1-1-0.dll
API-MS-Win-security-provider-L1-1-0.dll           api-ms-win-core-processthreads-l1-1-2.dll            api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-base-util-l1-1-0.dll                   api-ms-win-core-processtopology-obsolete-l1-1-0.dll  api-ms-win-crt-string-l1-1-0.dll
api-ms-win-core-com-l1-1-0.dll                    api-ms-win-core-profile-l1-1-0.dll                   api-ms-win-crt-time-l1-1-0.dll
api-ms-win-core-comm-l1-1-0.dll                   api-ms-win-core-realtime-l1-1-0.dll                  api-ms-win-crt-utility-l1-1-0.dll
api-ms-win-core-console-l1-1-0.dll                api-ms-win-core-registry-l1-1-0.dll                  api-ms-win-eventing-consumer-l1-1-0.dll
api-ms-win-core-datetime-l1-1-0.dll               api-ms-win-core-registry-l2-1-0.dll                  api-ms-win-security-base-l1-1-0.dll
api-ms-win-core-datetime-l1-1-1.dll               api-ms-win-core-rtlsupport-l1-1-0.dll                api-ms-win-security-cryptoapi-l1-1-0.dll
api-ms-win-core-debug-l1-1-0.dll                  api-ms-win-core-shlwapi-legacy-l1-1-0.dll            api-ms-win-security-sddl-l1-1-0.dll
api-ms-win-core-debug-l1-1-1.dll                  api-ms-win-core-shlwapi-obsolete-l1-1-0.dll          api-ms-win-service-core-l1-1-0.dll
api-ms-win-core-delayload-l1-1-0.dll              api-ms-win-core-shutdown-l1-1-0.dll                  api-ms-win-service-core-l1-1-1.dll
api-ms-win-core-errorhandling-l1-1-0.dll          api-ms-win-core-string-l1-1-0.dll                    api-ms-win-service-management-l1-1-0.dll
api-ms-win-core-errorhandling-l1-1-1.dll          api-ms-win-core-stringansi-l1-1-0.dll                api-ms-win-service-management-l2-1-0.dll
api-ms-win-core-fibers-l1-1-0.dll                 api-ms-win-core-stringloader-l1-1-1.dll              api-ms-win-service-private-l1-1-0.dll
api-ms-win-core-fibers-l1-1-1.dll                 api-ms-win-core-synch-l1-1-0.dll                     api-ms-win-service-private-l1-1-1.dll
api-ms-win-core-file-l1-1-0.dll                   api-ms-win-core-synch-l1-2-0.dll                     api-ms-win-service-winsvc-l1-1-0.dll
api-ms-win-core-file-l1-2-0.dll                   api-ms-win-core-sysinfo-l1-1-0.dll                   api-ms-win-shcore-stream-l1-1-0.dll
api-ms-win-core-file-l1-2-1.dll                   api-ms-win-core-sysinfo-l1-2-0.dll                   ucrtbase.dll
api-ms-win-core-handle-l1-1-0.dll                 api-ms-win-core-sysinfo-l1-2-1.dll
api-ms-win-core-heap-l1-1-0.dll                   api-ms-win-core-threadpool-l1-2-0.dll

Should we add them all?

@giordano
Copy link
Member

giordano commented May 7, 2025

Yes, thanks!

@giordano
Copy link
Member

giordano commented May 7, 2025

The macOS builds reference absolute paths on your machine:

┌ Warning: bin/ocamldoc.opt: Linked library /opt/homebrew/opt/zstd/lib/libzstd.1.dylib could not be resolved and could not be auto-mapped
└ @ BinaryBuilder.Auditor /cache/julia-buildkite-plugin/depots/e2fd9734-29d8-45cd-b0eb-59f7104f3131/packages/BinaryBuilder/86I4Q/src/Auditor.jl:447

@topolarity
Copy link
Contributor Author

The zstd feature must have gotten auto-enabled (since configure noticed the library on my system)

It's not required (and our other builds don't have it), so let me disable it real quick.

OCaml's build system requires executing host artifacts on the build
machine (and we need the patches for relocatability so no publicly
distributed binaries work for us either)
@topolarity topolarity force-pushed the ct/ocaml-binaries branch from 6145f97 to 9c0ebaf Compare May 7, 2025 00:41
@topolarity
Copy link
Contributor Author

Alright, should be good to go now!

@giordano giordano enabled auto-merge (squash) May 7, 2025 00:46
@giordano giordano merged commit b00e315 into JuliaPackaging:master May 7, 2025
8 checks passed
@topolarity topolarity deleted the ct/ocaml-binaries branch May 7, 2025 00:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants