main: add -no-debug flag to avoid DWARF debug info
Этот коммит содержится в:
родитель
69f2cec045
коммит
0e813c4cb7
2 изменённых файлов: 10 добавлений и 9 удалений
17
main.go
17
main.go
|
@ -16,10 +16,10 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
// Helper function for Compiler object.
|
// Helper function for Compiler object.
|
||||||
func Compile(pkgName, outpath string, spec *TargetSpec, printIR, dumpSSA bool, printSizes string, action func(string) error) error {
|
func Compile(pkgName, outpath string, spec *TargetSpec, printIR, dumpSSA, debug bool, printSizes string, action func(string) error) error {
|
||||||
config := compiler.Config{
|
config := compiler.Config{
|
||||||
Triple: spec.Triple,
|
Triple: spec.Triple,
|
||||||
Debug: true, // TODO: make configurable
|
Debug: debug,
|
||||||
DumpSSA: dumpSSA,
|
DumpSSA: dumpSSA,
|
||||||
RootDir: sourceDir(),
|
RootDir: sourceDir(),
|
||||||
BuildTags: spec.BuildTags,
|
BuildTags: spec.BuildTags,
|
||||||
|
@ -139,13 +139,13 @@ func Compile(pkgName, outpath string, spec *TargetSpec, printIR, dumpSSA bool, p
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Build(pkgName, outpath, target string, printIR, dumpSSA bool, printSizes string) error {
|
func Build(pkgName, outpath, target string, printIR, dumpSSA, debug bool, printSizes string) error {
|
||||||
spec, err := LoadTarget(target)
|
spec, err := LoadTarget(target)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return Compile(pkgName, outpath, spec, printIR, dumpSSA, printSizes, func(tmppath string) error {
|
return Compile(pkgName, outpath, spec, printIR, dumpSSA, debug, printSizes, func(tmppath string) error {
|
||||||
if err := os.Rename(tmppath, outpath); err != nil {
|
if err := os.Rename(tmppath, outpath); err != nil {
|
||||||
// Moving failed. Do a file copy.
|
// Moving failed. Do a file copy.
|
||||||
inf, err := os.Open(tmppath)
|
inf, err := os.Open(tmppath)
|
||||||
|
@ -173,13 +173,13 @@ func Build(pkgName, outpath, target string, printIR, dumpSSA bool, printSizes st
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func Flash(pkgName, target, port string, printIR, dumpSSA bool, printSizes string) error {
|
func Flash(pkgName, target, port string, printIR, dumpSSA, debug bool, printSizes string) error {
|
||||||
spec, err := LoadTarget(target)
|
spec, err := LoadTarget(target)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return Compile(pkgName, ".hex", spec, printIR, dumpSSA, printSizes, func(tmppath string) error {
|
return Compile(pkgName, ".hex", spec, printIR, dumpSSA, debug, printSizes, func(tmppath string) error {
|
||||||
// Create the command.
|
// Create the command.
|
||||||
flashCmd := spec.Flasher
|
flashCmd := spec.Flasher
|
||||||
flashCmd = strings.Replace(flashCmd, "{hex}", tmppath, -1)
|
flashCmd = strings.Replace(flashCmd, "{hex}", tmppath, -1)
|
||||||
|
@ -247,6 +247,7 @@ func main() {
|
||||||
dumpSSA := flag.Bool("dumpssa", false, "dump internal Go SSA")
|
dumpSSA := flag.Bool("dumpssa", false, "dump internal Go SSA")
|
||||||
target := flag.String("target", llvm.DefaultTargetTriple(), "LLVM target")
|
target := flag.String("target", llvm.DefaultTargetTriple(), "LLVM target")
|
||||||
printSize := flag.String("size", "", "print sizes (none, short, full)")
|
printSize := flag.String("size", "", "print sizes (none, short, full)")
|
||||||
|
nodebug := flag.Bool("no-debug", false, "disable DWARF debug symbol generation")
|
||||||
port := flag.String("port", "/dev/ttyACM0", "flash port")
|
port := flag.String("port", "/dev/ttyACM0", "flash port")
|
||||||
|
|
||||||
if len(os.Args) < 2 {
|
if len(os.Args) < 2 {
|
||||||
|
@ -272,7 +273,7 @@ func main() {
|
||||||
usage()
|
usage()
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
err := Build(flag.Arg(0), *outpath, *target, *printIR, *dumpSSA, *printSize)
|
err := Build(flag.Arg(0), *outpath, *target, *printIR, *dumpSSA, !*nodebug, *printSize)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintln(os.Stderr, "error:", err)
|
fmt.Fprintln(os.Stderr, "error:", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
@ -283,7 +284,7 @@ func main() {
|
||||||
usage()
|
usage()
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
err := Flash(flag.Arg(0), *target, *port, *printIR, *dumpSSA, *printSize)
|
err := Flash(flag.Arg(0), *target, *port, *printIR, *dumpSSA, !*nodebug, *printSize)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintln(os.Stderr, "error:", err)
|
fmt.Fprintln(os.Stderr, "error:", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
|
|
@ -52,7 +52,7 @@ func runTest(path, tmpdir string, t *testing.T) {
|
||||||
|
|
||||||
// Build the test binary.
|
// Build the test binary.
|
||||||
binary := filepath.Join(tmpdir, "test")
|
binary := filepath.Join(tmpdir, "test")
|
||||||
err = Build(path, binary, "", false, false, "")
|
err = Build(path, binary, "", false, false, false, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Log("failed to build:", err)
|
t.Log("failed to build:", err)
|
||||||
t.Fail()
|
t.Fail()
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче