Continue with #1735 (-link-sharedlib)#2044
Continue with #1735 (-link-sharedlib)#2044kinke wants to merge 3 commits intoldc-developers:masterfrom
Conversation
3e673ae to
83712c1
Compare
|
How about |
|
|
|
Oh and of course there is (and will remain) another breaking change wrt. |
|
Required lib filename scheme to work out of the box with a config file defining |
|
This combination resolves #1282 (which in retrospective wasn't as straight-forward as David believed back then :D). |
|
2 Travis jobs now hit: Seems like it's trying to link it although the object is still being compiled. Wtf, make/CMake bug? Or could |
|
Any concerns or do all agree this is a sane solution? |
|
@klickverbot: This will need your approval or another form of feedback. ;) |
Deprecates -debuglib flag
-link-sharedlib will augment standard library names with '-shared' suffix and -link-sharedlib=false will cancel previously supplied -link-sharedlib
|
I'm fine with this. Just using libraries of the same name seemed like the prettier solution, but quite evidently didn't pan out. There is also the argument that a The important thing to get right here is the user interface. We can later change the automatic |
|
The initial reason I went for the Wrt. cross-compilation and configs: we already support multiple sections in No potential additional flavours come to mind right now. |
Yep. What I was thinking about is a more flexible target triple matching mechanism (wildcards, …), and the ability to only overwrite part of the configuration. We could then slowly move all the hard-coded tool-chain/CPU feature/… defaults in the drive into data. |
In that case, let's go with I was thinking about special builds for profiling/sanitizer/etc. purposes. |
|
We could also add an additional |
I'd rather add support for build type matching to the config file, and then have just a simple library name setting. Something like (pseudocode): This would avoid having to add more flags for potentially different system libraries dependencies and so on, while offering a lot of flexibility for weird cross-compilation setups (e.g. simulator builds) and so on. |
|
We should resurrect this, or something along the lines. Users having to manually type out the |
|
Fine by me, but we should think carefully about how to name that switch. I guess there's enough confusion about the terms 'runtime library' (druntime only?), 'standard library' (Phobos only?) and 'default library' already (mea culpa too). Wrt. the existing |
|
Superseded once more, by #2443 this time. |
Requires/includes #1960 andoffers a simple cmdline switch-link-sharedlibto choose between static and shared druntime/Phobos.The only breaking change is that
-link-sharedlibdefaults to true when generating a shared library via-sharedand NOT using-static, so the libs specified via-defaultlib(or legacy-debuglib) will get a-sharedsuffix in the linker command line. Adding an explicit-link-sharedlib=falseto the config file should restore full legacy behavior.