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

chore(architecture): Disable non 64-bit architecture #60494

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

lbartoletti
Copy link
Member

Description

Support for 32-bit architectures is becoming increasingly obsolete. For QGIS:

  • As stated on the official download page: "Since QGIS 3.20 we only ship 64-bit Windows executables."
  • macOS is exclusively 64-bit
  • Support for 32-bit systems is gradually deprecating on major distributions such as Debian, Fedora, and FreeBSD.
  • 32-bit ARM, RISC-V, Power architectures are rarely used and tested, while newer versions of these architectures run on 64-bit (and also rarely used and tested except arm64, maybe).
  • In the past, we also made patches for i386—I still remember the painful -mllvm -inline-threshold=128 ... This will be a good opportunity to start cleaning things up.

To my knowledge, there is no official statement from QGIS explicitly dropping 32-bit support, apart from the information mentioned on the download page. But if there has been an official announcement that I missed, at least this formalizes it. 😄

@lbartoletti lbartoletti self-assigned this Feb 6, 2025
@github-actions github-actions bot added this to the 3.42.0 milestone Feb 6, 2025
Copy link

github-actions bot commented Feb 6, 2025

🪟 Windows builds

Download Windows builds of this PR for testing.
Debug symbols for this build are available here.
(Built from commit e585570)

🪟 Windows Qt6 builds

Download Windows Qt6 builds of this PR for testing.
(Built from commit e585570)

@m-kuhn
Copy link
Member

m-kuhn commented Feb 6, 2025

We still build qfield for 32 bit android devices.

@lbartoletti
Copy link
Member Author

We still build qfield for 32 bit android devices.

@m-kuhn ah mince. Sounds like a good argument against this PR :/
I don't know anything about Android. You still have a lot of 32-bit devices in circulation? Is there an end date for support?

@m-kuhn
Copy link
Member

m-kuhn commented Feb 7, 2025

Not a lot, it's marginal. If we lose support it's not the end of the world -- but why hard disable?

@@ -62,6 +62,10 @@ set(COMPLETE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINO
set(RELEASE_NAME "Master")
project(qgis VERSION ${COMPLETE_VERSION})

if(NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
Copy link
Contributor

Choose a reason for hiding this comment

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

More an educational comment than anything, but there are architectures, like CHERI, with 128-bit pointers: https://lwn.net/Articles/909265/ , so if we don't want to exclude them but just 32-bit, the test could be "CMAKE_SIZEOF_VOID_P EQUAL 4"
I've experimented that a bit with GDAL (for fun) ~ 2 years ago, and that mostly worked, except in all places where one serializes a pointer to text ( printf("%p) ) and deserialize it back to pointer ( sscanf("%p)" ).

@nyalldawson
Copy link
Collaborator

I think we should close this. There's no strong benefit to dropping 32 bit right now, and a clear downside to doing so.

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.

4 participants