https://bugs.winehq.org/show_bug.cgi?id=49437 Damjan Jovanovic <damjan.jov(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |ntdll Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #13 from Damjan Jovanovic <damjan.jov(a)gmail.com> --- I am pretty sure I figured this out after 2 days of git bisect, after Wine on FreeBSD 12.2 started crashing non-stop while 12.1 worked. The attempt by FreeBSD developers to preserve binary compatibility didn't go too well. To quote from my patch: /* l_addr changed meaning from absolute load address (which is now l_base) * to relocation offset, but also got moved within the struct, breaking * the ABI via struct layout change: * * OLD header: NEW header: * typedef struct link_map { typedef struct link_map { * caddr_t l_addr; caddr_t l_base; * ... ... * ... caddr_t l_addr; * }; }; * * OLD ld-elf.so: NEW ld-elf.so: * ... exports _rtld_version_laddr_offset * * Since the header change and rtld change aren't coupled, we have to * worry about the interaction between link.h version at compile time, * and ld-elf.so version at runtime... I've submitted a patch that seems to get it working: https://source.winehq.org/patches/data/195960 It should allow a Wine binary to work correctly on all FreeBSD 12.x versions, whether they have that ld-elf patch or not, and regardless of the link.h header used at compile-time. All 4 combinations of old/new header vs library are handled correctly. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.