diff --git a/layers/ebclfsa/Dockerfile b/layers/ebclfsa/Dockerfile index 3601b24..1e906c7 100644 --- a/layers/ebclfsa/Dockerfile +++ b/layers/ebclfsa/Dockerfile @@ -18,3 +18,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ # add cmake toolchains RUN mkdir -p /build/cmake COPY conf/cmake/* /build/cmake/ + +COPY conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_* ./ +RUN cat ./clang20-musl-libcpp_1.0.0-1_arm64.deb.part_* > clang20-musl-libcpp_1.0.0-1_arm64.deb +RUN dpkg -i ./clang20-musl-libcpp_1.0.0-1_arm64.deb +RUN rm ./clang20-musl-libcpp_1.0.0-1_arm64.deb diff --git a/layers/ebclfsa/conf/cmake/toolchain-ebclfsa-aarch64.cmake b/layers/ebclfsa/conf/cmake/toolchain-ebclfsa-aarch64.cmake index 4e4f9eb..1cc96db 100644 --- a/layers/ebclfsa/conf/cmake/toolchain-ebclfsa-aarch64.cmake +++ b/layers/ebclfsa/conf/cmake/toolchain-ebclfsa-aarch64.cmake @@ -1,25 +1,29 @@ set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR aarch64) -set(CMAKE_C_COMPILER clang) -set(CMAKE_CXX_COMPILER clang++) +set(MUSL_SYSROOT_PATH /usr/aarch64-linux-musl) +set(CLANG_ROOT_PATH /usr/aarch64_clang_musl/usr/local) -set(CMAKE_SYSROOT /build/sysroot_hi_aarch64) +set(LOC_TARGET aarch64-linux-musl) +set(CLANG_LIBS_1 ${CLANG_ROOT_PATH}/lib) +set(CLANG_LIBS_2 ${CLANG_ROOT_PATH}/lib/${LOC_TARGET}) +set(MUSL_INCLUDE ${SYSROOT_PATH}/${LOC_TARGET}/include) +set(CLANG_INCLUDE_1 ${CLANG_ROOT_PATH}/include/c++/v1) +set(CLANG_INCLUDE_2 ${CLANG_ROOT_PATH}/include/aarch64-unknown-linux-musl/c++/v1) + +set(CMAKE_C_COMPILER ${CLANG_ROOT_PATH}/bin/clang) +set(CMAKE_CXX_COMPILER ${CLANG_ROOT_PATH}/bin/clang++) +set(CMAKE_LINKER /usr/bin/lld) +set(CMAKE_SYSROOT ${MUSL_SYSROOT_PATH}) +set(CMAKE_FIND_ROOT_PATH ${MUSL_SYSROOT_PATH}) -set(GCC_LIBS /usr/lib/gcc-cross/aarch64-linux-gnu/11) -set(MUSL_LIBS /usr/lib/aarch64-linux-musl) -set(MUSL_INCLUDE /usr/include/aarch64-linux-musl) # Only static binaries are allowed set(CMAKE_C_FLAGS "-static") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -target ${LOC_TARGET}") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -isystem ${CLANG_INCLUDE_1}") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -isystem ${CLANG_INCLUDE_2}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -isystem ${MUSL_INCLUDE}") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -target aarch64-linux-musl") - -set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=lld -nostdlib -L${MUSL_LIBS} -L ${GCC_LIBS} -lc -lgcc -lgcc_eh") -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${MUSL_LIBS}/Scrt1.o ${MUSL_LIBS}/crti.o ${GCC_LIBS}/crtbeginS.o ${GCC_LIBS}/crtendS.o ${MUSL_LIBS}/crtn.o") -set(CMAKE_FIND_ROOT_PATH "${CMAKE_SYSROOT}") -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_EXE_LINKER_FLAGS "-stdlib=libc++ -lc++ -lc++abi -lunwind -fuse-ld=lld -L${CLANG_LIBS_1} -L${CLANG_LIBS_2}") diff --git a/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_aa b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_aa new file mode 100644 index 0000000..3e3f3df Binary files /dev/null and b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_aa differ diff --git a/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ab b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ab new file mode 100644 index 0000000..e621d8d Binary files /dev/null and b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ab differ diff --git a/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ac b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ac new file mode 100644 index 0000000..5615c10 Binary files /dev/null and b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ac differ diff --git a/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ad b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ad new file mode 100644 index 0000000..050f621 Binary files /dev/null and b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ad differ diff --git a/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ae b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ae new file mode 100644 index 0000000..21775c3 Binary files /dev/null and b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ae differ diff --git a/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_af b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_af new file mode 100644 index 0000000..eb70eaa Binary files /dev/null and b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_af differ diff --git a/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ag b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ag new file mode 100644 index 0000000..d5c7925 Binary files /dev/null and b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ag differ diff --git a/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ah b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ah new file mode 100644 index 0000000..6b09464 Binary files /dev/null and b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ah differ diff --git a/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ai b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ai new file mode 100644 index 0000000..7f677a9 Binary files /dev/null and b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ai differ diff --git a/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_aj b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_aj new file mode 100644 index 0000000..fe14ba1 Binary files /dev/null and b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_aj differ diff --git a/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ak b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ak new file mode 100644 index 0000000..d8badc3 Binary files /dev/null and b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_ak differ diff --git a/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_al b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_al new file mode 100644 index 0000000..ab67ab2 Binary files /dev/null and b/layers/ebclfsa/conf/deb-pkg/clang20-musl-libcpp_1.0.0-1_arm64.deb.part_al differ