Thanks for the patch! You certainly worked that out faster than I could create a reproducer. It's a bit late for me now, so I'll have to try it out tomorrow. Note however that in the final patch I will be only doing TLS for mingw32.h and not cygming.h. The reason for this is that Cygwin likely cannot support Windows TLS since it lacks the special TLS slot marker _tls_index. Essentially, only the MinGW runtime supports Windows TLS, whatever runtime Cygwin uses does not, so implementing this for Cygwin as well would not work out
best regards, Julian On Mon, Oct 7, 2024 at 11:44 PM Eric Botcazou <botca...@adacore.com> wrote: > > I'm not quite sure what you mean by a testcase, but when compiling gcc > > itself, when libgomp/libgcc (Can't remember which) is being compiled, gcc > > will spit out invalid assembly that looks something like > > > > movabsq $8+__gcov_indirect_call@secrel32, %rax > > Tentative patch attached which should work better. AFAICS the problematic > assembly is generated because of the legitimate_pic_operand_p hunk, so I > removed it (which yields an ICE) and added some massaging code to > compensate > in legitimize_pic_address. > > -- > Eric Botcazou