xref: /aosp_15_r20/external/toolchain-utils/compiler_wrapper/libgcc_flags.go (revision 760c253c1ed00ce9abd48f8546f08516e57485fe)
1*760c253cSXin Li// Copyright 2021 The ChromiumOS Authors
2*760c253cSXin Li// Use of this source code is governed by a BSD-style license that can be
3*760c253cSXin Li// found in the LICENSE file.
4*760c253cSXin Li
5*760c253cSXin Lipackage main
6*760c253cSXin Li
7*760c253cSXin Liimport (
8*760c253cSXin Li	"strings"
9*760c253cSXin Li)
10*760c253cSXin Li
11*760c253cSXin Li// Add "-static-libgcc" flag to compiler command line unless
12*760c253cSXin Li// already specified by user or user has passed "-shared-libgcc".
13*760c253cSXin Lifunc processLibGCCFlags(builder *commandBuilder) {
14*760c253cSXin Li	fromUser := false
15*760c253cSXin Li	for _, arg := range builder.args {
16*760c253cSXin Li		if arg.fromUser && (strings.HasPrefix(arg.value, "-shared-libgcc") ||
17*760c253cSXin Li			strings.HasPrefix(arg.value, "-static-libgcc")) {
18*760c253cSXin Li			fromUser = true
19*760c253cSXin Li			break
20*760c253cSXin Li		}
21*760c253cSXin Li	}
22*760c253cSXin Li	if !fromUser {
23*760c253cSXin Li		builder.addPreUserArgs("-static-libgcc")
24*760c253cSXin Li	}
25*760c253cSXin Li}
26