@@ -441,7 +441,7 @@ fn info(args: InfoArgs) -> Result<()> {
441
441
442
442
type ModuleMap < ' a > = BTreeMap < u32 , ( & ' a ModuleConfig , ObjInfo ) > ;
443
443
444
- fn update_symbols ( obj : & mut ObjInfo , modules : & ModuleMap < ' _ > ) -> Result < ( ) > {
444
+ fn update_symbols ( obj : & mut ObjInfo , modules : & ModuleMap < ' _ > , create_symbols : bool ) -> Result < ( ) > {
445
445
log:: debug!( "Updating symbols for module {}" , obj. module_id) ;
446
446
447
447
// Find all references to this module from other modules
@@ -482,7 +482,7 @@ fn update_symbols(obj: &mut ObjInfo, modules: &ModuleMap<'_>) -> Result<()> {
482
482
symbol. name
483
483
) ;
484
484
obj. symbols . flags ( symbol_index) . set_force_active ( true ) ;
485
- } else {
485
+ } else if create_symbols {
486
486
// Add label
487
487
log:: trace!(
488
488
"Creating label in section {} at {:#010X}" ,
@@ -942,13 +942,11 @@ fn split(args: SplitArgs) -> Result<()> {
942
942
let module_ids = modules. keys ( ) . cloned ( ) . collect_vec ( ) ;
943
943
944
944
// Create any missing symbols (referenced from other modules) and set FORCEACTIVE
945
- if !config. symbols_known {
946
- update_symbols ( & mut obj, & modules) ?;
947
- for & module_id in & module_ids {
948
- let ( module_config, mut module_obj) = modules. remove ( & module_id) . unwrap ( ) ;
949
- update_symbols ( & mut module_obj, & modules) ?;
950
- modules. insert ( module_id, ( module_config, module_obj) ) ;
951
- }
945
+ update_symbols ( & mut obj, & modules, !config. symbols_known ) ?;
946
+ for & module_id in & module_ids {
947
+ let ( module_config, mut module_obj) = modules. remove ( & module_id) . unwrap ( ) ;
948
+ update_symbols ( & mut module_obj, & modules, !config. symbols_known ) ?;
949
+ modules. insert ( module_id, ( module_config, module_obj) ) ;
952
950
}
953
951
954
952
// Create relocations to symbols in other modules
0 commit comments