@@ -434,18 +434,7 @@ def remove_trailing_zeros(memfile):
434
434
435
435
436
436
@ToolchainProfiler .profile ()
437
- def get_metadata_binaryen (infile , outfile , modify_wasm , args ):
438
- stdout = building .run_binaryen_command ('wasm-emscripten-finalize' ,
439
- infile = infile ,
440
- outfile = outfile if modify_wasm else None ,
441
- args = args ,
442
- stdout = subprocess .PIPE )
443
- metadata = load_metadata_json (stdout )
444
- return metadata
445
-
446
-
447
- @ToolchainProfiler .profile ()
448
- def get_metadata_python (infile , outfile , modify_wasm , args ):
437
+ def get_metadata (infile , outfile , modify_wasm , args ):
449
438
metadata = extract_metadata .extract_metadata (infile )
450
439
if modify_wasm :
451
440
# In some cases we still need to modify the wasm file
@@ -554,30 +543,7 @@ def finalize_wasm(infile, outfile, memfile):
554
543
if settings .DEBUG_LEVEL >= 3 :
555
544
args .append ('--dwarf' )
556
545
557
- # Currently we have two different ways to extract the metadata from the
558
- # wasm binary:
559
- # 1. via wasm-emscripten-finalize (binaryen)
560
- # 2. via local python code
561
- # We also have a 'compare' mode that runs both extraction methods and
562
- # checks that they produce identical results.
563
- read_metadata = os .environ .get ('EMCC_READ_METADATA' , 'python' )
564
- if read_metadata == 'binaryen' :
565
- metadata = get_metadata_binaryen (infile , outfile , modify_wasm , args )
566
- elif read_metadata == 'python' :
567
- metadata = get_metadata_python (infile , outfile , modify_wasm , args )
568
- elif read_metadata == 'compare' :
569
- shutil .copy2 (infile , infile + '.bak' )
570
- if settings .GENERATE_SOURCE_MAP :
571
- shutil .copy2 (infile + '.map' , infile + '.map.bak' )
572
- pymetadata = get_metadata_python (infile , outfile , modify_wasm , args )
573
- shutil .move (infile + '.bak' , infile )
574
- if settings .GENERATE_SOURCE_MAP :
575
- shutil .move (infile + '.map.bak' , infile + '.map' )
576
- metadata = get_metadata_binaryen (infile , outfile , modify_wasm , args )
577
- compare_metadata (metadata , pymetadata )
578
- else :
579
- assert False
580
-
546
+ metadata = get_metadata (infile , outfile , modify_wasm , args )
581
547
if modify_wasm :
582
548
building .save_intermediate (infile , 'post_finalize.wasm' )
583
549
elif infile != outfile :
@@ -899,36 +865,6 @@ def create_module(sending, receiving, invoke_funcs, metadata):
899
865
return module
900
866
901
867
902
- def load_metadata_json (metadata_raw ):
903
- try :
904
- metadata_json = json .loads (metadata_raw )
905
- except Exception :
906
- logger .error ('emscript: failure to parse metadata output from wasm-emscripten-finalize. raw output is: \n ' + metadata_raw )
907
- raise
908
-
909
- metadata = {
910
- 'declares' : [],
911
- 'globalImports' : [],
912
- 'exports' : [],
913
- 'namedGlobals' : {},
914
- 'emJsFuncs' : {},
915
- 'asmConsts' : {},
916
- 'invokeFuncs' : [],
917
- 'features' : [],
918
- 'mainReadsParams' : 1 ,
919
- }
920
-
921
- for key , value in metadata_json .items ():
922
- if key not in metadata :
923
- exit_with_error ('unexpected metadata key received from wasm-emscripten-finalize: %s' , key )
924
- metadata [key ] = value
925
-
926
- if DEBUG :
927
- logger .debug ("Metadata parsed: " + pprint .pformat (metadata ))
928
-
929
- return metadata
930
-
931
-
932
868
def create_invoke_wrappers (invoke_funcs ):
933
869
"""Asm.js-style exception handling: invoke wrapper generation."""
934
870
invoke_wrappers = ''
0 commit comments