It's a difference in memory model. clang 6.0.0 under ubuntu with --target=x86_64-pc-cygwin gives relative addresses, unless you specify -mcmodel=large. Cygwin clang with -mcmodel=small does the right thing: use relative addresses. The -mcmodel=small option appears to work differently for Linux and for Windows targets. I cannot find any documentation of this difference. See: https://bugs.llvm.org/show_bug.cgi?id=42983 On 12/08/2019 11.45, falk.tannhauser@free.fr wrote: > References: <578eb489-9391-9009-82ad-676eeb4c1c92@agner.org> > In-Reply-To: <578eb489-9391-9009-82ad-676eeb4c1c92@agner.org> >> Could the different behaviour between Cygwin and Linux simply be due to different Clang versions? > The current version under Cygwin is 5.0.1, while the latest version available under Linux > appears to be 8.0.1 . >> Falk >> -- > Problem reports: http://cygwin.com/problems.html > FAQ: http://cygwin.com/faq/ > Documentation: http://cygwin.com/docs.html > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple >> -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple