feat(loader): respect NM env var
This commit is contained in:
parent
79ef484392
commit
6dfa79013f
2 changed files with 12 additions and 5 deletions
|
|
@ -946,6 +946,11 @@ impl Loader {
|
|||
} else {
|
||||
""
|
||||
};
|
||||
let section = if cfg!(all(target_arch = "powerpc64", target_os = "linux")) {
|
||||
" D "
|
||||
} else {
|
||||
" T "
|
||||
};
|
||||
let mut must_have = vec![
|
||||
format!("{prefix}tree_sitter_{name}_external_scanner_create"),
|
||||
format!("{prefix}tree_sitter_{name}_external_scanner_destroy"),
|
||||
|
|
@ -954,16 +959,16 @@ impl Loader {
|
|||
format!("{prefix}tree_sitter_{name}_external_scanner_scan"),
|
||||
];
|
||||
|
||||
let command = Command::new("nm")
|
||||
.arg("-W")
|
||||
.arg("-U")
|
||||
let nm_cmd = env::var("NM").unwrap_or_else(|_| "nm".to_owned());
|
||||
let command = Command::new(nm_cmd)
|
||||
.arg("--defined-only")
|
||||
.arg(library_path)
|
||||
.output();
|
||||
if let Ok(output) = command {
|
||||
if output.status.success() {
|
||||
let mut found_non_static = false;
|
||||
for line in String::from_utf8_lossy(&output.stdout).lines() {
|
||||
if line.contains(" T ") {
|
||||
if line.contains(section) {
|
||||
if let Some(function_name) =
|
||||
line.split_whitespace().collect::<Vec<_>>().get(2)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
use std::{
|
||||
collections::HashSet,
|
||||
env,
|
||||
io::BufRead,
|
||||
path::PathBuf,
|
||||
process::{Command, Stdio},
|
||||
|
|
@ -94,7 +95,8 @@ fn check_wasm_exports() -> Result<()> {
|
|||
}),
|
||||
);
|
||||
|
||||
let nm_child = Command::new("nm")
|
||||
let nm_cmd = env::var("NM").unwrap_or_else(|_| "nm".to_owned());
|
||||
let nm_child = Command::new(nm_cmd)
|
||||
.arg("-W")
|
||||
.arg("-U")
|
||||
.arg("libtree-sitter.so")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue