rorth wrote:

> Thank you for helping out with this odd edge case! I don't suppose there's a 
> way we can shove this hack into CMake (basically, like a kind of linker 
> script hack)? If so, can we apply it broadly enough so that any use of 
> `time_put` in other TUs will also benefit?

This would have to apply to all instances of `std::tm`, so I cannot say if this 
is feasible at all.  Besides, `clang` on Solaris supports both Solaris `ld` and 
GNU `ld`, which have different linker script syntax, duplicating the code if in 
fact both support the renaming.

This all seems like a waste of time to me.

> (If there are better alternatives than this approach, I'd love to hear about 
> them, this is a pretty gnarly way to go about working around the issue.)

I believe `clang` should something like `g++` to handle the mangling difference 
itself.  On the `g++` side of things, there's the 
`TARGET_CXX_DECL_MANGLING_CONTEXT` target hook, implemented for Solaris in 
`gcc/config/sol2-cxx.cc` (`solaris_cxx_decl_mangling_context`) and applied in 
`gcc/cp/mangle.cc` (`decl_mangling_context`) where it is called as 
`targetm.cxx.decl_mangling_context`.

As I've mentioned before, I've no idea where to do something similar in 
`clang`.  I believe that would be `clang/lib/CodeGen`

Whatever the case, we need at least a short-term solution now: the Solaris 
buildbots have been broken for two days now.


https://github.com/llvm/llvm-project/pull/100724
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to