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

Enable ppc64le #29

Merged
merged 11 commits into from
Oct 5, 2024
4 changes: 4 additions & 0 deletions .azure-pipelines/azure-pipelines-linux.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

41 changes: 41 additions & 0 deletions .ci_support/linux_ppc64le_.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
c_compiler:
- clang
c_compiler_version:
- '18'
c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
cdt_name:
- cos7
channel_sources:
- conda-forge
channel_targets:
- conda-forge main
cxx_compiler:
- clangxx
cxx_compiler_version:
- '18'
docker_image:
- quay.io/condaforge/linux-anvil-cos7-x86_64
giflib:
- '5.2'
jpeg:
- '9'
libhwy:
- '1.1'
libjpeg_turbo:
- '3'
libpng:
- '1.6'
openexr:
- '3.2'
target_platform:
- linux-ppc64le
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- - c_stdlib_version
- cdt_name
zlib:
- '1'
2 changes: 2 additions & 0 deletions .scripts/build_steps.sh

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions .scripts/run_win_build.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 8 additions & 1 deletion README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion build-locally.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions recipe/conda_build_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Use clang instead of GCC due to ICE with GCC versions 12 & 13 on ppc64le.
# For more details, see: https://github.com/libjxl/libjxl/issues/3387
c_compiler:
- clang # [ppc64le]
c_compiler_version:
- 18 # [ppc64le]
Copy link
Member

Choose a reason for hiding this comment

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

I saw that the version must be specified (475c28f). I'm wondering if this could be automatically updated by conda-forge-admin.

Related: https://conda-forge.org/news/2024/04/30/clang-everywhere/

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The conda_build_config.yaml file is used to manually override or specify the compiler and its version. I followed the article you referred to (please see the summary) because the package failed to build with GCC.

Copy link
Member

Choose a reason for hiding this comment

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

Also, could you add a comment with a link to related issues saying that we forced clang due to ICE in GCC?

Copy link
Member

@sshockwave sshockwave Oct 4, 2024

Choose a reason for hiding this comment

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

The conda_build_config.yaml file is used to manually override or specify the compiler and its version. I followed the article you referred to (please see the summary) because the package failed to build with GCC.

I know, I'm just asking whether we have to manually upgrade the compiler version in the future to be compatible with the pinned dependencies. It seems that the Clang toolchain hasn't been pinned yet and it might cause problems due to conflicting C++ std library versions.

Edit: I just checked the build and it seems it's linked with libstdcxx. That solves my problem!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hm, I'm not sure about pinning the Clang toolchain. Feel free to make any changes that make sense to you.

cxx_compiler:
- clangxx # [ppc64le]
cxx_compiler_version:
- 18 # [ppc64le]
5 changes: 1 addition & 4 deletions recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,7 @@ source:
folder: third_party/libjpeg-turbo

build:
number: 0
# it seems that ppc64le triggers an internal compiler error
# https://github.com/conda-forge/libjxl-split-feedstock/issues/20
skip: true # [ppc64le]
number: 1

requirements:
build:
Expand Down