devnexen added inline comments.

================
Comment at: lib/Driver/ToolChains/OpenBSD.cpp:189
       if (getToolChain().ShouldLinkCXXStdlib(Args))
-        getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs);
+        ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs);
       if (Args.hasArg(options::OPT_pg))
----------------
devnexen wrote:
> devnexen wrote:
> > dberris wrote:
> > > devnexen wrote:
> > > > dberris wrote:
> > > > > devnexen wrote:
> > > > > > dberris wrote:
> > > > > > > Do you actually need this change? Why isn't 
> > > > > > > `getToolChain().AddCXXStdlibLibArgs(...)` not sufficient here?
> > > > > > That s the thing, I wish it was simple as FreeBSD, but seemingly in 
> > > > > > OpenBSD needs both c++98 gcc runtime and libc++ for fuzzer (I tried 
> > > > > > libc++ alone already)
> > > > > Right, but this comment is on this specific line change. I don't 
> > > > > think you need to reach into `Toolchain.` direcly, since you can 
> > > > > already use `getToolChain()` just from the above line (188).
> > > > Right, so I guess this diff https://reviews.llvm.org/D45662?id=142686 
> > > > is sufficient then ?
> > > No. Let me try and explain again.
> > > 
> > > You were on the right path, with overriding the `AddCXXStdlibLibArgs` 
> > > function in the OpenBSD Toolchain type. It's just that you weren't 
> > > handling the case for when the binary was being built with libc++ or 
> > > libstdc++ properly. I was referring you to what FreeBSD was doing for 
> > > their implementation of `AddCXXStdlibLibArgs`. This means, checking first 
> > > whether the invocation of the compiler was using libc++ or libstdc++, and 
> > > then adding the appropriate link spelling. That all happens in the 
> > > `AddCXXStdlibLibArgs` implementation, because there's no need to 
> > > special-case just for the sanitizers.
> > > 
> > > This means, if you're building a normal binary with `-pg` in OpenBSD 
> > > against either libc++ or libstdc++, it wouldn't work correctly regardless 
> > > of whether you were using libFuzzer.
> > > 
> > > Does that make more sense?
> > Ok will try a newer version later, thanks for your inputs.
> So I looked at FreeBSD and makes more sense by default it s libcxx since the 
> 10.x releases. A release has a few years span of support. OpenBSD has 
> complete different release policy, much shorter and two releases per year. 
> clang been in since 6.2 (and we re at 6.3 now and the time llvm 7 comes out 
> it will be 6.4).
To complete a bit above explanation, softwares of certain version matches the 
OS version. In other words there won t be llvm 7 for OpenBSD 6.1


https://reviews.llvm.org/D45662



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to