xref: /aosp_15_r20/development/vndk/tools/header-checker/tests/module.py (revision 90c8c64db3049935a07c6143d7fd006e26f8ecca)
1*90c8c64dSAndroid Build Coastguard Worker#!/usr/bin/env python3
2*90c8c64dSAndroid Build Coastguard Worker
3*90c8c64dSAndroid Build Coastguard Workerimport os
4*90c8c64dSAndroid Build Coastguard Workerimport sys
5*90c8c64dSAndroid Build Coastguard Workerimport tempfile
6*90c8c64dSAndroid Build Coastguard Worker
7*90c8c64dSAndroid Build Coastguard Workerimport_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
8*90c8c64dSAndroid Build Coastguard Workerimport_path = os.path.abspath(os.path.join(import_path, 'utils'))
9*90c8c64dSAndroid Build Coastguard Workersys.path.insert(1, import_path)
10*90c8c64dSAndroid Build Coastguard Worker
11*90c8c64dSAndroid Build Coastguard Workerfrom utils import run_header_abi_dumper
12*90c8c64dSAndroid Build Coastguard Workerfrom utils import run_header_abi_linker
13*90c8c64dSAndroid Build Coastguard Workerfrom utils import SOURCE_ABI_DUMP_EXT
14*90c8c64dSAndroid Build Coastguard Worker
15*90c8c64dSAndroid Build Coastguard Worker
16*90c8c64dSAndroid Build Coastguard WorkerSCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
17*90c8c64dSAndroid Build Coastguard WorkerARCH_TARGET_CFLAGS = {
18*90c8c64dSAndroid Build Coastguard Worker    'arm': ('-target', 'arm-linux-androideabi'),
19*90c8c64dSAndroid Build Coastguard Worker    'arm64': ('-target', 'aarch64-linux-android'),
20*90c8c64dSAndroid Build Coastguard Worker    'x86': ('-target', 'i386-linux-androideabi'),
21*90c8c64dSAndroid Build Coastguard Worker    'x86_64': ('-target', 'x86_64-linux-android'),
22*90c8c64dSAndroid Build Coastguard Worker}
23*90c8c64dSAndroid Build Coastguard WorkerTARGET_ARCHES = ['arm', 'arm64', 'x86', 'x86_64']
24*90c8c64dSAndroid Build Coastguard Worker
25*90c8c64dSAndroid Build Coastguard Worker
26*90c8c64dSAndroid Build Coastguard Workerdef relative_to_abs_path(relative_path):
27*90c8c64dSAndroid Build Coastguard Worker    return os.path.join(SCRIPT_DIR, relative_path)
28*90c8c64dSAndroid Build Coastguard Worker
29*90c8c64dSAndroid Build Coastguard Worker
30*90c8c64dSAndroid Build Coastguard Workerdef relative_to_abs_path_list(relative_path_list):
31*90c8c64dSAndroid Build Coastguard Worker    abs_paths = []
32*90c8c64dSAndroid Build Coastguard Worker    for relative_path in relative_path_list:
33*90c8c64dSAndroid Build Coastguard Worker        abs_paths.append(relative_to_abs_path(relative_path))
34*90c8c64dSAndroid Build Coastguard Worker    return abs_paths
35*90c8c64dSAndroid Build Coastguard Worker
36*90c8c64dSAndroid Build Coastguard Worker
37*90c8c64dSAndroid Build Coastguard Workerclass Module(object):
38*90c8c64dSAndroid Build Coastguard Worker    def __init__(self, name, arch, cflags, export_include_dirs,
39*90c8c64dSAndroid Build Coastguard Worker                 has_reference_dump):
40*90c8c64dSAndroid Build Coastguard Worker        self.name = name
41*90c8c64dSAndroid Build Coastguard Worker        self.arch = arch
42*90c8c64dSAndroid Build Coastguard Worker        self.cflags = tuple(cflags)
43*90c8c64dSAndroid Build Coastguard Worker        self.arch_cflags = ARCH_TARGET_CFLAGS.get(self.arch, tuple())
44*90c8c64dSAndroid Build Coastguard Worker        self.export_include_dirs = relative_to_abs_path_list(
45*90c8c64dSAndroid Build Coastguard Worker            export_include_dirs)
46*90c8c64dSAndroid Build Coastguard Worker        self.has_reference_dump = has_reference_dump
47*90c8c64dSAndroid Build Coastguard Worker
48*90c8c64dSAndroid Build Coastguard Worker    def get_dump_name(self):
49*90c8c64dSAndroid Build Coastguard Worker        """Returns the module name followed by file extension."""
50*90c8c64dSAndroid Build Coastguard Worker        raise NotImplementedError()
51*90c8c64dSAndroid Build Coastguard Worker
52*90c8c64dSAndroid Build Coastguard Worker    def make_dump(self, output_path):
53*90c8c64dSAndroid Build Coastguard Worker        """Create a dump file."""
54*90c8c64dSAndroid Build Coastguard Worker        raise NotImplementedError()
55*90c8c64dSAndroid Build Coastguard Worker
56*90c8c64dSAndroid Build Coastguard Worker    def mutate_for_arch(self, target_arch):
57*90c8c64dSAndroid Build Coastguard Worker        """Returns a clone of this instance with arch=target_arch."""
58*90c8c64dSAndroid Build Coastguard Worker        raise NotImplementedError()
59*90c8c64dSAndroid Build Coastguard Worker
60*90c8c64dSAndroid Build Coastguard Worker    def mutate_for_all_arches(self):
61*90c8c64dSAndroid Build Coastguard Worker        if self.arch:
62*90c8c64dSAndroid Build Coastguard Worker            return [self]
63*90c8c64dSAndroid Build Coastguard Worker        modules = []
64*90c8c64dSAndroid Build Coastguard Worker        for target_arch in TARGET_ARCHES:
65*90c8c64dSAndroid Build Coastguard Worker            modules.append(self.mutate_for_arch(target_arch))
66*90c8c64dSAndroid Build Coastguard Worker        return modules
67*90c8c64dSAndroid Build Coastguard Worker
68*90c8c64dSAndroid Build Coastguard Worker    @staticmethod
69*90c8c64dSAndroid Build Coastguard Worker    def get_test_modules():
70*90c8c64dSAndroid Build Coastguard Worker        modules = []
71*90c8c64dSAndroid Build Coastguard Worker        for module in TEST_MODULES.values():
72*90c8c64dSAndroid Build Coastguard Worker            modules += module.mutate_for_all_arches()
73*90c8c64dSAndroid Build Coastguard Worker        return modules
74*90c8c64dSAndroid Build Coastguard Worker
75*90c8c64dSAndroid Build Coastguard Worker    @staticmethod
76*90c8c64dSAndroid Build Coastguard Worker    def get_test_modules_by_name(name):
77*90c8c64dSAndroid Build Coastguard Worker        return TEST_MODULES.get(name).mutate_for_all_arches()
78*90c8c64dSAndroid Build Coastguard Worker
79*90c8c64dSAndroid Build Coastguard Worker
80*90c8c64dSAndroid Build Coastguard Workerclass SdumpModule(Module):
81*90c8c64dSAndroid Build Coastguard Worker    def __init__(self, name, src, export_include_dirs=tuple(),
82*90c8c64dSAndroid Build Coastguard Worker                 has_reference_dump=False, cflags=tuple(), arch='',
83*90c8c64dSAndroid Build Coastguard Worker                 dumper_flags=tuple()):
84*90c8c64dSAndroid Build Coastguard Worker        super().__init__(name, arch, cflags, export_include_dirs,
85*90c8c64dSAndroid Build Coastguard Worker                         has_reference_dump)
86*90c8c64dSAndroid Build Coastguard Worker        self.src = relative_to_abs_path(src)
87*90c8c64dSAndroid Build Coastguard Worker        self.dumper_flags = dumper_flags
88*90c8c64dSAndroid Build Coastguard Worker
89*90c8c64dSAndroid Build Coastguard Worker    def get_dump_name(self):
90*90c8c64dSAndroid Build Coastguard Worker        return self.name + '.sdump'
91*90c8c64dSAndroid Build Coastguard Worker
92*90c8c64dSAndroid Build Coastguard Worker    def make_dump(self, output_path):
93*90c8c64dSAndroid Build Coastguard Worker        return run_header_abi_dumper(
94*90c8c64dSAndroid Build Coastguard Worker            self.src, output_path, cflags=self.cflags,
95*90c8c64dSAndroid Build Coastguard Worker            export_include_dirs=self.export_include_dirs,
96*90c8c64dSAndroid Build Coastguard Worker            flags=self.dumper_flags)
97*90c8c64dSAndroid Build Coastguard Worker
98*90c8c64dSAndroid Build Coastguard Worker    def mutate_for_arch(self, target_arch):
99*90c8c64dSAndroid Build Coastguard Worker        return SdumpModule(self.name, self.src, self.export_include_dirs,
100*90c8c64dSAndroid Build Coastguard Worker                           self.has_reference_dump, self.cflags, target_arch,
101*90c8c64dSAndroid Build Coastguard Worker                           self.dumper_flags)
102*90c8c64dSAndroid Build Coastguard Worker
103*90c8c64dSAndroid Build Coastguard Worker
104*90c8c64dSAndroid Build Coastguard Workerclass LsdumpModule(Module):
105*90c8c64dSAndroid Build Coastguard Worker    def __init__(self, name, srcs, version_script, export_include_dirs,
106*90c8c64dSAndroid Build Coastguard Worker                 has_reference_dump=False, cflags=tuple(), arch='',
107*90c8c64dSAndroid Build Coastguard Worker                 api='current', dumper_flags=tuple(), linker_flags=tuple()):
108*90c8c64dSAndroid Build Coastguard Worker        super().__init__(name, arch, cflags, export_include_dirs,
109*90c8c64dSAndroid Build Coastguard Worker                         has_reference_dump)
110*90c8c64dSAndroid Build Coastguard Worker        self.srcs = relative_to_abs_path_list(srcs)
111*90c8c64dSAndroid Build Coastguard Worker        self.version_script = relative_to_abs_path(version_script)
112*90c8c64dSAndroid Build Coastguard Worker        self.api = api
113*90c8c64dSAndroid Build Coastguard Worker        self.dumper_flags = dumper_flags
114*90c8c64dSAndroid Build Coastguard Worker        self.linker_flags = linker_flags
115*90c8c64dSAndroid Build Coastguard Worker
116*90c8c64dSAndroid Build Coastguard Worker    def get_dump_name(self):
117*90c8c64dSAndroid Build Coastguard Worker        return self.name + SOURCE_ABI_DUMP_EXT
118*90c8c64dSAndroid Build Coastguard Worker
119*90c8c64dSAndroid Build Coastguard Worker    def make_dump(self, output_path):
120*90c8c64dSAndroid Build Coastguard Worker        """For each source file, produce a .sdump file, and link them to form
121*90c8c64dSAndroid Build Coastguard Worker           an lsump file."""
122*90c8c64dSAndroid Build Coastguard Worker        dumps_to_link = []
123*90c8c64dSAndroid Build Coastguard Worker        with tempfile.TemporaryDirectory() as tmp:
124*90c8c64dSAndroid Build Coastguard Worker            for src in self.srcs:
125*90c8c64dSAndroid Build Coastguard Worker                sdump_path = os.path.join(tmp,
126*90c8c64dSAndroid Build Coastguard Worker                                          os.path.basename(src) + '.sdump')
127*90c8c64dSAndroid Build Coastguard Worker                dumps_to_link.append(sdump_path)
128*90c8c64dSAndroid Build Coastguard Worker                run_header_abi_dumper(
129*90c8c64dSAndroid Build Coastguard Worker                    src, sdump_path, self.cflags + self.arch_cflags,
130*90c8c64dSAndroid Build Coastguard Worker                    self.export_include_dirs, self.dumper_flags)
131*90c8c64dSAndroid Build Coastguard Worker
132*90c8c64dSAndroid Build Coastguard Worker            lsdump_path = os.path.join(tmp, self.get_dump_name())
133*90c8c64dSAndroid Build Coastguard Worker            run_header_abi_linker(dumps_to_link, lsdump_path,
134*90c8c64dSAndroid Build Coastguard Worker                                  self.version_script, self.api, self.arch,
135*90c8c64dSAndroid Build Coastguard Worker                                  self.linker_flags)
136*90c8c64dSAndroid Build Coastguard Worker            # Replace the absolute tmp paths in the type ID.
137*90c8c64dSAndroid Build Coastguard Worker            with open(lsdump_path, 'r') as lsdump_file:
138*90c8c64dSAndroid Build Coastguard Worker                content = lsdump_file.read().replace(tmp, '')
139*90c8c64dSAndroid Build Coastguard Worker
140*90c8c64dSAndroid Build Coastguard Worker        with open(output_path, 'w') as output_file:
141*90c8c64dSAndroid Build Coastguard Worker            output_file.write(content)
142*90c8c64dSAndroid Build Coastguard Worker
143*90c8c64dSAndroid Build Coastguard Worker    def mutate_for_arch(self, target_arch):
144*90c8c64dSAndroid Build Coastguard Worker        return LsdumpModule(self.name, self.srcs, self.version_script,
145*90c8c64dSAndroid Build Coastguard Worker                            self.export_include_dirs, self.has_reference_dump,
146*90c8c64dSAndroid Build Coastguard Worker                            self.cflags, target_arch, self.api,
147*90c8c64dSAndroid Build Coastguard Worker                            self.dumper_flags, self.linker_flags)
148*90c8c64dSAndroid Build Coastguard Worker
149*90c8c64dSAndroid Build Coastguard Worker
150*90c8c64dSAndroid Build Coastguard WorkerTEST_MODULES = [
151*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
152*90c8c64dSAndroid Build Coastguard Worker        name='libc_and_cpp',
153*90c8c64dSAndroid Build Coastguard Worker        srcs=[
154*90c8c64dSAndroid Build Coastguard Worker            'integration/c_and_cpp/source1.cpp',
155*90c8c64dSAndroid Build Coastguard Worker            'integration/c_and_cpp/source2.c',
156*90c8c64dSAndroid Build Coastguard Worker        ],
157*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/c_and_cpp/map.txt',
158*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/c_and_cpp/include'],
159*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
160*90c8c64dSAndroid Build Coastguard Worker    ),
161*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
162*90c8c64dSAndroid Build Coastguard Worker        name='libc_and_cpp_with_opaque_ptr_a',
163*90c8c64dSAndroid Build Coastguard Worker        srcs=[
164*90c8c64dSAndroid Build Coastguard Worker            'integration/c_and_cpp/source1.cpp',
165*90c8c64dSAndroid Build Coastguard Worker            'integration/c_and_cpp/source2.c',
166*90c8c64dSAndroid Build Coastguard Worker        ],
167*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/c_and_cpp/map.txt',
168*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/c_and_cpp/include'],
169*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DOPAQUE_STRUCT_A=1'],
170*90c8c64dSAndroid Build Coastguard Worker    ),
171*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
172*90c8c64dSAndroid Build Coastguard Worker        name='libc_and_cpp_with_opaque_ptr_b',
173*90c8c64dSAndroid Build Coastguard Worker        srcs=[
174*90c8c64dSAndroid Build Coastguard Worker            'integration/c_and_cpp/source1.cpp',
175*90c8c64dSAndroid Build Coastguard Worker            'integration/c_and_cpp/source2.c',
176*90c8c64dSAndroid Build Coastguard Worker        ],
177*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/c_and_cpp/map.txt',
178*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/c_and_cpp/include'],
179*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DOPAQUE_STRUCT_B=1'],
180*90c8c64dSAndroid Build Coastguard Worker    ),
181*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
182*90c8c64dSAndroid Build Coastguard Worker        name='libc_and_cpp_with_unused_struct',
183*90c8c64dSAndroid Build Coastguard Worker        srcs=[
184*90c8c64dSAndroid Build Coastguard Worker            'integration/c_and_cpp/source1.cpp',
185*90c8c64dSAndroid Build Coastguard Worker            'integration/c_and_cpp/source2.c',
186*90c8c64dSAndroid Build Coastguard Worker        ],
187*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/c_and_cpp/map.txt',
188*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/c_and_cpp/include'],
189*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DINCLUDE_UNUSED_STRUCTS=1'],
190*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
191*90c8c64dSAndroid Build Coastguard Worker    ),
192*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
193*90c8c64dSAndroid Build Coastguard Worker        name='libc_and_cpp_with_unused_cstruct',
194*90c8c64dSAndroid Build Coastguard Worker        srcs=[
195*90c8c64dSAndroid Build Coastguard Worker            'integration/c_and_cpp/source1.cpp',
196*90c8c64dSAndroid Build Coastguard Worker            'integration/c_and_cpp/source2.c',
197*90c8c64dSAndroid Build Coastguard Worker        ],
198*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/c_and_cpp/map.txt',
199*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/c_and_cpp/include'],
200*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DINCLUDE_UNUSED_STRUCTS=1', '-DMAKE_UNUSED_STRUCT_C=1'],
201*90c8c64dSAndroid Build Coastguard Worker    ),
202*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
203*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp',
204*90c8c64dSAndroid Build Coastguard Worker        srcs=[
205*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
206*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
207*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
208*90c8c64dSAndroid Build Coastguard Worker        ],
209*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
210*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
211*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
212*90c8c64dSAndroid Build Coastguard Worker    ),
213*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
214*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_odr',
215*90c8c64dSAndroid Build Coastguard Worker        srcs=[
216*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
217*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
218*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
219*90c8c64dSAndroid Build Coastguard Worker        ],
220*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
221*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
222*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DTEST_ODR'],
223*90c8c64dSAndroid Build Coastguard Worker    ),
224*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
225*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_add_function',
226*90c8c64dSAndroid Build Coastguard Worker        srcs=[
227*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
228*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
229*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
230*90c8c64dSAndroid Build Coastguard Worker        ],
231*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map_add_function.txt',
232*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
233*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_ADD_FUNCTION=1'],
234*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
235*90c8c64dSAndroid Build Coastguard Worker    ),
236*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
237*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_add_function_and_unexported_elf',
238*90c8c64dSAndroid Build Coastguard Worker        srcs=[
239*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
240*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
241*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
242*90c8c64dSAndroid Build Coastguard Worker        ],
243*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map_add_function_elf_symbol.txt',
244*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
245*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_ADD_FUNCTION=1', '-DADD_UNEXPORTED_ELF_SYMBOL'],
246*90c8c64dSAndroid Build Coastguard Worker        arch='',
247*90c8c64dSAndroid Build Coastguard Worker        api='current',
248*90c8c64dSAndroid Build Coastguard Worker    ),
249*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
250*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_add_function_sybmol_only',
251*90c8c64dSAndroid Build Coastguard Worker        srcs=[
252*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
253*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
254*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
255*90c8c64dSAndroid Build Coastguard Worker        ],
256*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map_add_function.txt',
257*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
258*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
259*90c8c64dSAndroid Build Coastguard Worker    ),
260*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
261*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_change_function_access',
262*90c8c64dSAndroid Build Coastguard Worker        srcs=[
263*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
264*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
265*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
266*90c8c64dSAndroid Build Coastguard Worker        ],
267*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
268*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
269*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_CHANGE_FUNCTION_ACCESS=1'],
270*90c8c64dSAndroid Build Coastguard Worker    ),
271*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
272*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_add_global_variable',
273*90c8c64dSAndroid Build Coastguard Worker        srcs=[
274*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
275*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
276*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
277*90c8c64dSAndroid Build Coastguard Worker        ],
278*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map_added_globvar.txt',
279*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
280*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_ADD_GLOBVAR=1'],
281*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
282*90c8c64dSAndroid Build Coastguard Worker    ),
283*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
284*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_add_global_variable_private',
285*90c8c64dSAndroid Build Coastguard Worker        srcs=[
286*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
287*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
288*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
289*90c8c64dSAndroid Build Coastguard Worker        ],
290*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map_added_globvar.txt',
291*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
292*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_ADD_GLOBVAR=1', '-DGOLDEN_ADD_GLOBVAR_PRIVATE'],
293*90c8c64dSAndroid Build Coastguard Worker    ),
294*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
295*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_return_type_diff',
296*90c8c64dSAndroid Build Coastguard Worker        srcs=[
297*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
298*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
299*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
300*90c8c64dSAndroid Build Coastguard Worker        ],
301*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
302*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
303*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_RETURN_TYPE_DIFF=1'],
304*90c8c64dSAndroid Build Coastguard Worker    ),
305*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
306*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_parameter_type_diff',
307*90c8c64dSAndroid Build Coastguard Worker        srcs=[
308*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
309*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
310*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
311*90c8c64dSAndroid Build Coastguard Worker        ],
312*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map_parameter_type_diff.txt',
313*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
314*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_PARAMETER_TYPE_DIFF=1'],
315*90c8c64dSAndroid Build Coastguard Worker    ),
316*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
317*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_vtable_diff',
318*90c8c64dSAndroid Build Coastguard Worker        srcs=[
319*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
320*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
321*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
322*90c8c64dSAndroid Build Coastguard Worker        ],
323*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
324*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
325*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_VTABLE_DIFF=1'],
326*90c8c64dSAndroid Build Coastguard Worker    ),
327*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
328*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_member_diff',
329*90c8c64dSAndroid Build Coastguard Worker        srcs=[
330*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
331*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
332*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
333*90c8c64dSAndroid Build Coastguard Worker        ],
334*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
335*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
336*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_MEMBER_DIFF=1'],
337*90c8c64dSAndroid Build Coastguard Worker    ),
338*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
339*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_member_fake_diff',
340*90c8c64dSAndroid Build Coastguard Worker        srcs=[
341*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
342*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
343*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
344*90c8c64dSAndroid Build Coastguard Worker        ],
345*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
346*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
347*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_MEMBER_FAKE_DIFF=1'],
348*90c8c64dSAndroid Build Coastguard Worker    ),
349*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
350*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_member_cv_diff',
351*90c8c64dSAndroid Build Coastguard Worker        srcs=[
352*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
353*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
354*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
355*90c8c64dSAndroid Build Coastguard Worker        ],
356*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
357*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
358*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_MEMBER_CV_DIFF=1'],
359*90c8c64dSAndroid Build Coastguard Worker    ),
360*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
361*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_change_member_access',
362*90c8c64dSAndroid Build Coastguard Worker        srcs=[
363*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
364*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
365*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
366*90c8c64dSAndroid Build Coastguard Worker        ],
367*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
368*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
369*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_CHANGE_MEMBER_ACCESS=1'],
370*90c8c64dSAndroid Build Coastguard Worker    ),
371*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
372*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_member_integral_type_diff',
373*90c8c64dSAndroid Build Coastguard Worker        srcs=[
374*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
375*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
376*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
377*90c8c64dSAndroid Build Coastguard Worker        ],
378*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
379*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
380*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_MEMBER_INTEGRAL_TYPE_DIFF=1'],
381*90c8c64dSAndroid Build Coastguard Worker    ),
382*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
383*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_enum_diff',
384*90c8c64dSAndroid Build Coastguard Worker        srcs=[
385*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
386*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
387*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
388*90c8c64dSAndroid Build Coastguard Worker        ],
389*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
390*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
391*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_ENUM_DIFF=1'],
392*90c8c64dSAndroid Build Coastguard Worker    ),
393*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
394*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_enum_extended',
395*90c8c64dSAndroid Build Coastguard Worker        srcs=[
396*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
397*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
398*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
399*90c8c64dSAndroid Build Coastguard Worker        ],
400*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
401*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
402*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_ENUM_EXTENSION=1'],
403*90c8c64dSAndroid Build Coastguard Worker    ),
404*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
405*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_unreferenced_elf_symbol_removed',
406*90c8c64dSAndroid Build Coastguard Worker        srcs=[
407*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
408*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
409*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
410*90c8c64dSAndroid Build Coastguard Worker        ],
411*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map_elf_symbol_removed.txt',
412*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
413*90c8c64dSAndroid Build Coastguard Worker    ),
414*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
415*90c8c64dSAndroid Build Coastguard Worker        name='libreproducability',
416*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/c_and_cpp/reproducability.c'],
417*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/c_and_cpp/repro_map.txt',
418*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/c_and_cpp/include'],
419*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
420*90c8c64dSAndroid Build Coastguard Worker    ),
421*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
422*90c8c64dSAndroid Build Coastguard Worker        name='libifunc',
423*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/ifunc/ifunc.c'],
424*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/ifunc/map.txt',
425*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=[],
426*90c8c64dSAndroid Build Coastguard Worker        linker_flags=[
427*90c8c64dSAndroid Build Coastguard Worker            '-so', relative_to_abs_path(
428*90c8c64dSAndroid Build Coastguard Worker                'integration/ifunc/prebuilts/libifunc.so'
429*90c8c64dSAndroid Build Coastguard Worker            ),
430*90c8c64dSAndroid Build Coastguard Worker        ],
431*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
432*90c8c64dSAndroid Build Coastguard Worker    ),
433*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
434*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_member_name_changed',
435*90c8c64dSAndroid Build Coastguard Worker        srcs=[
436*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
437*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
438*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
439*90c8c64dSAndroid Build Coastguard Worker        ],
440*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
441*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
442*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_CHANGE_MEMBER_NAME_SAME_OFFSET=1'],
443*90c8c64dSAndroid Build Coastguard Worker    ),
444*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
445*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_function_pointer',
446*90c8c64dSAndroid Build Coastguard Worker        srcs=[
447*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
448*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
449*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
450*90c8c64dSAndroid Build Coastguard Worker        ],
451*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
452*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
453*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_FUNCTION_POINTER=1'],
454*90c8c64dSAndroid Build Coastguard Worker    ),
455*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
456*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_function_pointer_parameter_added',
457*90c8c64dSAndroid Build Coastguard Worker        srcs=[
458*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
459*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
460*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
461*90c8c64dSAndroid Build Coastguard Worker        ],
462*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
463*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
464*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_FUNCTION_POINTER_ADD_PARAM=1',
465*90c8c64dSAndroid Build Coastguard Worker                '-DGOLDEN_FUNCTION_POINTER=1'],
466*90c8c64dSAndroid Build Coastguard Worker    ),
467*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
468*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_internal_public_struct',
469*90c8c64dSAndroid Build Coastguard Worker        srcs=[
470*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
471*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
472*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
473*90c8c64dSAndroid Build Coastguard Worker        ],
474*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
475*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
476*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_WITH_INTERNAL_STRUCT',
477*90c8c64dSAndroid Build Coastguard Worker                '-DGOLDEN_WITH_PUBLIC_INTERNAL_STRUCT'],
478*90c8c64dSAndroid Build Coastguard Worker    ),
479*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
480*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_internal_private_struct',
481*90c8c64dSAndroid Build Coastguard Worker        srcs=[
482*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
483*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
484*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
485*90c8c64dSAndroid Build Coastguard Worker        ],
486*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
487*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
488*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_WITH_INTERNAL_STRUCT'],
489*90c8c64dSAndroid Build Coastguard Worker    ),
490*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
491*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_inheritance_type_changed',
492*90c8c64dSAndroid Build Coastguard Worker        srcs=[
493*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
494*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
495*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
496*90c8c64dSAndroid Build Coastguard Worker        ],
497*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
498*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
499*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DGOLDEN_CHANGE_INHERITANCE_TYPE'],
500*90c8c64dSAndroid Build Coastguard Worker    ),
501*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
502*90c8c64dSAndroid Build Coastguard Worker        name='libpure_virtual_function',
503*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/cpp/pure_virtual/pure_virtual_function.cpp'],
504*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/pure_virtual/include'],
505*90c8c64dSAndroid Build Coastguard Worker        version_script='',
506*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
507*90c8c64dSAndroid Build Coastguard Worker    ),
508*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
509*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_cpp_json',
510*90c8c64dSAndroid Build Coastguard Worker        srcs=[
511*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/golden_1.cpp',
512*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/high_volume_speaker.cpp',
513*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/gold/low_volume_speaker.cpp',
514*90c8c64dSAndroid Build Coastguard Worker        ],
515*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/cpp/gold/map.txt',
516*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/gold/include'],
517*90c8c64dSAndroid Build Coastguard Worker        dumper_flags=['-output-format', 'Json'],
518*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-input-format', 'Json', '-output-format', 'Json'],
519*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
520*90c8c64dSAndroid Build Coastguard Worker    ),
521*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
522*90c8c64dSAndroid Build Coastguard Worker        name='libopaque_type',
523*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
524*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/opaque_type/include/opaque_type.h'],
525*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/opaque_type/map.txt',
526*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/opaque_type/include'],
527*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
528*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
529*90c8c64dSAndroid Build Coastguard Worker    ),
530*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
531*90c8c64dSAndroid Build Coastguard Worker        name='libversion_script_example',
532*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
533*90c8c64dSAndroid Build Coastguard Worker        srcs=[
534*90c8c64dSAndroid Build Coastguard Worker            'integration/version_script_example/example.cpp',
535*90c8c64dSAndroid Build Coastguard Worker        ],
536*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/version_script_example/map.txt',
537*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/version_script_example'],
538*90c8c64dSAndroid Build Coastguard Worker        dumper_flags=['-output-format', 'Json'],
539*90c8c64dSAndroid Build Coastguard Worker        linker_flags=[
540*90c8c64dSAndroid Build Coastguard Worker            '-input-format', 'Json',
541*90c8c64dSAndroid Build Coastguard Worker            '-output-format', 'Json',
542*90c8c64dSAndroid Build Coastguard Worker            '-so', relative_to_abs_path(
543*90c8c64dSAndroid Build Coastguard Worker                'integration/version_script_example/prebuilts/' +
544*90c8c64dSAndroid Build Coastguard Worker                'libversion_script_example.so'
545*90c8c64dSAndroid Build Coastguard Worker            ),
546*90c8c64dSAndroid Build Coastguard Worker        ],
547*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
548*90c8c64dSAndroid Build Coastguard Worker    ),
549*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
550*90c8c64dSAndroid Build Coastguard Worker        name='libversion_script_example_no_private',
551*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
552*90c8c64dSAndroid Build Coastguard Worker        srcs=[
553*90c8c64dSAndroid Build Coastguard Worker            'integration/version_script_example/example.cpp',
554*90c8c64dSAndroid Build Coastguard Worker        ],
555*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/version_script_example/map.txt',
556*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/version_script_example'],
557*90c8c64dSAndroid Build Coastguard Worker        dumper_flags=['-output-format', 'Json'],
558*90c8c64dSAndroid Build Coastguard Worker        linker_flags=[
559*90c8c64dSAndroid Build Coastguard Worker            '-input-format', 'Json',
560*90c8c64dSAndroid Build Coastguard Worker            '-output-format', 'Json',
561*90c8c64dSAndroid Build Coastguard Worker            '-so', relative_to_abs_path(
562*90c8c64dSAndroid Build Coastguard Worker                'integration/version_script_example/prebuilts/' +
563*90c8c64dSAndroid Build Coastguard Worker                'libversion_script_example.so'
564*90c8c64dSAndroid Build Coastguard Worker            ),
565*90c8c64dSAndroid Build Coastguard Worker            '--exclude-symbol-version', '*_PRIVATE',
566*90c8c64dSAndroid Build Coastguard Worker        ],
567*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
568*90c8c64dSAndroid Build Coastguard Worker    ),
569*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
570*90c8c64dSAndroid Build Coastguard Worker        name='libversion_script_example_no_mytag',
571*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
572*90c8c64dSAndroid Build Coastguard Worker        srcs=[
573*90c8c64dSAndroid Build Coastguard Worker            'integration/version_script_example/example.cpp',
574*90c8c64dSAndroid Build Coastguard Worker        ],
575*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/version_script_example/map.txt',
576*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/version_script_example'],
577*90c8c64dSAndroid Build Coastguard Worker        dumper_flags=['-output-format', 'Json'],
578*90c8c64dSAndroid Build Coastguard Worker        linker_flags=[
579*90c8c64dSAndroid Build Coastguard Worker            '-input-format', 'Json',
580*90c8c64dSAndroid Build Coastguard Worker            '-output-format', 'Json',
581*90c8c64dSAndroid Build Coastguard Worker            '-so', relative_to_abs_path(
582*90c8c64dSAndroid Build Coastguard Worker                'integration/version_script_example/prebuilts/' +
583*90c8c64dSAndroid Build Coastguard Worker                'libversion_script_example.so'
584*90c8c64dSAndroid Build Coastguard Worker            ),
585*90c8c64dSAndroid Build Coastguard Worker            '--exclude-symbol-tag', 'mytag',
586*90c8c64dSAndroid Build Coastguard Worker        ],
587*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
588*90c8c64dSAndroid Build Coastguard Worker    ),
589*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
590*90c8c64dSAndroid Build Coastguard Worker        name='libversion_script_example_api_level',
591*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
592*90c8c64dSAndroid Build Coastguard Worker        srcs=[
593*90c8c64dSAndroid Build Coastguard Worker            'integration/version_script_example/example.cpp',
594*90c8c64dSAndroid Build Coastguard Worker        ],
595*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/version_script_example/map.txt',
596*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/version_script_example'],
597*90c8c64dSAndroid Build Coastguard Worker        dumper_flags=['-output-format', 'Json'],
598*90c8c64dSAndroid Build Coastguard Worker        linker_flags=[
599*90c8c64dSAndroid Build Coastguard Worker            '-input-format', 'Json',
600*90c8c64dSAndroid Build Coastguard Worker            '-output-format', 'Json',
601*90c8c64dSAndroid Build Coastguard Worker            '-so', relative_to_abs_path(
602*90c8c64dSAndroid Build Coastguard Worker                'integration/version_script_example/prebuilts/' +
603*90c8c64dSAndroid Build Coastguard Worker                'libversion_script_example.so'
604*90c8c64dSAndroid Build Coastguard Worker            ),
605*90c8c64dSAndroid Build Coastguard Worker            '-api', '32',
606*90c8c64dSAndroid Build Coastguard Worker            '-api-map', relative_to_abs_path(
607*90c8c64dSAndroid Build Coastguard Worker                'integration/version_script_example/api_levels.json'
608*90c8c64dSAndroid Build Coastguard Worker            ),
609*90c8c64dSAndroid Build Coastguard Worker        ],
610*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
611*90c8c64dSAndroid Build Coastguard Worker    ),
612*90c8c64dSAndroid Build Coastguard Worker    # Test data for test_allow_adding_removing_weak_symbols
613*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
614*90c8c64dSAndroid Build Coastguard Worker        name='libweak_symbols_old',
615*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
616*90c8c64dSAndroid Build Coastguard Worker        srcs=[
617*90c8c64dSAndroid Build Coastguard Worker            'integration/weak_symbols/example.c',
618*90c8c64dSAndroid Build Coastguard Worker        ],
619*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/weak_symbols/old_map.txt',
620*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=[],
621*90c8c64dSAndroid Build Coastguard Worker        dumper_flags=['-output-format', 'Json'],
622*90c8c64dSAndroid Build Coastguard Worker        linker_flags=[
623*90c8c64dSAndroid Build Coastguard Worker            '-input-format', 'Json',
624*90c8c64dSAndroid Build Coastguard Worker            '-output-format', 'Json',
625*90c8c64dSAndroid Build Coastguard Worker        ],
626*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
627*90c8c64dSAndroid Build Coastguard Worker    ),
628*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
629*90c8c64dSAndroid Build Coastguard Worker        name='libweak_symbols_new',
630*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
631*90c8c64dSAndroid Build Coastguard Worker        srcs=[
632*90c8c64dSAndroid Build Coastguard Worker            'integration/weak_symbols/example.c',
633*90c8c64dSAndroid Build Coastguard Worker        ],
634*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/weak_symbols/new_map.txt',
635*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=[],
636*90c8c64dSAndroid Build Coastguard Worker        dumper_flags=['-output-format', 'Json'],
637*90c8c64dSAndroid Build Coastguard Worker        linker_flags=[
638*90c8c64dSAndroid Build Coastguard Worker            '-input-format', 'Json',
639*90c8c64dSAndroid Build Coastguard Worker            '-output-format', 'Json',
640*90c8c64dSAndroid Build Coastguard Worker        ],
641*90c8c64dSAndroid Build Coastguard Worker        cflags=['-DNEW=1'],
642*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
643*90c8c64dSAndroid Build Coastguard Worker    ),
644*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
645*90c8c64dSAndroid Build Coastguard Worker        name='libempty',
646*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
647*90c8c64dSAndroid Build Coastguard Worker        srcs=[],
648*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/c_and_cpp/map.txt',
649*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/c_and_cpp/include'],
650*90c8c64dSAndroid Build Coastguard Worker        linker_flags=[
651*90c8c64dSAndroid Build Coastguard Worker            '-output-format', 'Json',
652*90c8c64dSAndroid Build Coastguard Worker        ],
653*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
654*90c8c64dSAndroid Build Coastguard Worker    ),
655*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
656*90c8c64dSAndroid Build Coastguard Worker        name='libgolden_anonymous_enum',
657*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
658*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/cpp/anonymous_enum/include/golden.h'],
659*90c8c64dSAndroid Build Coastguard Worker        version_script='',
660*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/anonymous_enum/include'],
661*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
662*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
663*90c8c64dSAndroid Build Coastguard Worker    ),
664*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
665*90c8c64dSAndroid Build Coastguard Worker        name='libswap_anonymous_enum',
666*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
667*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/cpp/anonymous_enum/include/swap_enum.h'],
668*90c8c64dSAndroid Build Coastguard Worker        version_script='',
669*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/anonymous_enum/include'],
670*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
671*90c8c64dSAndroid Build Coastguard Worker    ),
672*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
673*90c8c64dSAndroid Build Coastguard Worker        name='libswap_anonymous_enum_field',
674*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
675*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/cpp/anonymous_enum/include/swap_enum_field.h'],
676*90c8c64dSAndroid Build Coastguard Worker        version_script='',
677*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/anonymous_enum/include'],
678*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
679*90c8c64dSAndroid Build Coastguard Worker    ),
680*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
681*90c8c64dSAndroid Build Coastguard Worker        name='libanonymous_enum_odr',
682*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
683*90c8c64dSAndroid Build Coastguard Worker        srcs=[
684*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/anonymous_enum/include/golden.h',
685*90c8c64dSAndroid Build Coastguard Worker            'integration/cpp/anonymous_enum/include/include_golden.h',
686*90c8c64dSAndroid Build Coastguard Worker        ],
687*90c8c64dSAndroid Build Coastguard Worker        version_script='',
688*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/cpp/anonymous_enum/include'],
689*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
690*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
691*90c8c64dSAndroid Build Coastguard Worker    ),
692*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
693*90c8c64dSAndroid Build Coastguard Worker        name='libmerge_multi_definitions',
694*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
695*90c8c64dSAndroid Build Coastguard Worker        srcs=[
696*90c8c64dSAndroid Build Coastguard Worker            'integration/merge_multi_definitions/include/def1.h',
697*90c8c64dSAndroid Build Coastguard Worker            'integration/merge_multi_definitions/include/def2.h',
698*90c8c64dSAndroid Build Coastguard Worker        ],
699*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/merge_multi_definitions/map.txt',
700*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/merge_multi_definitions/include'],
701*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json', '-sources-per-thread', '1'],
702*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
703*90c8c64dSAndroid Build Coastguard Worker    ),
704*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
705*90c8c64dSAndroid Build Coastguard Worker        name='libdiff_multi_definitions',
706*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
707*90c8c64dSAndroid Build Coastguard Worker        srcs=[
708*90c8c64dSAndroid Build Coastguard Worker            'integration/merge_multi_definitions/include/def1.h',
709*90c8c64dSAndroid Build Coastguard Worker            'integration/merge_multi_definitions/include/link_to_def2.h',
710*90c8c64dSAndroid Build Coastguard Worker        ],
711*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/merge_multi_definitions/map.txt',
712*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/merge_multi_definitions/include'],
713*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json', '-sources-per-thread', '1'],
714*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
715*90c8c64dSAndroid Build Coastguard Worker    ),
716*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
717*90c8c64dSAndroid Build Coastguard Worker        name='libstruct_extensions',
718*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
719*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/struct_extensions/include/base.h'],
720*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/struct_extensions/map.txt',
721*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/struct_extensions/include'],
722*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
723*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
724*90c8c64dSAndroid Build Coastguard Worker    ),
725*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
726*90c8c64dSAndroid Build Coastguard Worker        name='liballowed_struct_extensions',
727*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
728*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/struct_extensions/include/extensions.h'],
729*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/struct_extensions/map.txt',
730*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/struct_extensions/include'],
731*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
732*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
733*90c8c64dSAndroid Build Coastguard Worker    ),
734*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
735*90c8c64dSAndroid Build Coastguard Worker        name='libpass_by_value',
736*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
737*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/pass_by_value/include/base.h'],
738*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/pass_by_value/map.txt',
739*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/pass_by_value/include'],
740*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
741*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
742*90c8c64dSAndroid Build Coastguard Worker    ),
743*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
744*90c8c64dSAndroid Build Coastguard Worker        name='libparam_size_diff',
745*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
746*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/pass_by_value/include/param_size_diff.h'],
747*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/pass_by_value/map.txt',
748*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/pass_by_value/include'],
749*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
750*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
751*90c8c64dSAndroid Build Coastguard Worker    ),
752*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
753*90c8c64dSAndroid Build Coastguard Worker        name='libreturn_size_diff',
754*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
755*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/pass_by_value/include/return_size_diff.h'],
756*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/pass_by_value/map.txt',
757*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/pass_by_value/include'],
758*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
759*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
760*90c8c64dSAndroid Build Coastguard Worker    ),
761*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
762*90c8c64dSAndroid Build Coastguard Worker        name='libfunction_extensions',
763*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
764*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/function_extensions/include/base.h'],
765*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/function_extensions/map.txt',
766*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/function_extensions/include'],
767*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
768*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
769*90c8c64dSAndroid Build Coastguard Worker    ),
770*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
771*90c8c64dSAndroid Build Coastguard Worker        name='liballowed_function_extensions',
772*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
773*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/function_extensions/include/extensions.h'],
774*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/function_extensions/map.txt',
775*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/function_extensions/include'],
776*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
777*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
778*90c8c64dSAndroid Build Coastguard Worker    ),
779*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
780*90c8c64dSAndroid Build Coastguard Worker        name='libarray',
781*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
782*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/array/include/base.h'],
783*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/array/map.txt',
784*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/array/include'],
785*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
786*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
787*90c8c64dSAndroid Build Coastguard Worker    ),
788*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
789*90c8c64dSAndroid Build Coastguard Worker        name='libarray_diff',
790*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
791*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/array/include/diff.h'],
792*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/array/map.txt',
793*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/array/include'],
794*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
795*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
796*90c8c64dSAndroid Build Coastguard Worker    ),
797*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
798*90c8c64dSAndroid Build Coastguard Worker        name='libunion',
799*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
800*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/union/include/base.h'],
801*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/union/map.txt',
802*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/union/include'],
803*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
804*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
805*90c8c64dSAndroid Build Coastguard Worker    ),
806*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
807*90c8c64dSAndroid Build Coastguard Worker        name='libunion_diff',
808*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
809*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/union/include/diff.h'],
810*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/union/map.txt',
811*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/union/include'],
812*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-output-format', 'Json'],
813*90c8c64dSAndroid Build Coastguard Worker    ),
814*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
815*90c8c64dSAndroid Build Coastguard Worker        name='libenum',
816*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
817*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/enum/include/base.h'],
818*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/enum/map.txt',
819*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/enum/include'],
820*90c8c64dSAndroid Build Coastguard Worker        dumper_flags=['-output-format', 'Json'],
821*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-input-format', 'Json', '-output-format', 'Json'],
822*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
823*90c8c64dSAndroid Build Coastguard Worker    ),
824*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
825*90c8c64dSAndroid Build Coastguard Worker        name='libbit_field',
826*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
827*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/bit_field/include/base.h'],
828*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/bit_field/map.txt',
829*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/bit_field/include'],
830*90c8c64dSAndroid Build Coastguard Worker        dumper_flags=['-output-format', 'Json'],
831*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-input-format', 'Json', '-output-format', 'Json'],
832*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
833*90c8c64dSAndroid Build Coastguard Worker    ),
834*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
835*90c8c64dSAndroid Build Coastguard Worker        name='libbit_field_diff',
836*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
837*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/bit_field/include/diff.h'],
838*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/bit_field/map.txt',
839*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/bit_field/include'],
840*90c8c64dSAndroid Build Coastguard Worker        dumper_flags=['-output-format', 'Json'],
841*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-input-format', 'Json', '-output-format', 'Json'],
842*90c8c64dSAndroid Build Coastguard Worker    ),
843*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
844*90c8c64dSAndroid Build Coastguard Worker        name='libavailability',
845*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
846*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/availability/include/base.h'],
847*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/availability/map.txt',
848*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/availability/include'],
849*90c8c64dSAndroid Build Coastguard Worker        dumper_flags=['-output-format', 'Json'],
850*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-input-format', 'Json', '-output-format', 'Json'],
851*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
852*90c8c64dSAndroid Build Coastguard Worker    ),
853*90c8c64dSAndroid Build Coastguard Worker    LsdumpModule(
854*90c8c64dSAndroid Build Coastguard Worker        name='libavailability_35',
855*90c8c64dSAndroid Build Coastguard Worker        arch='arm64',
856*90c8c64dSAndroid Build Coastguard Worker        srcs=['integration/availability/include/base.h'],
857*90c8c64dSAndroid Build Coastguard Worker        version_script='integration/availability/map.txt',
858*90c8c64dSAndroid Build Coastguard Worker        export_include_dirs=['integration/availability/include'],
859*90c8c64dSAndroid Build Coastguard Worker        dumper_flags=['-output-format', 'Json'],
860*90c8c64dSAndroid Build Coastguard Worker        linker_flags=['-input-format', 'Json', '-output-format', 'Json',
861*90c8c64dSAndroid Build Coastguard Worker                      '-availability', '35'],
862*90c8c64dSAndroid Build Coastguard Worker        has_reference_dump=True,
863*90c8c64dSAndroid Build Coastguard Worker    ),
864*90c8c64dSAndroid Build Coastguard Worker]
865*90c8c64dSAndroid Build Coastguard Worker
866*90c8c64dSAndroid Build Coastguard WorkerTEST_MODULES = {m.name: m for m in TEST_MODULES}
867