@@ -83,20 +83,29 @@ def configure(env: "SConsEnvironment"):
83
83
# gdb works fine without it though, so maybe our crash handler could too.
84
84
env .Append (LINKFLAGS = ["-rdynamic" ])
85
85
86
- # Cross-compilation
87
- # TODO: Support cross-compilation on architectures other than x86.
88
- host_is_64_bit = sys .maxsize > 2 ** 32
89
- if host_is_64_bit and env ["arch" ] == "x86_32" :
90
- env .Append (CCFLAGS = ["-m32" ])
91
- env .Append (LINKFLAGS = ["-m32" ])
92
- elif not host_is_64_bit and env ["arch" ] == "x86_64" :
93
- env .Append (CCFLAGS = ["-m64" ])
94
- env .Append (LINKFLAGS = ["-m64" ])
95
-
96
86
# CPU architecture flags.
97
- if env ["arch" ] == "rv64" :
87
+ # TODO: Support cross-compilation on architectures other than x86.
88
+ if env ["arch" ] == "x86_64" :
89
+ env .Prepend (CFLAGS = ["-m64" , "-march=x86-64" ])
90
+ env .Prepend (CXXFLAGS = ["-m64" , "-march=x86-64" ])
91
+ env .Prepend (LINKFLAGS = ["-m64" , "-march=x86-64" ])
92
+ elif env ["arch" ] == "x86_32" :
93
+ env .Prepend (CFLAGS = ["-m32" , "-march=i686" ])
94
+ env .Prepend (CXXFLAGS = ["-m32" , "-march=i686" ])
95
+ env .Prepend (LINKFLAGS = ["-m32" , "-march=i686" ])
96
+ elif env ["arch" ] == "arm64" :
97
+ env .Prepend (CFLAGS = ["-march=armv8-a" ])
98
+ env .Prepend (CXXFLAGS = ["-march=armv8-a" ])
99
+ env .Prepend (LINKFLAGS = ["-march=armv8-a" ])
100
+ elif env ["arch" ] == "arm32" :
101
+ env .Prepend (CFLAGS = ["-march=armv7-a" ])
102
+ env .Prepend (CXXFLAGS = ["-march=armv7-a" ])
103
+ env .Prepend (LINKFLAGS = ["-march=armv7-a" ])
104
+ elif env ["arch" ] == "rv64" :
98
105
# G = General-purpose extensions, C = Compression extension (very common).
99
- env .Append (CCFLAGS = ["-march=rv64gc" ])
106
+ env .Prepend (CFLAGS = ["-march=rv64gc" ])
107
+ env .Prepend (CXXFLAGS = ["-march=rv64gc" ])
108
+ env .Prepend (LINKFLAGS = ["-march=rv64gc" ])
100
109
101
110
## Compiler configuration
102
111
0 commit comments