@@ -417,30 +417,32 @@ func (b2g *bpf2go) convert(tgt gen.Target, goarches gen.GoArches) (err error) {
417417 var allDeps []dependency
418418 var tmpObjFileNames []string
419419 for _ , source := range b2g .sourceFiles {
420- deps , err := b2g .compileOne (tgt , cwd , source , objFileName )
421- if err != nil {
422- return err
423- }
424-
425- if len (deps ) > 0 {
426- // There is always at least a dependency for the main file.
427- deps [0 ].file = goFileName
428- allDeps = append (allDeps , deps ... )
429- }
430-
431- // For multiple source files, we need to move the compiled object to a temporary file
420+ // Determine the target object file name
421+ var targetObjFileName string
432422 if len (b2g .sourceFiles ) > 1 {
423+ // For multiple source files, use a temporary file
433424 tmpObj , err := os .CreateTemp ("" , filepath .Base (source ))
434425 if err != nil {
435426 return fmt .Errorf ("create temporary object file: %w" , err )
436427 }
437428 tmpObj .Close ()
438429 defer os .Remove (tmpObj .Name ())
430+ targetObjFileName = tmpObj .Name ()
431+ tmpObjFileNames = append (tmpObjFileNames , targetObjFileName )
432+ } else {
433+ // For single source file, use the final object file name
434+ targetObjFileName = objFileName
435+ }
439436
440- if err := os .Rename (objFileName , tmpObj .Name ()); err != nil {
441- return fmt .Errorf ("move object file: %w" , err )
442- }
443- tmpObjFileNames = append (tmpObjFileNames , tmpObj .Name ())
437+ deps , err := b2g .compileOne (tgt , cwd , source , targetObjFileName )
438+ if err != nil {
439+ return err
440+ }
441+
442+ if len (deps ) > 0 {
443+ // There is always at least a dependency for the main file.
444+ deps [0 ].file = goFileName
445+ allDeps = append (allDeps , deps ... )
444446 }
445447 }
446448
0 commit comments