Skip to content

Commit e3b0f0b

Browse files
authored
Merge pull request #108 from gkobeaga/openblas-v0.3.25
OpenBLAS v0.3.25 & Extended Target Support & Build Fixes
2 parents 7f8b2cd + 9ea52b8 commit e3b0f0b

File tree

3 files changed

+76
-3
lines changed

3 files changed

+76
-3
lines changed

openblas-build/src/build.rs

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ pub enum Target {
3131
HASWELL,
3232
SKYLAKEX,
3333
ATOM,
34+
COOPERLAKE,
35+
SAPPHIRERAPIDS,
3436

3537
// X86/X86_64 AMD
3638
ATHLON,
@@ -58,6 +60,7 @@ pub enum Target {
5860
POWER7,
5961
POWER8,
6062
POWER9,
63+
POWER10,
6164
PPCG4,
6265
PPC970,
6366
PPC970MP,
@@ -71,6 +74,7 @@ pub enum Target {
7174
MIPS24K,
7275

7376
// MIPS64
77+
MIPS64_GENERIC,
7478
SICORTEX,
7579
LOONGSON3A,
7680
LOONGSON3B,
@@ -98,17 +102,46 @@ pub enum Target {
98102
CORTEXA57,
99103
CORTEXA72,
100104
CORTEXA73,
105+
CORTEXA510,
106+
CORTEXA710,
107+
CORTEXX1,
108+
CORTEXX2,
101109
NEOVERSEN1,
110+
NEOVERSEV1,
111+
NEOVERSEN2,
112+
CORTEXA55,
102113
EMAG8180,
103114
FALKOR,
104115
THUNDERX,
105116
THUNDERX2T99,
106117
TSV110,
118+
THUNDERX3T110,
119+
VORTEX,
120+
A64FX,
121+
ARMV8SVE,
122+
FT2000,
107123

108124
// System Z
109125
ZARCH_GENERIC,
110126
Z13,
111127
Z14,
128+
129+
// RISC-V 64:
130+
RISCV64_GENERIC,
131+
C910V,
132+
133+
// LOONGARCH64:
134+
LOONGSONGENERIC,
135+
LOONGSON3R5,
136+
LOONGSON2K1000,
137+
138+
// Elbrus E2000:
139+
E2K,
140+
141+
// Alpha
142+
EV4,
143+
EV5,
144+
EV6,
112145
}
113146

114147
impl FromStr for Target {
@@ -132,6 +165,8 @@ impl FromStr for Target {
132165
"haswell" => Self::HASWELL,
133166
"skylakex" => Self::SKYLAKEX,
134167
"atom" => Self::ATOM,
168+
"cooperlake" => Self::COOPERLAKE,
169+
"sapphirerapids" => Self::SAPPHIRERAPIDS,
135170

136171
// X86/X86_64 AMD
137172
"athlon" => Self::ATHLON,
@@ -159,6 +194,7 @@ impl FromStr for Target {
159194
"power7" => Self::POWER7,
160195
"power8" => Self::POWER8,
161196
"power9" => Self::POWER9,
197+
"power10" => Self::POWER10,
162198
"ppcg4" => Self::PPCG4,
163199
"ppc970" => Self::PPC970,
164200
"ppc970mp" => Self::PPC970MP,
@@ -172,6 +208,7 @@ impl FromStr for Target {
172208
"mips24k" => Self::MIPS24K,
173209

174210
// MIPS64
211+
"mips64_generic" => Self::MIPS64_GENERIC,
175212
"sicortex" => Self::SICORTEX,
176213
"loongson3a" => Self::LOONGSON3A,
177214
"loongson3b" => Self::LOONGSON3B,
@@ -199,18 +236,47 @@ impl FromStr for Target {
199236
"cortexa57" => Self::CORTEXA57,
200237
"cortexa72" => Self::CORTEXA72,
201238
"cortexa73" => Self::CORTEXA73,
239+
"cortexa510" => Self::CORTEXA510,
240+
"cortexa710" => Self::CORTEXA710,
241+
"cortexx1" => Self::CORTEXX1,
242+
"cortexx2" => Self::CORTEXX2,
202243
"neoversen1" => Self::NEOVERSEN1,
244+
"neoversev1" => Self::NEOVERSEV1,
245+
"neoversen2" => Self::NEOVERSEN2,
246+
"cortexa55" => Self::CORTEXA55,
203247
"emag8180" => Self::EMAG8180,
204248
"falkor" => Self::FALKOR,
205249
"thunderx" => Self::THUNDERX,
206250
"thunderx2t99" => Self::THUNDERX2T99,
207251
"tsv110" => Self::TSV110,
252+
"thunderx3t110" => Self::THUNDERX3T110,
253+
"vortex" => Self::VORTEX,
254+
"a64fx" => Self::A64FX,
255+
"armv8sve" => Self::ARMV8SVE,
256+
"ft2000" => Self::FT2000,
208257

209258
// System Z
210259
"zarch_generic" => Self::ZARCH_GENERIC,
211260
"z13" => Self::Z13,
212261
"z14" => Self::Z14,
213262

263+
// RISC-V 64:
264+
"riscv64_generic" => Self::RISCV64_GENERIC,
265+
"c910v" => Self::C910V,
266+
267+
// LOONGARCH64:
268+
"loongsongeneric" => Self::LOONGSONGENERIC,
269+
"loongson3r5" => Self::LOONGSON3R5,
270+
"loongson2k1000" => Self::LOONGSON2K1000,
271+
272+
// Elbrus E2000:
273+
"e2k" => Self::E2K,
274+
275+
// Alpha
276+
"ev4" => Self::EV4,
277+
"ev5" => Self::EV5,
278+
"ev6" => Self::EV6,
279+
214280
_ => {
215281
return Err(Error::UnsupportedTarget {
216282
target: s.to_string(),
@@ -293,6 +359,13 @@ impl Configure {
293359
if let Some(target) = self.target.as_ref() {
294360
args.push(format!("TARGET={:?}", target))
295361
}
362+
363+
for name in ["CC", "FC", "HOSTCC"] {
364+
if let Ok(value) = std::env::var(format!("OPENBLAS_{}", name)) {
365+
args.push(format!("{}={}", name, value));
366+
}
367+
}
368+
296369
args
297370
}
298371

@@ -394,7 +467,7 @@ impl Configure {
394467
.stdout(out)
395468
.stderr(err)
396469
.args(&self.make_args())
397-
.args(["libs", "netlib", "shared"])
470+
.args(["all"])
398471
.env_remove("TARGET")
399472
.check_call()
400473
{

openblas-build/src/download.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use anyhow::Result;
22
use std::path::{Path, PathBuf};
33

4-
const OPENBLAS_VERSION: &str = "0.3.21";
4+
const OPENBLAS_VERSION: &str = "0.3.25";
55

66
pub fn openblas_source_url() -> String {
77
format!(

openblas-src/build.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ fn build() {
202202

203203
let output = PathBuf::from(env::var("OUT_DIR").unwrap().replace(r"\", "/"));
204204
let mut make = Command::new("make");
205-
make.args(&["libs", "netlib", "shared"])
205+
make.args(&["all"])
206206
.arg(format!("BINARY={}", binary()))
207207
.arg(format!(
208208
"{}_CBLAS=1",

0 commit comments

Comments
 (0)