aboutsummaryrefslogtreecommitdiff
path: root/compiler_wrapper/gcc_flags.go
blob: ffbde316efe9130d4d0435e4d2cb8ad0fb6e0e91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package main

func processGccFlags(builder *commandBuilder) {
	// Flags not supported by GCC.
	unsupported := map[string]bool{"-Xcompiler": true}

	// Conversion for flags supported by clang but not gcc.
	clangToGcc := map[string]string{
		"-march=goldmont":      "-march=silvermont",
		"-march=goldmont-plus": "-march=silvermont",
		"-march=skylake":       "-march=corei7",
	}

	builder.transformArgs(func(arg builderArg) string {
		if unsupported[arg.value] {
			return ""
		}
		if mapped, ok := clangToGcc[arg.value]; ok {
			return mapped
		}
		return arg.value
	})

	builder.path += ".real"
}