Skip to content

Commit bfd88db

Browse files
committed
Move WASM const definitions to a source file
Currently we are defining the WASM integer size and alignments in the `stdio.h` header file, this is wrong because this file is included in the build by way of `build.rs` as well as by upstream `libsecp256k1`. Move WASM integer definitions to a `C` source file and build the file into the binary if target is WASM.
1 parent ae985dd commit bfd88db

File tree

6 files changed

+20
-19
lines changed

6 files changed

+20
-19
lines changed

secp256k1-sys/build.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,10 @@ fn main() {
5252
#[cfg(feature = "recovery")]
5353
base_config.define("ENABLE_MODULE_RECOVERY", Some("1"));
5454

55-
// Header files. WASM only.
55+
// WASM headers and size/align defines.
5656
if env::var("CARGO_CFG_TARGET_ARCH").unwrap() == "wasm32" {
57-
base_config.include("wasm-sysroot");
57+
base_config.include("wasm/wasm-sysroot")
58+
.file("wasm/wasm.c");
5859
}
5960

6061
// secp256k1

secp256k1-sys/wasm-sysroot/stdio.h

Lines changed: 0 additions & 17 deletions
This file was deleted.

secp256k1-sys/wasm/wasm-sysroot/stdlib.h

Whitespace-only changes.

secp256k1-sys/wasm/wasm.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#include <stddef.h>
2+
#define alignof(type) offsetof (struct { char c; type member; }, member)
3+
4+
const unsigned char WASM32_INT_SIZE = sizeof(int);
5+
const unsigned char WASM32_INT_ALIGN = alignof(int);
6+
7+
const unsigned char WASM32_UNSIGNED_INT_SIZE = sizeof(unsigned int);
8+
const unsigned char WASM32_UNSIGNED_INT_ALIGN = alignof(unsigned int);
9+
10+
const unsigned char WASM32_SIZE_T_SIZE = sizeof(size_t);
11+
const unsigned char WASM32_SIZE_T_ALIGN = alignof(size_t);
12+
13+
const unsigned char WASM32_UNSIGNED_CHAR_SIZE = sizeof(unsigned char);
14+
const unsigned char WASM32_UNSIGNED_CHAR_ALIGN = alignof(unsigned char);
15+
16+
const unsigned char WASM32_PTR_SIZE = sizeof(void*);
17+
const unsigned char WASM32_PTR_ALIGN = alignof(void*);

0 commit comments

Comments
 (0)