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

[win] Backport win MSYS2 build pr #46988

Merged
merged 3 commits into from
Oct 8, 2022

Conversation

inkydragon
Copy link
Member

fix build error: "ERROR: Too few special library names specified, check LOADER_BUILD_DEP_LIBS and friends!"

@inkydragon
Copy link
Member Author

Now, Windows build works well, but there is something wrong with SparseArrays.

@inkydragon inkydragon added building Build system, or building Julia or its dependencies system:windows Affects only Windows labels Sep 30, 2022
@DilumAluthge DilumAluthge added the release Release management and versioning. label Oct 1, 2022
inkydragon and others added 3 commits September 30, 2022 23:38
* Makefile: MSYS2: close path conversion for `DEP_LIBS`

Automatic path conversion will replace `:` with `;`

* Makefile: MSYS2: use `cygpath` for path convert

ref: https://www.msys2.org/docs/filesystem-paths/#manual-unix-windows-path-conversion

* devdoc/win/msys2: add build steps

* devdoc/win/msys2: Add x86/x64 build notes

* devdoc/win/msys2: apply sugestions

Co-Authored-By: Elliot Saba <staticfloat@gmail.com>

* Instead of `CC_WITH_ENV`, scope environment variables to targets

* Fix whitespace

Co-authored-by: Elliot Saba <staticfloat@gmail.com>
This was causing our rewriting of the loader's RPATH emulation to fail
after running `make install`, as MSYS2 was rewriting our list that looks
like:

```
../bin/libgcc_s_seh-1.dll:../bin/libopenlibm.dll:@../bin/libjulia-internal.dll:@../bin/libjulia-codegen.dll:
```

Into one that looked like:
```
..\bin\libgcc_s_seh-1.dll;..\bin\libopenlibm.dll;@..\bin\libjulia-internal.dll;@..\bin\libjulia-codegen.dll;
```

By exporting `MSYS2_ARG_CONV_EXCL='*'` for all `stringreplace`
invocations, we dodge this issue, as documented by MSYS2 [0].

[0] https://www.msys2.org/wiki/Porting/#filesystem-namespaces
Tragically, I believe MSYS2 is messing with options such as
`/VERYSILENT` turning them instead into `C:\msys2\VERYSILENT` or
similar.
@DilumAluthge
Copy link
Member

@staticfloat Can you review this?

@DilumAluthge DilumAluthge reopened this Oct 4, 2022
@DilumAluthge
Copy link
Member

@staticfloat Is this good to merge? I'm seeing failures in LinearAlgebra/special on 32-bit platforms, but I'm not sure if that's an existing problem.

@staticfloat staticfloat merged commit 7c4ac37 into JuliaLang:backports-release-1.8 Oct 8, 2022
@staticfloat
Copy link
Member

I believe those are not related to this PR

@inkydragon inkydragon deleted the win-msys2 branch October 8, 2022 16:37
KristofferC pushed a commit that referenced this pull request Oct 28, 2022
* Build/win: Build with MSYS2 (#46140)

* Makefile: MSYS2: close path conversion for `DEP_LIBS`

Automatic path conversion will replace `:` with `;`

* Makefile: MSYS2: use `cygpath` for path convert

ref: https://www.msys2.org/docs/filesystem-paths/#manual-unix-windows-path-conversion

* devdoc/win/msys2: add build steps

* devdoc/win/msys2: Add x86/x64 build notes

* devdoc/win/msys2: apply sugestions

Co-Authored-By: Elliot Saba <staticfloat@gmail.com>

* Instead of `CC_WITH_ENV`, scope environment variables to targets

* Fix whitespace

Co-authored-by: Elliot Saba <staticfloat@gmail.com>

* Disable MSYS2's path munging for `stringreplace` (#46803)

This was causing our rewriting of the loader's RPATH emulation to fail
after running `make install`, as MSYS2 was rewriting our list that looks
like:

```
../bin/libgcc_s_seh-1.dll:../bin/libopenlibm.dll:@../bin/libjulia-internal.dll:@../bin/libjulia-codegen.dll:
```

Into one that looked like:
```
..\bin\libgcc_s_seh-1.dll;..\bin\libopenlibm.dll;@..\bin\libjulia-internal.dll;@..\bin\libjulia-codegen.dll;
```

By exporting `MSYS2_ARG_CONV_EXCL='*'` for all `stringreplace`
invocations, we dodge this issue, as documented by MSYS2 [0].

[0] https://www.msys2.org/wiki/Porting/#filesystem-namespaces

* [win] Disable MSYS2 path munging when calling `is.exe` (#46867)

Tragically, I believe MSYS2 is messing with options such as
`/VERYSILENT` turning them instead into `C:\msys2\VERYSILENT` or
similar.

Co-authored-by: Elliot Saba <staticfloat@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
building Build system, or building Julia or its dependencies release Release management and versioning. system:windows Affects only Windows
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants