3 # Copyright (c) 2015 Elvira Khabirova <lineprinter0@gmail.com>
4 # Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org>
5 # Copyright (c) 2015-2019 The strace developers.
8 # SPDX-License-Identifier: LGPL-2.1-or-later
10 [ "x${D:-0}" != x1 ] || set -x
12 mpers_name="$1"; shift
13 mpers_cc_flags="$1"; shift
14 size="$(printf %s "$mpers_name" |tr -cd '[0-9]')"
18 mpers_sh="${srcdir}/mpers.sh"
20 mpers_dir="mpers-$mpers_name"
23 sample="$mpers_dir/sample.c"
25 #include "mpers_type.h"
26 #include DEF_MPERS_TYPE(sample_struct)
31 /* unsigned char mpers_filler_1[1]; */
34 /* unsigned char mpers_filler_2[3]; */
39 /* unsigned char mpers_filler_3[6]; */
40 long long sll __attribute__((__aligned__(8)));
41 unsigned long long ull;
45 /* unsigned char mpers_end_filler_4[7]; */
49 unsigned long long ull;
65 expected="$mpers_dir/sample.expected"
66 mpers_ptr_t="uint${size}_t"
67 cat > "$expected" <<EOF
69 #ifndef mpers_ptr_t_is_${mpers_ptr_t}
70 typedef ${mpers_ptr_t} mpers_ptr_t;
71 #define mpers_ptr_t_is_${mpers_ptr_t}
78 unsigned char mpers_filler_1[1];
81 unsigned char mpers_filler_2[3];
86 unsigned char mpers_filler_3[6];
90 int${size}_t asl[3][5][7];
92 unsigned char mpers_end_filler_4[7];
108 } ATTRIBUTE_PACKED ${mpers_name}_sample_struct;
109 #define MPERS_${mpers_name}_sample_struct ${mpers_name}_sample_struct
112 CFLAGS="$CPPFLAGS -I${srcdir} -DMPERS_IS_${mpers_name}" \
113 CPPFLAGS="$CPPFLAGS -I${srcdir} -DIN_MPERS -DMPERS_IS_${mpers_name}" \
114 "$mpers_sh" "$mpers_name" "$mpers_cc_flags" "$sample"
115 cmp "$expected" "$mpers_dir"/sample_struct.h > /dev/null