Skip to content

Commit 4edd266

Browse files
committed
Modify QNX NTO platform support
Modify QNX NTO `dl_iterate_phdr` to toke `* mut` All other platforms use `* mut`, and while this is technically a breaking change, most likely noone is using it directly. NTO does not define last four fields of the `dl_phdr_info`, so might as well exclude them for cleanliness. v7.0: [link](https://www.qnx.com/developers/docs/7.0.0/index.html#com.qnx.doc.neutrino.lib_ref/topic/d/dl_iterate_phdr.html) v7.1: [link](https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.lib_ref/topic/d/dl_iterate_phdr.html) v8.0: [link](https://www.qnx.com/developers/docs/8.0/com.qnx.doc.neutrino.lib_ref/topic/d/dl_iterate_phdr.html?hl=dl_phdr_info) See also rust-lang/backtrace-rs#648
1 parent e4b69b4 commit 4edd266

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/unix/linux_like/linux/mod.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -469,13 +469,14 @@ s! {
469469
// to false. So I'm just removing these, and if uClibc changes
470470
// the #if block in the future to include the following fields, these
471471
// will probably need including here. tsidea, skrap
472-
#[cfg(not(target_env = "uclibc"))]
472+
// QNX (NTO) platform does not define these fields
473+
#[cfg(not(any(target_env = "uclibc", target_os = "nto")))]
473474
pub dlpi_adds: ::c_ulonglong,
474-
#[cfg(not(target_env = "uclibc"))]
475+
#[cfg(not(any(target_env = "uclibc", target_os = "nto")))]
475476
pub dlpi_subs: ::c_ulonglong,
476-
#[cfg(not(target_env = "uclibc"))]
477+
#[cfg(not(any(target_env = "uclibc", target_os = "nto")))]
477478
pub dlpi_tls_modid: ::size_t,
478-
#[cfg(not(target_env = "uclibc"))]
479+
#[cfg(not(any(target_env = "uclibc", target_os = "nto")))]
479480
pub dlpi_tls_data: *mut ::c_void,
480481
}
481482

src/unix/nto/mod.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3339,7 +3339,10 @@ extern "C" {
33393339
pub fn dl_iterate_phdr(
33403340
callback: ::Option<
33413341
unsafe extern "C" fn(
3342-
info: *const dl_phdr_info,
3342+
// The original .h file declares this as *const, but for consistency with other platforms,
3343+
// changing this to *mut to make it easier to use.
3344+
// Maybe in v0.3 all platforms should use this as a *const.
3345+
info: *mut dl_phdr_info,
33433346
size: ::size_t,
33443347
data: *mut ::c_void,
33453348
) -> ::c_int,

0 commit comments

Comments
 (0)