Skip to content

[Bug] Compilation fails for ARCH s390x and ppc64el #394

Closed
@troyanov

Description

@troyanov

What are you really trying to do?

I am trying to cross compile core-sdk in order to use python-sdk on s390x and ppc64el architectures

Describe the bug

error: failed to run custom build command for `ring v0.16.20`

Caused by:
  process didn't exit successfully: `/Users/troyanov/Documents/work/canonical/temporalio/sdk-core/target/debug/build/ring-f698636ef115f979/build-script-build` (exit status: 101)
  --- stderr
  thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /Users/troyanov/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ring-0.16.20/build.rs:358:10
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...

Minimal Reproduction

cargo build --target=s390x-unknown-linux-gnu
cargo build --target=powerpc64le-unknown-linux-gnu

(make sure required targets are installed, if not add them with rustup target add)

Environment/Versions

❯ git rev-parse @
617612aa419d687aebabcf0258ac86f5c36df189

❯ rustc --version
rustc 1.71.0 (8ede3aae2 2023-07-12)

❯ rustup --version
rustup 1.26.0 (5af9b9484 2023-04-05)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.71.0 (8ede3aae2 2023-07-12)`

❯ sysctl -n machdep.cpu.brand_string
Apple M1 Pro

Additional context

Compilation issue should be fixed in the recent ring v0.17.0 version.
Judging based on the following issues were marked as fixed:

ring v0.16.20
├── rustls v0.21.7
│   ├── hyper-rustls v0.24.1
│   │   └── reqwest v0.11.21
│   │       └── temporal-sdk-core v0.1.0 (/cyberfarm/temporalio/sdk-core/core)
│   │           ├── temporal-sdk v0.1.0-alpha.1 (/cyberfarm/temporalio/sdk-core/sdk)
│   │           │   └── temporal-sdk-core-test-utils v0.1.0 (/cyberfarm/temporalio/sdk-core/test-utils)
│   │           │       [dev-dependencies]
│   │           │       └── temporal-sdk-core v0.1.0 (/cyberfarm/temporalio/sdk-core/core) (*)
│   │           │   [dev-dependencies]
│   │           │   └── temporal-sdk-core v0.1.0 (/cyberfarm/temporalio/sdk-core/core) (*)
│   │           └── temporal-sdk-core-test-utils v0.1.0 (/cyberfarm/temporalio/sdk-core/test-utils) (*)
│   ├── reqwest v0.11.21 (*)
│   └── tokio-rustls v0.24.1
│       ├── hyper-rustls v0.24.1 (*)
│       ├── reqwest v0.11.21 (*)
│       └── tonic v0.9.2
│           ├── opentelemetry-otlp v0.13.0
│           │   └── temporal-sdk-core v0.1.0 (/cyberfarm/temporalio/sdk-core/core) (*)
│           ├── opentelemetry-proto v0.3.0
│           │   └── opentelemetry-otlp v0.13.0 (*)
│           ├── temporal-client v0.1.0 (/cyberfarm/temporalio/sdk-core/client)
│           │   ├── temporal-sdk v0.1.0-alpha.1 (/cyberfarm/temporalio/sdk-core/sdk) (*)
│           │   ├── temporal-sdk-core v0.1.0 (/cyberfarm/temporalio/sdk-core/core) (*)
│           │   └── temporal-sdk-core-test-utils v0.1.0 (/cyberfarm/temporalio/sdk-core/test-utils) (*)
│           ├── temporal-sdk v0.1.0-alpha.1 (/cyberfarm/temporalio/sdk-core/sdk) (*)
│           ├── temporal-sdk-core v0.1.0 (/cyberfarm/temporalio/sdk-core/core) (*)
│           ├── temporal-sdk-core-api v0.1.0 (/cyberfarm/temporalio/sdk-core/core-api)
│           │   ├── temporal-client v0.1.0 (/cyberfarm/temporalio/sdk-core/client) (*)
│           │   ├── temporal-sdk v0.1.0-alpha.1 (/cyberfarm/temporalio/sdk-core/sdk) (*)
│           │   ├── temporal-sdk-core v0.1.0 (/cyberfarm/temporalio/sdk-core/core) (*)
│           │   └── temporal-sdk-core-test-utils v0.1.0 (/cyberfarm/temporalio/sdk-core/test-utils) (*)
│           └── temporal-sdk-core-protos v0.1.0 (/cyberfarm/temporalio/sdk-core/sdk-core-protos)
│               ├── temporal-client v0.1.0 (/cyberfarm/temporalio/sdk-core/client) (*)
│               ├── temporal-sdk v0.1.0-alpha.1 (/cyberfarm/temporalio/sdk-core/sdk) (*)
│               ├── temporal-sdk-core v0.1.0 (/cyberfarm/temporalio/sdk-core/core) (*)
│               ├── temporal-sdk-core-api v0.1.0 (/cyberfarm/temporalio/sdk-core/core-api) (*)
│               └── temporal-sdk-core-test-utils v0.1.0 (/cyberfarm/temporalio/sdk-core/test-utils) (*)
├── rustls-webpki v0.101.6
│   └── rustls v0.21.7 (*)
└── sct v0.7.0
    └── rustls v0.21.7 (*)

Since core-sdk doesn't depend directly on the ring crate, dependant dependencies should be tracked.
Most of them depend on ring through rustls

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions