diff --git a/tools/cross_compiler_unix/Dockerfile b/tools/cross_compiler_unix/Dockerfile index 7c23b36..83491bf 100644 --- a/tools/cross_compiler_unix/Dockerfile +++ b/tools/cross_compiler_unix/Dockerfile @@ -5,7 +5,7 @@ WORKDIR /home RUN apt-get update && apt-get install -y \ build-essential \ gcc-13 \ - gcc-12-i686-linux-gnu \ + gcc-13-i686-linux-gnu \ gcc-13-arm-linux-gnueabihf \ gcc-13-mips-linux-gnu \ gcc-13-mipsel-linux-gnu \ @@ -17,4 +17,4 @@ RUN apt-get update && apt-get install -y \ COPY *.sh ./ -RUN sh build_musl.sh && ls build/ \ No newline at end of file +RUN sh build_musl.sh && ls build/* \ No newline at end of file diff --git a/tools/cross_compiler_unix/build_musl.sh b/tools/cross_compiler_unix/build_musl.sh index dc4f03b..caf6da2 100644 --- a/tools/cross_compiler_unix/build_musl.sh +++ b/tools/cross_compiler_unix/build_musl.sh @@ -1,23 +1,26 @@ #!/bin/sh +set -e +set -v + git clone --single-branch --branch master --depth 1 https://git.musl-libc.org/git/musl cd musl -./configure CFLAGS="-O2 -fno-stack-protector -ffast-math" -sh packobjs.sh x86_64 +#./configure CFLAGS="-O2 -fno-stack-protector -ffast-math" -./configure CFLAGS="-O2 -fno-stack-protector" CC=i686-linux-gnu-gcc-13 -sh packobjs.sh x86 +sh ../packobjs.sh x86_64 gcc ld -./configure CFLAGS="-O2 -fno-stack-protector" CC=aarch64-linux-gnu-gcc-13 -sh packobjs.sh arm64 +sh ../packobjs.sh x86 i686-linux-gnu-gcc-13 i686-linux-gnu-ld -#./configure CFLAGS="-O2 -fno-stack-protector" CC=mips-linux-gnu-gcc-13 -#sh packobjs.sh mips - -#./configure CFLAGS="-O2 -fno-stack-protector" CC=riscv64-linux-gnu-gcc-13 -#sh packobjs.sh riscv64 +sh ../packobjs.sh arm64 aarch64-linux-gnu-gcc-13 aarch64-linux-gnu-ld +#sh ../packobjs.sh mips mips-linux-gnu-gcc-13 mips-linux-gnu-ld + +#sh ../packobjs.sh riscv64 riscv64-linux-gnu-gcc-13 riscv64-linux-gnu-ld + +echo "- clean up..." +rm -r ./* +cd .. diff --git a/tools/cross_compiler_unix/packobjs.sh b/tools/cross_compiler_unix/packobjs.sh index af9233d..6eb51e4 100644 --- a/tools/cross_compiler_unix/packobjs.sh +++ b/tools/cross_compiler_unix/packobjs.sh @@ -1,16 +1,31 @@ #!/bin/sh +set -e +set -v + ARCH=$1 +CC_NAME=$2 +LD_NAME=$3 + +echo "- Config musl" +./configure CFLAGS="-O2 -fno-stack-protector" CC=$CC_NAME + +echo "- Build musl" +make clean +make all mkdir -p ../build/stencil_objs +echo "- Extracting required objects" cd ../build/stencil_objs -ar x ../../../musl/lib/libc.a sinf.lo cosf.lo tanf.lo asinf.lo acosf.lo atanf.lo atan2f.lo -ar x ../../../musl/lib/libc.a sqrtf.lo logf.lo expf.lo sqrt.lo -ar x ../../../musl/lib/libc.a logf_data.lo __tandf.lo __cosdf.lo __sindf.lo __rem_pio2f.lo __math_invalidf.lo __stack_chk_fail.lo __math_divzerof.lo __math_oflowf.lo __rem_pio2_large.lo scalbn.lo floor.lo exp2f_data.lo powf.lo powf_data.lo __math_uflowf.lo __math_xflowf.lo -ar x ../../../musl/lib/libc.a fabsf.lo +ar x ../../musl/lib/libc.a sinf.lo cosf.lo tanf.lo asinf.lo acosf.lo atanf.lo atan2f.lo +ar x ../../musl/lib/libc.a sqrtf.lo logf.lo expf.lo sqrt.lo +ar x ../../musl/lib/libc.a logf_data.lo __tandf.lo __cosdf.lo __sindf.lo +ar x ../../musl/lib/libc.a fabsf.lo scalbn.lo floor.lo exp2f_data.lo powf.lo powf_data.lo +ar x ../../musl/lib/libc.a __rem_pio2f.lo __math_invalidf.lo __stack_chk_fail.lo __math_divzerof.lo __math_oflowf.lo __rem_pio2_large.lo __math_uflowf.lo __math_xflowf.lo -ld -r *.lo -o ../musl_objects_{$ARCH}.o +echo "- Merge objects" +$LD_NAME -r *.lo -o ../musl_objects_$ARCH.o -rm ../build/stencil_objs/* +rm ./* cd ../../musl \ No newline at end of file