Skip to content

Commit

Permalink
Move WASM const definitions to a source file
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
tcharding committed Mar 29, 2022
1 parent ae985dd commit bfd88db
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 19 deletions.
5 changes: 3 additions & 2 deletions secp256k1-sys/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,10 @@ fn main() {
#[cfg(feature = "recovery")]
base_config.define("ENABLE_MODULE_RECOVERY", Some("1"));

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

// secp256k1
Expand Down
17 changes: 0 additions & 17 deletions secp256k1-sys/wasm-sysroot/stdio.h

This file was deleted.

File renamed without changes.
Empty file.
File renamed without changes.
17 changes: 17 additions & 0 deletions secp256k1-sys/wasm/wasm.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#include <stddef.h>
#define alignof(type) offsetof (struct { char c; type member; }, member)

const unsigned char WASM32_INT_SIZE = sizeof(int);
const unsigned char WASM32_INT_ALIGN = alignof(int);

const unsigned char WASM32_UNSIGNED_INT_SIZE = sizeof(unsigned int);
const unsigned char WASM32_UNSIGNED_INT_ALIGN = alignof(unsigned int);

const unsigned char WASM32_SIZE_T_SIZE = sizeof(size_t);
const unsigned char WASM32_SIZE_T_ALIGN = alignof(size_t);

const unsigned char WASM32_UNSIGNED_CHAR_SIZE = sizeof(unsigned char);
const unsigned char WASM32_UNSIGNED_CHAR_ALIGN = alignof(unsigned char);

const unsigned char WASM32_PTR_SIZE = sizeof(void*);
const unsigned char WASM32_PTR_ALIGN = alignof(void*);

0 comments on commit bfd88db

Please sign in to comment.