Skip to content

MAINT: update oldest supported GCC version from 8.4 to 9.3 #28102

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
Jan 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
MAINT: update oldest supported GCC version from 8.4 to 9.3
This hasn't been updated in quite a while, and 8.4 just ran into another
SIMD-related bug in #28030. Other considerations:

- GCC 9.3.0 will be >5 years old by the time we release NumPy 2.3.0
- All our own builds and relevant manylinux images use GCC >=10
- SciPy upgraded to >=9.1 a year ago and that was fine
- Ubuntu 20.04 LTS has GCC 9.3.0, there don't seem to be relevant distro
  versions which still require 8.x

xref https://scipy.github.io/devdocs/dev/toolchain.html#compilers and
https://github.com/mayeut/pep600_compliance for relevant pages to track
compiler and distro versions.
  • Loading branch information
rgommers committed Jan 5, 2025
commit 13d148d156fa5fe19fdfd4817545eea4663fe178
20 changes: 10 additions & 10 deletions .github/workflows/linux_simd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,27 +85,27 @@ jobs:
with:
python-version: '3.11'

- name: Install GCC/8/9
- name: Install GCC9/10
run: |
echo "deb http://archive.ubuntu.com/ubuntu focal main universe" | sudo tee /etc/apt/sources.list.d/focal.list
sudo apt update
sudo apt install -y g++-8 g++-9
sudo apt install -y g++-9 g++-10

- name: Enable gcc-8
- name: Enable gcc-9
run: |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 1
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 1
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 1

- uses: ./.github/meson_actions
name: Build/Test against gcc-8
name: Build/Test against gcc-9

- name: Enable gcc-9
- name: Enable gcc-10
run: |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 2
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 2
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 2
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 2

- uses: ./.github/meson_actions
name: Build/Test against gcc-9
name: Build/Test against gcc-10

specialize:
needs: [baseline_only]
Expand Down
6 changes: 6 additions & 0 deletions doc/release/upcoming_changes/28101.change.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
The minimum supported GCC version is now 9.3.0
----------------------------------------------
The minimum supported version was updated from 8.4.0 to 9.3.0,
primarily in order to reduce the chance of platform-specific bugs in old GCC
versions from causing issues.

4 changes: 2 additions & 2 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ cy = meson.get_compiler('cython')

# Check compiler is recent enough (see the SciPy Toolchain Roadmap for details)
if cc.get_id() == 'gcc'
if not cc.version().version_compare('>=8.4')
error('NumPy requires GCC >= 8.4')
if not cc.version().version_compare('>=9.3')
error('NumPy requires GCC >= 9.3')
endif
elif cc.get_id() == 'msvc'
if not cc.version().version_compare('>=19.20')
Expand Down
Loading
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy