supports linkerscript
This commit is contained in:
@@ -361,12 +361,18 @@ func useTarget(targetName string) (export Export, err error) {
|
||||
}
|
||||
|
||||
// Handle Linker - keep it for external usage
|
||||
export.Linker = config.Linker
|
||||
if config.Linker != "" {
|
||||
export.Linker = filepath.Join(clangRoot, "bin", config.Linker)
|
||||
}
|
||||
if config.LinkerScript != "" {
|
||||
ldflags = append(ldflags, "-T", config.LinkerScript)
|
||||
}
|
||||
ldflags = append(ldflags, "-L", env.LLGoROOT()) // search targets/*.ld
|
||||
|
||||
// Combine with config flags
|
||||
export.CFLAGS = config.CFlags
|
||||
export.CCFLAGS = ccflags
|
||||
export.LDFLAGS = append(ldflags, filterCompatibleLDFlags(config.LDFlags)...)
|
||||
export.LDFLAGS = append(ldflags, config.LDFlags...)
|
||||
export.EXTRAFLAGS = []string{}
|
||||
|
||||
return export, nil
|
||||
|
||||
@@ -16,9 +16,10 @@ type Config struct {
|
||||
GOARCH string `json:"goarch"`
|
||||
|
||||
// Compiler and linker configuration
|
||||
Linker string `json:"linker"`
|
||||
CFlags []string `json:"cflags"`
|
||||
LDFlags []string `json:"ldflags"`
|
||||
Linker string `json:"linker"`
|
||||
LinkerScript string `json:"linkerscript"`
|
||||
CFlags []string `json:"cflags"`
|
||||
LDFlags []string `json:"ldflags"`
|
||||
}
|
||||
|
||||
// RawConfig represents the raw JSON configuration before inheritance resolution
|
||||
|
||||
@@ -148,6 +148,9 @@ 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
|
||||
|
||||
Reference in New Issue
Block a user