diff options
author | John Tsichritzis <john.tsichritzis@arm.com> | 2019-06-06 10:26:10 +0000 |
---|---|---|
committer | TrustedFirmware Code Review <review@review.trustedfirmware.org> | 2019-06-06 10:26:10 +0000 |
commit | 0f95565c40d54188dd072fe2b429046dbbd9a6a3 (patch) | |
tree | 966fe8d7dc4aa50011d5f720a50672bdf9e390ea /lib/romlib/genwrappers.sh | |
parent | 16b49f601df30378b78bb323a859109149f3ea00 (diff) | |
parent | bbb24f611c92ada192ed7a6825da8b477fd6bcfb (diff) | |
download | platform_external_arm-trusted-firmware-0f95565c40d54188dd072fe2b429046dbbd9a6a3.tar.gz platform_external_arm-trusted-firmware-0f95565c40d54188dd072fe2b429046dbbd9a6a3.tar.bz2 platform_external_arm-trusted-firmware-0f95565c40d54188dd072fe2b429046dbbd9a6a3.zip |
Merge "Introduce BTI support in ROMLIB" into integration
Diffstat (limited to 'lib/romlib/genwrappers.sh')
-rwxr-xr-x | lib/romlib/genwrappers.sh | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/lib/romlib/genwrappers.sh b/lib/romlib/genwrappers.sh index 07d59ac45..e092548e0 100755 --- a/lib/romlib/genwrappers.sh +++ b/lib/romlib/genwrappers.sh @@ -19,6 +19,14 @@ do build=$2 shift 2 ;; + --bti=*) + enable_bti=$(echo $1 | sed 's/--bti=\(.*\)/\1/') + shift 1 + ;; + --asflags=*) + asflags=$(echo $1 | sed 's/--asflags=\(.*\)/\1/') + shift 1 + ;; --) shift break @@ -30,8 +38,13 @@ do esac done -awk '{sub(/[:blank:]*#.*/,"")} -!/^$/ && $NF != "patch" && $NF != "reserved" {print $1*4, $2, $3}' "$@" | +awk -v BTI=$enable_bti ' +{sub(/[:blank:]*#.*/,"")} +!/^$/ && $NF != "patch" && $NF != "reserved" { + if (BTI == 1) + print $1*8, $2, $3 + else + print $1*4, $2, $3}' "$@" | while read idx lib sym do file=$build/${lib}_$sym @@ -39,14 +52,20 @@ do cat <<EOF > $file.s .globl $sym $sym: +EOF +if [ $enable_bti = 1 ] +then + echo "\tbti\tjc" >> $file.s +fi + cat <<EOF >> $file.s ldr x17, =jmptbl - ldr x17, [x17] mov x16, #$idx + ldr x17, [x17] add x16, x16, x17 br x16 EOF - ${CROSS_COMPILE}as -o $file.o $file.s + ${CROSS_COMPILE}as ${asflags} -o $file.o $file.s done ${CROSS_COMPILE}ar -rc $out $build/*.o |