Skip to content

Commit b709db4

Browse files
committed
bpf2go: avoid os.Rename, instead compiling to the desired object file name
1 parent 874e9a2 commit b709db4

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

cmd/bpf2go/main.go

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)