Browse Source

Merge pull request #4 from AzureMarker/master

Add init method to force linking, and other changes
pull/5/head
Meziu 3 years ago committed by GitHub
parent
commit
a554d6d9e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      Cargo.toml
  2. 21
      src/lib.rs

9
Cargo.toml

@ -5,10 +5,5 @@ version = "0.1.0" @@ -5,10 +5,5 @@ version = "0.1.0"
license = "MIT/Apache 2.0"
edition = "2018"
[lib]
name = "linker_fix_3ds"
path = "src/lib.rs"
crate-type = ["staticlib", "lib"]
[dependencies.libc]
git = "https://github.com/Meziu/libc.git"
[dependencies]
libc = { git = "https://github.com/Meziu/libc.git" }

21
src/lib.rs

@ -1,19 +1,30 @@ @@ -1,19 +1,30 @@
#![no_std]
extern crate libc;
/// Call this somewhere to force Rust to link this module.
/// The call doesn't need to execute, just exist.
///
/// See https://github.com/rust-lang/rust/issues/47384
pub fn init() {}
#[no_mangle]
extern "C" fn posix_memalign(memptr: *mut *mut libc::c_void, align: libc::size_t, size: libc::size_t) -> libc::c_int {
extern "C" fn posix_memalign(
memptr: *mut *mut libc::c_void,
align: libc::size_t,
size: libc::size_t,
) -> libc::c_int {
unsafe {
*memptr = libc::memalign(align, size);
}
0
}
#[no_mangle]
unsafe extern "C" fn realpath(
path: *const libc::c_char,
resolved_path: *mut libc::c_char
path: *const libc::c_char,
resolved_path: *mut libc::c_char,
) -> *mut libc::c_char {
libc::memcpy(resolved_path as _, path as _, libc::strlen(path));

Loading…
Cancel
Save