Skip to content

Commit

Permalink
AWS-LC build on MacOS-14 is currently failing
Browse files Browse the repository at this point in the history
  • Loading branch information
pennyannn committed Aug 21, 2024
1 parent 29a4376 commit 7883b9e
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 10 deletions.
15 changes: 13 additions & 2 deletions .github/workflows/makefile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,22 @@ jobs:
path: .lake
key: ${{ runner.os }}-lake

- name: Build AWS-LC (MacOS)
if : ${{ runner.os == 'macOS' }}
- name: Setup Go (Ubuntu)
if: ${{ runner.os != 'macOS' }}
uses: actions/setup-go@v4
with:
go-version: '>=1.18'

- name: Build AWS-LC (Ubuntu)
if : ${{ runner.os != 'macOS' }}
run: |
./scripts/build_awslc.sh
# - name: Run ELFLoader Tests for AWS-LC (MacOS)
# if : ${{ runner.os == 'macOS' }}
# run: |
# make awslc_elftests

- name: Run LNSym Makefile (Ubuntu)
if : ${{ runner.os != 'macOS' }}
run: |
Expand Down
27 changes: 27 additions & 0 deletions scripts/build_awslc.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# Released under Apache 2.0 license as described in the file LICENSE.
# Author(s): Yan Peng

# https://cmake.org/cmake/help/book/mastering-cmake/chapter/Cross%20Compiling%20With%20CMake.html

# the name of the target operating system
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)

# which compilers to use for C and C++
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)

# ------------
# where is the target environment located
set(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu)
set(CMAKE_SYSROOT /usr/aarch64-linux-gnu)

# adjust the default behavior of the FIND_XXX() commands:
# search programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# search headers and libraries in the target environment
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
# ------------
33 changes: 25 additions & 8 deletions scripts/build_awslc.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash

# Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# Released under Apache 2.0 license as described in the file LICENSE.
Expand All @@ -10,16 +10,33 @@ set -o xtrace
# Remember where LNSym is
LNSym_DIR=${PWD}

MICRO_ARCH="neoverse-n1"
TARGET="aarch64-unknown-linux-gnu"
export LDFLAGS="-fuse-ld=lld"

find / | grep "Scrt1.o"

# Install dependencies
brew install ninja golang
sudo apt-get update
sudo apt-get install -y cmake clang ninja-build

# Fetching and building AWS-LC
# Fetching AWS-LC
git clone https://github.com/aws/aws-lc.git $HOME/aws-lc --depth 1
cd $HOME/aws-lc; mkdir aws-lc-build; cd aws-lc-build
cmake -GNinja -DKEEP_ASM_LOCAL_SYMBOLS=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo ../
ninja
cd $HOME/aws-lc
# Build AWS-LC
mkdir aws-lc-build; cd aws-lc-build
cmake -GNinja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DKEEP_ASM_LOCAL_SYMBOLS=1 \
-DCMAKE_TOOLCHAIN_FILE="${LNSym_DIR}/scripts/build_awslc.cmake" \
-DCMAKE_C_FLAGS="-mcpu=${MICRO_ARCH}" \
-DCMAKE_CXX_FLAGS="-mcpu=${MICRO_ARCH}" \
-DCMAKE_ASM_FLAGS="-mcpu=${MICRO_ARCH}" \
-DCMAKE_C_COMPILER_TARGET=$TARGET \
-DCMAKE_CXX_COMPILER_TARGET=$TARGET \
-DCMAKE_ASM_COMPILER_TARGET=$TARGET \
../
ninja-build

# Move crypto_test to LNSym
cp -f crypto/crypto_test ${LNSym_DIR}/Tests/ELFParser/Data/crypto_test

cd ${LNSym_DIR}

0 comments on commit 7883b9e

Please sign in to comment.