Jinoh Kang (@iamahuman) commented about tools/wine/wine.rs:
+ + unsafe { + let init_func: Result<Symbol<unsafe extern "C" fn(i32, *mut *mut i8)>, _> = + ntdll.get(b"__wine_main"); + + match init_func { + Ok(func) => { + let mut c_args: Vec<*mut i8> = args + .iter() + .map(|arg| CString::new(arg.as_str()).unwrap().into_raw()) + .collect(); + + func(args.len() as i32, c_args.as_mut_ptr()); + } + Err(_) => { + eprintln!("wine: __wine_main function not found in ntdll.so");
eprintln!("wine-rs: __wine_main function not found in ntdll.so");
Need I say more? This is a great omission that should have been caught before upstreaming -- https://gitlab.winehq.org/wine/wine/-/merge_requests/7717#note_99622