-
Notifications
You must be signed in to change notification settings - Fork 50
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
Build failed at target: aarch64-pc-windows-msvc #376
Comments
For Windows/ARM64, the build for AWS-LC (specifically its assembly code) requires the use of We could potentially provide you a temporary workaround by facilitating a build that only uses the C-implementation (i.e., I believe the following tasks will need to be completed for this:
|
Hi @justsmth . I am also having the same issue but with the Here is my Dockerfile: FROM rust:latest
RUN apt-get update && \
apt-get install -y curl build-essential gcc-multilib g++-multilib libssl-dev pkg-config jq cmake libclang-dev llvm-dev clang git wget mingw-w64 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Compile NASM from source for windows-gnu
RUN wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.gz && \
tar -xzf nasm-2.16.01.tar.gz && \
cd nasm-2.16.01/ && \
./configure && \
make && \
make install && \
cd .. && \
rm -rf nasm-2.16.01*
WORKDIR /usr/src/myappname
ENV TAG=0.7.18
COPY . .
RUN chmod +x release.sh upload.sh
CMD ["./release.sh"] The main command that builds the binary in release.sh is OPENSSL_LIB_DIR=/usr/lib OPENSSL_INCLUDE_DIR=/usr/include/openssl PKG_CONFIG_PATH=/usr/lib/pkgconfig CARGO_TARGET_DIR="./target" cargo build --release --target x86_64-pc-windows-gnu --bin "surveilr" >&2 Lastly, here is the log for the build:
|
The fix for this was recently merged into AWS-LC: aws/aws-lc#1492 We should pick up this fix in the 0.15.0 release of |
Okay, that's perfect. Thanks. |
If you have a build problem on That platform should build and is used throughout our CI. |
Hi @justsmth, I wanted to ask if there's any update on the 0.15.0 release. |
Same happened on x86_64-pc-windows-msvc
|
@zonyitoo -- The issue there is that the NASM assembler was not found:
The section here in the User Guide provides instructions on installing NASM. |
@Lilit0x -- Support for |
Hi @justsmth . Thanks for the update. I updated I switched to using a github hosted runner like you have in your CI. jobs:
windows-release:
name: release x86_64-pc-windows-gnu
runs-on: windows-latest
strategy:
matrix:
toolchain: [stable]
triple:
- { target: x86_64-pc-windows-gnu, cross: false }
steps:
- uses: ilammy/setup-nasm@v1
- uses: actions/checkout@v2
with:
repository: opsfolio/resource-surveillance
token: ${{ secrets.GH_PAT }}
ref: 'main'
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
override: true
target: ${{ matrix.triple.target }}
default: true
- name: Get Release Upload URL
id: get_upload_url
uses: actions/github-script@v5
with:
script: |
const tag = process.env.GITHUB_REF.split('/').pop();
const releases = await github.rest.repos.listReleases({
owner: context.repo.owner,
repo: context.repo.repo,
});
const release = releases.data.find(release => release.tag_name === tag);
if (!release) {
throw new Error(`Release not found for tag ${tag}`);
}
return release.upload_url;
result-encoding: string
env:
GITHUB_REF: ${{ github.ref }}
- name: Suppress C warnings
run: echo "CFLAGS=-Wno-maybe-uninitialized" >> $GITHUB_ENV
- name: Build with Cargo
run: |
cargo build --release --target ${{ matrix.triple.target }}
.\target\${{ matrix.triple.target }}\release\surveilr.exe --help
Compress-Archive -Path .\target\${{ matrix.triple.target }}\release\surveilr.exe -DestinationPath resource-surveillance_${{ github.ref_name }}_${{ matrix.triple.target }}.zip
- name: Upload To Releases
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.get_upload_url.outputs.result }}
asset_path: resource-surveillance_${{ github.ref_name }}_${{ matrix.triple.target }}.zip
asset_name: resource-surveillance_${{ github.ref_name }}_${{ matrix.triple.target }}.zip
asset_content_type: application/zip Here is the error log:
|
Hi @Lilit0x - would you submit this as a separate issue regarding Are you able to reproduce this build error from a command line? I see the compiler being used in Thanks! |
Hello, I, myself, found challenges at trying to build for Windows ARM64. The error I get is different.
Link to the complete build stderr https://github.com/jawah/qh3/actions/runs/8742762646/job/23991806269 regards, |
## Issues Needed for: aws/aws-lc-rs#376 ## Description * Updated `CMakeLists.txt` to support a Windows build using `clang-cl`. * Adds CI build/test of Windows/x64 using clang-cl. * Adds CI build of Windows/ARM64 using clang-cl. (Currently there are no runners available for testing Windows/ARM64 executables.) ## Callout * This change removes debug information by default from the "Release" build type. Alternatively, one may retain debug information in the artifacts by adding the `-ggdb` build flag via **CMAKE_C_FLAGS** or by using the "Relwithdebinfo" or "Debug" build types. By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.
Thank you for tackling this issue. I tried the newest tags and could not generate binaries as of yet.
And ends up with an opaque error message:
Link to the complete logs: https://github.com/jawah/qh3/actions/runs/9233306038/job/25405631144?pr=34 regards, |
In the CMake command I see that a custom toolchain is being passed in:
I suspect that this is somehow conflicting/overriding with the |
Ok, I can reproduce this error locally using
|
Problem:
My application is using tokio-rustls 0.26.0, and tokio-rustls relies on aws_lc_rs. I built my app on github action and it failed to build on aarch64-pc-windows-msvc. Can someone help me?
github action config
Build log:
The text was updated successfully, but these errors were encountered: