#! /bin/sh
# Copyright (C) 2014 Red Hat, Inc.
# Copyright (C) 2016 Oracle, Inc.
# This file is part of elfutils.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# elfutils is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
. $srcdir/test-subr.sh
# See run-addrcfi.sh for testfilearm.
# = testfileppc32attrs.s =
# .gnu_attribute 8,1
# .gnu_attribute 12,1
#
# gcc -m32 -c testfileppc32attrs.s
# = testfilesparc64attrs.s =
# .gnu_attribute 4,0x0aaaaaaa
# .gnu_attribute 8,0x00000055
#
# gcc -c testfilesparc64attrs.s
# = testfileppc64attrs.s =
# .gnu_attribute 4,3
#
# gcc -c testfileppc64attrs.s
testfiles testfilearm testfileppc32attrs.o testfilesparc64attrs.o testfileppc64attrs.o
testrun_compare ${abs_top_builddir}/src/readelf -A testfilearm <<\EOF
Object attributes section [27] '.ARM.attributes' of 53 bytes at offset 0x718:
Owner Size
aeabi 52
File: 42
CPU_name: 7-A
CPU_arch: v7
CPU_arch_profile: Application
ARM_ISA_use: Yes
THUMB_ISA_use: Thumb-2
VFP_arch: VFPv3-D16
ABI_PCS_wchar_t: 4
ABI_FP_rounding: Needed
ABI_FP_denormal: Needed
ABI_FP_exceptions: Needed
ABI_FP_number_model: IEEE 754
ABI_align8_needed: Yes
ABI_align8_preserved: Yes, except leaf SP
ABI_enum_size: int
ABI_HardFP_use: SP and DP
ABI_VFP_args: VFP registers
CPU_unaligned_access: v6
EOF
testrun_compare ${abs_top_builddir}/src/readelf -A testfileppc32attrs.o <<\EOF
Object attributes section [ 4] '.gnu.attributes' of 18 bytes at offset 0x34:
Owner Size
gnu 17
File: 9
GNU_Power_ABI_Vector: Generic
GNU_Power_ABI_Struct_Return: r3/r4
EOF
testrun_compare ${abs_top_builddir}/src/readelf -A testfilesparc64attrs.o <<\EOF
Object attributes section [ 4] '.gnu.attributes' of 21 bytes at offset 0x40:
Owner Size
gnu 20
File: 12
GNU_Sparc_HWCAPS: div32,v8plus,vis,asi_blk_init,vis3,random,fjfmau,asi_cache_sparing,des,camellia,sha1,sha512,mont,cbcond
GNU_Sparc_HWCAPS2: fjathplus,adp,mwait,xmont
EOF
testrun_compare ${abs_top_builddir}/src/readelf -A testfileppc64attrs.o <<\EOF
Object attributes section [ 4] '.gnu.attributes' of 16 bytes at offset 0x40:
Owner Size
gnu 15
File: 7
GNU_Power_ABI_FP: Single-precision hard float
EOF
exit 0