{"push_id":801384500,"size":3,"distinct_size":0,"ref":"refs/heads/tmp","head":"9c1aaeb7b97e34b6688f31c6921d636d27c02e73","before":"2a6f6f26f4d4a1e22ea5e2b4498d3245d80e8aff","commits":[{"sha":"318cd843d1103579291a9f6c9eab8aacce7e9f82","author":{"email":"7fcb34670283b6ba16bfb1909995639b51e96332@gmx.net","name":"Sebastian Wicki"},"message":"Various fixes for NetBSD/amd64","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/318cd843d1103579291a9f6c9eab8aacce7e9f82"},{"sha":"428bb164f33951e561a1eed8e636077ad6ce2506","author":{"email":"7fcb34670283b6ba16bfb1909995639b51e96332@gmx.net","name":"Sebastian Wicki"},"message":"Fix alignment of pthread types on NetBSD","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/428bb164f33951e561a1eed8e636077ad6ce2506"},{"sha":"9c1aaeb7b97e34b6688f31c6921d636d27c02e73","author":{"email":"3a2c29237f73c7cf88424b80e427b1884f346b35@rust-lang.org","name":"bors"},"message":"Auto merge of #28543 - gandro:netbsd, r=alexcrichton\n\nThese changes introduce the ability to cross-compile working binaries for NetBSD/amd64. Previous support added in PR #26682 shared all its code with the OpenBSD implementation, and was therefore never functional (e.g. linking against non-existing symbols and using wrong type definitions). Nonetheless, the previous patches were a great starting point and made my work significantly easier. :smiley: \r\n\r\nBecause there are no stage0 snapshots for NetBSD (yet), I used a cross-compiler for NetBSD 7.0 RC3 and only tested some toy programs (threading and channels, stack guards, a small TCP/IP echo server and some other platform dependent bits). If someone could point me to documentation on how to generate a stage0 snapshot from a cross-compiler I'm happy to run the full test suite.\r\n\r\nA few other notes regarding Rust on NetBSD/amd64:\r\n- To preserve binary compatibility, NetBSD introduces new symbols for system call wrappers on breaking ABI changes and keeps the old (legacy) symbols around, see [this documentation](https://www.netbsd.org/docs/internals/en/chap-processes.html#syscalls_master) for some details. I went ahead and modified the `libc` and `std` crate to use the current (renamed) symbols instead of the legacy ones where I found them, but I might have missed some. Notably using the `sigaction` symbol (deprecated in 1998) instead of `__sigaction14` even triggers SIGSYS (bad syscall) on my amd64 setup. I also changed the type definitions to use the most recent version.\r\n- NetBSD's gdb doesn't really support position independent executables, so you might want to turn that off for debugging, see [NetBSD Problem Report #48250](https://gnats.netbsd.org/48250).\r\n- For binaries invoked using a relative path, NetBSD supports `$ORIGIN` only for short `rpath`s (~64 chars or so, I'm told). If running an executable fails with `execname not specified in AUX vector: No such file or directory`, consider invoking the binary using its full absolute path.","distinct":false,"url":"https://api.github.com/repos/rust-lang/rust/commits/9c1aaeb7b97e34b6688f31c6921d636d27c02e73"}]}