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

support CLANG32 system too #143

Merged
merged 1 commit into from
Jun 16, 2021
Merged

support CLANG32 system too #143

merged 1 commit into from
Jun 16, 2021

Conversation

past-due
Copy link
Contributor

No description provided.

@Biswa96
Copy link
Member

Biswa96 commented Jun 15, 2021

Remember clang32 has only minimal toolchain (compiler, crt) packages, not every libraries.

@past-due
Copy link
Contributor Author

past-due commented Jun 15, 2021

Remember clang32 has only minimal toolchain (compiler, crt) packages, not every libraries.

Yep, but fortunately that's all we need. 😄

@jeremyd2019
Copy link
Member

I have been thinking it may be about time to enable clang32 for more packages.

@Biswa96
Copy link
Member

Biswa96 commented Jun 15, 2021

Wondering how many people are actually using 32bit OS for actual work. I know only one.

@jeremyd2019
Copy link
Member

I don't know about actually using 32-bit OSes, but I've seen @revelator and @past-due now express interest in the clang32 toolchain

@past-due
Copy link
Contributor Author

past-due commented Jun 15, 2021

I don't know about actually using 32-bit OSes, but I've seen @revelator and @past-due now express interest in the clang32 toolchain

Indeed, the toolchain is the particular area of interest (at least until there's a clang-cross environment 😎). Believe it or not, we still have folks who want 32-bit Windows binaries.

(EDIT: One project is still at about 20% x86 build downloads, as a data point.)

@lazka
Copy link
Member

lazka commented Jun 15, 2021

@past-due just to be sure: you are aware that our clang32 targets ucrt and is thus more or less win10 only?

@past-due
Copy link
Contributor Author

past-due commented Jun 15, 2021

@past-due just to be sure: you are aware that our clang32 targets ucrt and is thus more or less win10 only?

I am aware of the UCRT targeting, however the UCRT is available for (and serviced by Windows Update on) versions of Windows prior to Windows 10 as well. (It's considered a Windows component, even on earlier versions of Windows. And there are several options to ensure it's installed.)

Reference: https://docs.microsoft.com/en-us/cpp/porting/upgrade-your-code-to-the-universal-crt?view=msvc-160#deployment-and-redistribution-of-the-universal-crt

Because the UCRT is now a Microsoft Windows operating system component, it is included as part of the operating system in Windows 10 and is available through Windows Update for older operating systems, Windows Vista through Windows 8.1. A redistributable version is available for Windows XP. As an operating system component, UCRT updates and servicing are managed by Windows Update independently of Visual Studio and Microsoft C++ compiler versions.

@mati865
Copy link

mati865 commented Jun 15, 2021

I hope that you are aware that there can be no support for clang32 subsystem from MSYS2 because of address space constrains. Getting 32-bit LLVM 12 to build itself was already hard so we might have to drop it at any LLVM upgrade.

@past-due
Copy link
Contributor Author

I hope that you are aware that there can be no support for clang32 subsystem from MSYS2 because of address space constrains. Getting 32-bit LLVM 12 to build itself was already hard so we might have to drop it at any LLVM upgrade.

Presumably this same concern would not apply to a clang-cross environment, as described in msys2/MINGW-packages#8736 and is being worked on in msys2/MINGW-packages#8762?

Once that toolchain exists, it could theoretically be used to build the clang32 packages?

@mati865
Copy link

mati865 commented Jun 15, 2021

Once that toolchain exists, it could theoretically be used to build the clang32 packages?

That would probably require changing every PKGBUILD or inventing yet another subsystem.

@revelator
Copy link

most of the adress space restraints seem to be fixed if defaulting to large adress aware on 32 bit builds atleast im having no problems since i started using it :). UCRT is supported back to atleast vista though you have to install it manually, XP support might be a strecth though. Atm most problems are related to the clang tools not supporting the workarounds the gnu compilers have established to keep compatibility with windows builds, like version scripting etc. It would also be rather easy for a developer to just change the runtime from UCRT to MSVC if needed though they would have to do this themself.

@eine eine merged commit 032520c into msys2:master Jun 16, 2021
@eine
Copy link
Collaborator

eine commented Jun 16, 2021

Thanks!

@past-due past-due deleted the add_clang_32 branch June 16, 2021 21:09
@past-due
Copy link
Contributor Author

@eine Actually, despite CI passing, it does not appear to be downloading the clang32.db, and attempts to install mingw-w64-clang-i686-* packages fail. Hmm.

@lazka
Copy link
Member

lazka commented Jun 16, 2021

we didn't add any servers for it in pacman.conf

@past-due
Copy link
Contributor Author

we didn't add any servers for it in pacman.conf

Ah, looks like we need a /etc/pacman.d/mirrorlist.clang32 as well.

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.

7 participants