compileopts: fix reversed append in the target file
With this fix, `cflags` in the target JSON files is correctly ordered. Previously, the cflags of a parent JSON file would come after the ones in the child JSON file, which makes it hard to override properties in the child JSON file. Specifically, this fixes the case where targets/riscv32.json sets `-march=rv32imac` and targets/esp32c3.json wants to override this using `-march=rv32imc` but can't do this because its `-march` comes before the riscv32.json one.
Этот коммит содержится в:
родитель
7caf0732fa
коммит
af4d0fe191
2 изменённых файлов: 5 добавлений и 5 удалений
|
@ -94,7 +94,7 @@ func (spec *TargetSpec) overrideProperties(child *TargetSpec) {
|
|||
dst.Set(src)
|
||||
case "append", "":
|
||||
// or append the field of child to spec
|
||||
dst.Set(reflect.AppendSlice(src, dst))
|
||||
dst.Set(reflect.AppendSlice(dst, src))
|
||||
default:
|
||||
panic("override mode must be 'copy' or 'append' (default). I don't know how to '" + tag + "'.")
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ func TestOverrideProperties(t *testing.T) {
|
|||
base := &TargetSpec{
|
||||
GOOS: "baseGoos",
|
||||
CPU: "baseCpu",
|
||||
Features: []string{"bf1", "bf2"},
|
||||
CFlags: []string{"-base-foo", "-base-bar"},
|
||||
BuildTags: []string{"bt1", "bt2"},
|
||||
Emulator: []string{"be1", "be2"},
|
||||
DefaultStackSize: 42,
|
||||
|
@ -37,7 +37,7 @@ func TestOverrideProperties(t *testing.T) {
|
|||
child := &TargetSpec{
|
||||
GOOS: "",
|
||||
CPU: "chlidCpu",
|
||||
Features: []string{"cf1", "cf2"},
|
||||
CFlags: []string{"-child-foo", "-child-bar"},
|
||||
Emulator: []string{"ce1", "ce2"},
|
||||
AutoStackSize: &childAutoStackSize,
|
||||
DefaultStackSize: 64,
|
||||
|
@ -51,8 +51,8 @@ func TestOverrideProperties(t *testing.T) {
|
|||
if base.CPU != "chlidCpu" {
|
||||
t.Errorf("Overriding failed : got %v", base.CPU)
|
||||
}
|
||||
if !reflect.DeepEqual(base.Features, []string{"cf1", "cf2", "bf1", "bf2"}) {
|
||||
t.Errorf("Overriding failed : got %v", base.Features)
|
||||
if !reflect.DeepEqual(base.CFlags, []string{"-base-foo", "-base-bar", "-child-foo", "-child-bar"}) {
|
||||
t.Errorf("Overriding failed : got %v", base.CFlags)
|
||||
}
|
||||
if !reflect.DeepEqual(base.BuildTags, []string{"bt1", "bt2"}) {
|
||||
t.Errorf("Overriding failed : got %v", base.BuildTags)
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче