assemble.sh 897 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/bin/bash
  2. set -euxo pipefail
  3. crate=riscv-rt
  4. # remove existing blobs because otherwise this will append object files to the old blobs
  5. rm -f bin/*.a
  6. exts=('i' 'ic' 'im' 'imc' 'if' 'ifc' 'imf' 'imfc' 'ifd' 'ifdc' 'imfd' 'imfdc')
  7. for ext in ${exts[@]}
  8. do
  9. case $ext in
  10. *'d'*)
  11. abi='d'
  12. ;;
  13. *'f'*)
  14. abi='f'
  15. ;;
  16. *)
  17. abi=''
  18. ;;
  19. esac
  20. riscv64-unknown-elf-gcc -ggdb3 -fdebug-prefix-map=$(pwd)=/riscv-rt -c -mabi=ilp32${abi} -march=rv32${ext} asm.S -o bin/$crate.o
  21. riscv64-unknown-elf-ar crs bin/riscv32${ext}-unknown-none-elf.a bin/$crate.o
  22. riscv64-unknown-elf-gcc -ggdb3 -fdebug-prefix-map=$(pwd)=/riscv-rt -c -mabi=lp64${abi} -march=rv64${ext} asm.S -o bin/$crate.o
  23. riscv64-unknown-elf-ar crs bin/riscv64${ext}-unknown-none-elf.a bin/$crate.o
  24. done
  25. rm bin/$crate.o