func (scfg *SysinitCfg) detectConflicts() {
	m := map[string][]stage.StageFunc{}
	for _, sf := range scfg.StageFuncs {
		m[sf.Name] = append(m[sf.Name], sf)
	}
	for name, sfs := range m {
		if len(sfs) > 1 {
			scfg.Conflicts[name] = sfs
		}
	}
}
Searches the sysinit configuration for entries with identical function
names.  The sysinit configuration object is populated with the results.
package sysinit
import (
	"bytes"
	"fmt"
	"io"
	"mynewt.apache.org/newt/newt/newtutil"
	"mynewt.apache.org/newt/newt/pkg"
	"mynewt.apache.org/newt/newt/stage"
	"mynewt.apache.org/newt/newt/syscfg"
)
type SysinitCfg struct {
	StageFuncs []stage.StageFunc
	InvalidSettings []string
	Conflicts map[string][]stage.StageFunc
}
func (scfg *SysinitCfg) readOnePkg(lpkg *pkg.LocalPackage, cfg *syscfg.Cfg) {
	settings := cfg.AllSettingsForLpkg(lpkg)
	initMap := lpkg.InitFuncs(settings)
	for name, stageStr := range initMap {
		sf, err := stage.NewStageFunc(name, stageStr, lpkg, cfg)
		if err != nil {
			scfg.InvalidSettings = append(scfg.InvalidSettings, err.Error())
		} else {
			scfg.StageFuncs = append(scfg.StageFuncs, sf)
		}
	}
}