targets supports code-model, target-abi, relocation-model

This commit is contained in:
Li Jie
2025-08-21 20:43:43 +08:00
parent c414add29f
commit 2eb7d542d2
4 changed files with 34 additions and 6 deletions

View File

@@ -20,6 +20,11 @@ type Config struct {
LinkerScript string `json:"linkerscript"`
CFlags []string `json:"cflags"`
LDFlags []string `json:"ldflags"`
// Code generation configuration
CodeModel string `json:"code-model"`
TargetABI string `json:"target-abi"`
RelocationModel string `json:"relocation-model"`
}
// RawConfig represents the raw JSON configuration before inheritance resolution

View File

@@ -137,6 +137,18 @@ func (l *Loader) mergeConfig(dst, src *Config) {
if src.Linker != "" {
dst.Linker = src.Linker
}
if src.LinkerScript != "" {
dst.LinkerScript = src.LinkerScript
}
if src.CodeModel != "" {
dst.CodeModel = src.CodeModel
}
if src.TargetABI != "" {
dst.TargetABI = src.TargetABI
}
if src.RelocationModel != "" {
dst.RelocationModel = src.RelocationModel
}
// Merge slices (append, don't replace)
if len(src.BuildTags) > 0 {
@@ -148,9 +160,6 @@ func (l *Loader) mergeConfig(dst, src *Config) {
if len(src.LDFlags) > 0 {
dst.LDFlags = append(dst.LDFlags, src.LDFlags...)
}
if src.LinkerScript != "" {
dst.LinkerScript = src.LinkerScript
}
}
// GetTargetsDir returns the targets directory path