ac3c7c0
diff --git a/build.go b/build.go
ba4b6d7
index 3744feb..7a4494a 100644
ac3c7c0
--- a/build.go
ac3c7c0
+++ b/build.go
ba4b6d7
@@ -443,9 +443,16 @@ func build(target target, tags []string) {
ac3c7c0
 	lazyRebuildAssets()
ac3c7c0
 
ac3c7c0
 	tags = append(target.tags, tags...)
ac3c7c0
+	tags = append(tags, "rpm_crashtraceback")
ac3c7c0
 
ac3c7c0
 	rmr(target.BinaryName())
ac3c7c0
-	args := []string{"build", "-i", "-v", "-ldflags", ldflags()}
ac3c7c0
+
ac3c7c0
+	build_id, _ := ioutil.ReadFile("build_id")
ac3c7c0
+	ldflags := fmt.Sprintf("%s %s -B 0x%s -extldflags '-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld'",
ac3c7c0
+		ldflags(), os.Getenv("LDFLAGS"), build_id)
ac3c7c0
+
ba4b6d7
+	args := []string{"build", "-compiler", "gc", "-ldflags", ldflags, "-a", "-v", "-x"}
ac3c7c0
+
ba4b6d7
 	if pkgdir != "" {
ba4b6d7
 		args = append(args, "-pkgdir", pkgdir)
ac3c7c0
 	}
ba4b6d7
@@ -724,11 +731,10 @@ func ldflags() string {
ac3c7c0
 	}
ac3c7c0
 
ac3c7c0
 	b := new(bytes.Buffer)
ac3c7c0
-	b.WriteString("-w")
ac3c7c0
-	fmt.Fprintf(b, " -X main.Version%c%s", sep, version)
ac3c7c0
-	fmt.Fprintf(b, " -X main.BuildStamp%c%d", sep, buildStamp())
ac3c7c0
-	fmt.Fprintf(b, " -X main.BuildUser%c%s", sep, buildUser())
ac3c7c0
-	fmt.Fprintf(b, " -X main.BuildHost%c%s", sep, buildHost())
ac3c7c0
+	fmt.Fprintf(b, "-X main.Version%c%s ", sep, version)
ac3c7c0
+	fmt.Fprintf(b, "-X main.BuildStamp%c%d ", sep, buildStamp())
ac3c7c0
+	fmt.Fprintf(b, "-X main.BuildUser%c%s ", sep, buildUser())
ac3c7c0
+	fmt.Fprintf(b, "-X main.BuildHost%c%s", sep, buildHost())
ac3c7c0
 	return b.String()
ac3c7c0
 }
ac3c7c0