| #!/bin/sh |
| # Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. |
| # |
| # SPDX-License-Identifier: BSD-3-Clause |
| |
| set -e |
| |
| build=. |
| out=output.a |
| |
| for i |
| do |
| case $i in |
| -o) |
| out=$2 |
| shift 2 |
| ;; |
| -b) |
| build=$2 |
| shift 2 |
| ;; |
| --) |
| shift |
| break |
| ;; |
| -*) |
| echo usage: genwrappers.sh [-o output] [-b dir] file ... >&2 |
| exit 1 |
| ;; |
| esac |
| done |
| |
| awk '{sub(/[:blank:]*#.*/,"")} |
| !/^$/ {print $1*4, $2, $3}' "$@" | |
| while read idx lib sym |
| do |
| file=$build/${lib}_$sym |
| |
| cat <<EOF > $file.s |
| .globl $sym |
| $sym: |
| ldr x17, =jmptbl |
| ldr x17, [x17] |
| mov x16, $idx |
| add x16, x16, x17 |
| br x16 |
| EOF |
| |
| ${CROSS_COMPILE}as -o $file.o $file.s |
| done |
| |
| ${CROSS_COMPILE}ar -rc $out $build/*.o |