mirror of
https://github.com/openai/codex.git
synced 2026-10-19 17:28:46 +00:00
113 lines
4.1 KiB
Diff
113 lines
4.1 KiB
Diff
diff --git a/build.rs b/build.rs
|
|
--- a/build.rs
|
|
+++ b/build.rs
|
|
@@ -346,7 +346,27 @@
|
|
// we want to optimize for minimizing the build tools required: No Perl,
|
|
// no nasm, etc.
|
|
let generated_dir = if !is_git {
|
|
- c_root_dir.join(PREGENERATED)
|
|
+ let pregenerated_dir = c_root_dir.join(PREGENERATED);
|
|
+ if target.os == WINDOWS && target.env == "msvc"
|
|
+ {
|
|
+ let mut pending = vec![(pregenerated_dir.clone(), out_dir.clone())];
|
|
+ while let Some((src_dir, dst_dir)) = pending.pop() {
|
|
+ fs::create_dir_all(&dst_dir).unwrap();
|
|
+ for entry in fs::read_dir(&src_dir).unwrap() {
|
|
+ let entry = entry.unwrap();
|
|
+ let src_path = entry.path();
|
|
+ let dst_path = dst_dir.join(entry.file_name());
|
|
+ if entry.file_type().unwrap().is_dir() {
|
|
+ pending.push((src_path, dst_path));
|
|
+ } else {
|
|
+ fs::copy(&src_path, &dst_path).unwrap();
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ out_dir.clone()
|
|
+ } else {
|
|
+ pregenerated_dir
|
|
+ }
|
|
} else {
|
|
generate_sources_and_preassemble(
|
|
&out_dir,
|
|
@@ -561,7 +581,13 @@
|
|
let compiler = c.get_compiler();
|
|
// FIXME: On Windows AArch64 we currently must use Clang to compile C code
|
|
let compiler = if target.os == WINDOWS && target.arch == AARCH64 && !compiler.is_like_clang() {
|
|
- let _ = c.compiler("clang");
|
|
+ // Keep inherited MSVC flags compatible with the selected Clang driver.
|
|
+ let clang = if compiler.is_like_msvc() {
|
|
+ "clang-cl"
|
|
+ } else {
|
|
+ "clang"
|
|
+ };
|
|
+ let _ = c.compiler(clang);
|
|
c.get_compiler()
|
|
} else {
|
|
compiler
|
|
@@ -569,6 +595,15 @@
|
|
|
|
let _ = c.include(c_root_dir.join("include"));
|
|
let _ = c.include(include_dir);
|
|
+ let _ = c.include(c_root_dir.join("third_party").join("fiat"));
|
|
+ if compiler.is_like_msvc() {
|
|
+ let _ = c.include(c_root_dir.join("crypto").join("curve25519"));
|
|
+ let _ = c.include(c_root_dir.join("crypto").join("limbs"));
|
|
+ let _ = c.include(c_root_dir.join("crypto").join("fipsmodule").join("aes"));
|
|
+ let _ = c.include(c_root_dir.join("crypto").join("fipsmodule").join("bn"));
|
|
+ let _ = c.include(c_root_dir.join("crypto").join("fipsmodule").join("ec"));
|
|
+ let _ = c.include(c_root_dir.join("crypto").join("poly1305"));
|
|
+ }
|
|
for f in cpp_flags(&compiler) {
|
|
let _ = c.flag(f);
|
|
}
|
|
diff --git a/crypto/curve25519/curve25519.c b/crypto/curve25519/curve25519.c
|
|
index 99d7d7fbb..2f69ad560 100644
|
|
--- a/crypto/curve25519/curve25519.c
|
|
+++ b/crypto/curve25519/curve25519.c
|
|
@@ -47,11 +47,11 @@
|
|
#if defined(__GNUC__)
|
|
#pragma GCC diagnostic ignored "-Wpedantic"
|
|
#endif
|
|
-#include "../../third_party/fiat/curve25519_64.h"
|
|
+#include "curve25519_64.h"
|
|
#elif defined(OPENSSL_64_BIT)
|
|
-#include "../../third_party/fiat/curve25519_64_msvc.h"
|
|
+#include "curve25519_64_msvc.h"
|
|
#else
|
|
-#include "../../third_party/fiat/curve25519_32.h"
|
|
+#include "curve25519_32.h"
|
|
#endif
|
|
|
|
|
|
diff --git a/crypto/curve25519/curve25519_64_adx.c b/crypto/curve25519/curve25519_64_adx.c
|
|
index 88964a9dd..b660f55f4 100644
|
|
--- a/crypto/curve25519/curve25519_64_adx.c
|
|
+++ b/crypto/curve25519/curve25519_64_adx.c
|
|
@@ -19,5 +19,5 @@
|
|
#pragma GCC diagnostic ignored "-Wpedantic"
|
|
#pragma GCC diagnostic ignored "-Wsign-conversion"
|
|
|
|
-#include "../../third_party/fiat/curve25519_64_adx.h"
|
|
+#include "curve25519_64_adx.h"
|
|
#endif
|
|
diff --git a/crypto/fipsmodule/ec/p256.c b/crypto/fipsmodule/ec/p256.c
|
|
index 0117916da..4224d1192 100644
|
|
--- a/crypto/fipsmodule/ec/p256.c
|
|
+++ b/crypto/fipsmodule/ec/p256.c
|
|
@@ -50,11 +50,11 @@
|
|
#if defined(__GNUC__)
|
|
#pragma GCC diagnostic ignored "-Wpedantic"
|
|
#endif
|
|
-#include "../../../third_party/fiat/p256_64.h"
|
|
+#include "p256_64.h"
|
|
#elif defined(OPENSSL_64_BIT)
|
|
-#include "../../../third_party/fiat/p256_64_msvc.h"
|
|
+#include "p256_64_msvc.h"
|
|
#else
|
|
-#include "../../../third_party/fiat/p256_32.h"
|
|
+#include "p256_32.h"
|
|
#endif
|
|
|
|
|