Problem:
When compiling an executable with an aws-lc-sys dependency on ppc64le, one gets the linking error
error: linking with `powerpc64le-unknown-linux-gnu-gcc` failed: exit status: 1
|
= note: "powerpc64le-unknown-linux-gnu-gcc" "-m64" "<1 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/tmp/rustcp6xC2g/libaws_lc_sys-0c7338aab340370c.rlib" "<sysroot>/lib/rustlib/powerpc64le-unknown-linux-gnu/lib/libcompiler_builtins-*.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcp6xC2g/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/runner/work/foobar-rs/foobar-rs/target/powerpc64le-unknown-linux-gnu/release/build/aws-lc-sys-b44c4b2cfbb73435/out/build/artifacts" "-L" "<sysroot>/lib/rustlib/powerpc64le-unknown-linux-gnu/lib" "-o" "/home/runner/work/foobar-rs/foobar-rs/target/powerpc64le-unknown-linux-gnu/release/deps/foobar-ad8fefc90906bec4" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,--strip-all" "-nodefaultlibs"
= note: some arguments are omitted. use `--verbose` to show all linker arguments
= note: /usr/powerpc64le-unknown-linux-gnu/lib/gcc/powerpc64le-unknown-linux-gnu/7.5.0/../../../../powerpc64le-unknown-linux-gnu/bin/ld: /tmp/rustcp6xC2g/libaws_lc_sys-0c7338aab340370c.rlib(bcm.c.o):(.toc+0x70): undefined reference to `aws_lc_0_35_0_aes_hw_encrypt'
/usr/powerpc64le-unknown-linux-gnu/lib/gcc/powerpc64le-unknown-linux-gnu/7.5.0/../../../../powerpc64le-unknown-linux-gnu/bin/ld: /tmp/rustcp6xC2g/libaws_lc_sys-0c7338aab340370c.rlib(bcm.c.o):(.toc+0x78): undefined reference to `aws_lc_0_35_0_aes_hw_ctr32_encrypt_blocks'
/usr/powerpc64le-unknown-linux-gnu/lib/gcc/powerpc64le-unknown-linux-gnu/7.5.0/../../../../powerpc64le-unknown-linux-gnu/bin/ld: /tmp/rustcp6xC2g/libaws_lc_sys-0c7338aab340370c.rlib(bcm.c.o):(.toc+0x80): undefined reference to `aws_lc_0_35_0_gcm_gmult_p8'
/usr/powerpc64le-unknown-linux-gnu/lib/gcc/powerpc64le-unknown-linux-gnu/7.5.0/../../../../powerpc64le-unknown-linux-gnu/bin/ld: /tmp/rustcp6xC2g/libaws_lc_sys-0c7338aab340370c.rlib(bcm.c.o):(.toc+0x88): undefined reference to `aws_lc_0_35_0_gcm_ghash_p8'
/usr/powerpc64le-unknown-linux-gnu/lib/gcc/powerpc64le-unknown-linux-gnu/7.5.0/../../../../powerpc64le-unknown-linux-gnu/bin/ld: /tmp/rustcp6xC2g/libaws_lc_sys-0c7338aab340370c.rlib(bcm.c.o): in function `aws_lc_0_35_0_AES_encrypt':
bcm.c:(.text.aws_lc_0_35_0_AES_encrypt+0x3c): undefined reference to `aws_lc_0_35_0_aes_hw_encrypt'
/usr/powerpc64le-unknown-linux-gnu/lib/gcc/powerpc64le-unknown-linux-gnu/7.5.0/../../../../powerpc64le-unknown-linux-gnu/bin/ld: /tmp/rustcp6xC2g/libaws_lc_sys-0c7338aab340370c.rlib(bcm.c.o): in function `aws_lc_0_35_0_AES_decrypt':
bcm.c:(.text.aws_lc_0_35_0_AES_decrypt+0x3c): undefined reference to `aws_lc_0_35_0_aes_hw_decrypt'
/usr/powerpc64le-unknown-linux-gnu/lib/gcc/powerpc64le-unknown-linux-gnu/7.5.0/../../../../powerpc64le-unknown-linux-gnu/bin/ld: /tmp/rustcp6xC2g/libaws_lc_sys-0c7338aab340370c.rlib(bcm.c.o): in function `aws_lc_0_35_0_AES_set_encrypt_key':
bcm.c:(.text.aws_lc_0_35_0_AES_set_encrypt_key+0x54): undefined reference to `aws_lc_0_35_0_aes_hw_set_encrypt_key'
/usr/powerpc64le-unknown-linux-gnu/lib/gcc/powerpc64le-unknown-linux-gnu/7.5.0/../../../../powerpc64le-unknown-linux-gnu/bin/ld: /tmp/rustcp6xC2g/libaws_lc_sys-0c7338aab340370c.rlib(bcm.c.o): in function `aws_lc_0_35_0_AES_set_decrypt_key':
bcm.c:(.text.aws_lc_0_35_0_AES_set_decrypt_key+0x54): undefined reference to `aws_lc_0_35_0_aes_hw_set_decrypt_key'
/usr/powerpc64le-unknown-linux-gnu/lib/gcc/powerpc64le-unknown-linux-gnu/7.5.0/../../../../powerpc64le-unknown-linux-gnu/bin/ld: /tmp/rustcp6xC2g/libaws_lc_sys-0c7338aab340370c.rlib(bcm.c.o): in function `aws_lc_0_35_0_CRYPTO_ghash_init':
bcm.c:(.text.aws_lc_0_35_0_CRYPTO_ghash_init+0x58): undefined reference to `aws_lc_0_35_0_gcm_init_p8'
/usr/powerpc64le-unknown-linux-gnu/lib/gcc/powerpc64le-unknown-linux-gnu/7.5.0/../../../../powerpc64le-unknown-linux-gnu/bin/ld: /tmp/rustcp6xC2g/libaws_lc_sys-0c7338aab340370c.rlib(bcm.c.o): in function `aws_lc_0_35_0_aes_ctr_set_key':
bcm.c:(.text.aws_lc_0_35_0_aes_ctr_set_key+0x54): undefined reference to `aws_lc_0_35_0_aes_hw_set_encrypt_key'
collect2: error: ld returned 1 exit status
This is on linux (ubuntu-24.04, ppc64le, manylinux_2_28).
Relevant details
AWS-LC for Rust versions or commit:
aws-ls-rs: 1.15.2
aws-lc-sys: 0.35.0
Problem:
When compiling an executable with an
aws-lc-sysdependency onppc64le, one gets the linking errorThis is on
linux (ubuntu-24.04, ppc64le, manylinux_2_28).Relevant details
AWS-LC for Rust versions or commit:
aws-ls-rs:1.15.2aws-lc-sys:0.35.0