29
29
SO_EXT = '.so'
30
30
SOURCE_ABI_DUMP_EXT_END = '.lsdump'
31
31
SOURCE_ABI_DUMP_EXT = SO_EXT + SOURCE_ABI_DUMP_EXT_END
32
- VENDOR_SUFFIX = '.vendor'
32
+ LLNDK_ABI_DUMP_EXT = SO_EXT + '.llndk' + SOURCE_ABI_DUMP_EXT_END
33
33
34
34
DEFAULT_CPPFLAGS = ['-x' , 'c++' , '-std=c++11' ]
35
35
DEFAULT_CFLAGS = ['-std=gnu99' ]
@@ -83,6 +83,14 @@ def get_arch_cpu_str(self):
83
83
return self .arch + arch_variant + cpu_variant
84
84
85
85
86
+ def _strip_dump_name_ext (filename ):
87
+ """Remove .so*.lsdump from a file name."""
88
+ for ext in (SOURCE_ABI_DUMP_EXT , LLNDK_ABI_DUMP_EXT ):
89
+ if filename .endswith (ext ) and len (filename ) > len (ext ):
90
+ return filename [:- len (ext )]
91
+ raise ValueError (f'{ filename } has an unknown file name extension.' )
92
+
93
+
86
94
def _validate_dump_content (dump_path ):
87
95
"""Make sure that the dump contains relative source paths."""
88
96
with open (dump_path , 'r' ) as f :
@@ -102,13 +110,14 @@ def _validate_dump_content(dump_path):
102
110
103
111
104
112
def copy_reference_dump (lib_path , reference_dump_dir ):
105
- reference_dump_path = os .path .join (
106
- reference_dump_dir , os .path .basename (lib_path ))
107
- os .makedirs (os .path .dirname (reference_dump_path ), exist_ok = True )
108
113
_validate_dump_content (lib_path )
109
- shutil .copyfile (lib_path , reference_dump_path )
110
- print ('Created abi dump at' , reference_dump_path )
111
- return reference_dump_path
114
+ ref_dump_name = (_strip_dump_name_ext (os .path .basename (lib_path )) +
115
+ SOURCE_ABI_DUMP_EXT )
116
+ ref_dump_path = os .path .join (reference_dump_dir , ref_dump_name )
117
+ os .makedirs (reference_dump_dir , exist_ok = True )
118
+ shutil .copyfile (lib_path , ref_dump_path )
119
+ print (f'Created abi dump at { ref_dump_path } ' )
120
+ return ref_dump_path
112
121
113
122
114
123
def run_header_abi_dumper (input_path , output_path , cflags = tuple (),
@@ -230,11 +239,7 @@ def _read_lsdump_paths(lsdump_paths_file_path, arches, lsdump_filter):
230
239
continue
231
240
tag , path = (x .strip () for x in line .split (':' , 1 ))
232
241
dir_path , filename = os .path .split (path )
233
- if not filename .endswith (SOURCE_ABI_DUMP_EXT ):
234
- continue
235
- libname = filename [:- len (SOURCE_ABI_DUMP_EXT )]
236
- if not libname :
237
- continue
242
+ libname = _strip_dump_name_ext (filename )
238
243
if not lsdump_filter (tag , libname ):
239
244
continue
240
245
# dir_path may contain soong config hash.
0 commit comments