I committed the patch that allows -m<os>-version-min to specify the OS version when -target doesn't specify in r321559. Let me know if it works for you!
Thanks, Alex On 21 December 2017 at 12:34, James Y Knight <jykni...@google.com> wrote: > I totally agree with moving towards eliminating the -m<os>-version-min > flags, it's much better to put it in the target, and will clean up a lot of > cruft in the driver, eventually. > > Now -- we (or anyone else who runs into this) can simply start specifying > the version in both locations ("-target x86_64-apple-ios10 > -mios-simulator-version-min=10"), so as to work with both new and old > clang, and be closer to the ultimate goal of having only -target. That's an > overall nicer workaround to suggest than switching to -darwin. But, yea, > there's no need for *temporary* patch to fix things just for us. > > However, I do not understand why you're against committing the patch you > mention as option #2 -- that seems like it'd be best for all users, by > preserving compatibility with existing command-lines. So, I'd still like > that change to be committed, permanently, not temporarily. I'm sure we > can't be the only ones running clang like "-target x86_64-apple-ios > -mios-simulator-version-min=10", and it seems unfortunate and unnecessary > to break that, even if it can be worked around. > > In the future, I'd hope the -m<os>-version-min arguments can be deprecated > more and more -- warning whenever you use them to modify the platform or > version at all, rather just on specification conflict; then, warn anytime > you use them at all; then, remove them. But in the meantime, it seems > strictly better to preserve compatibility, don't you think? > > > > On Dec 21, 2017 2:11 PM, "Alex L" <arpha...@gmail.com> wrote: > > Thanks for raising your concerns. > > We decided to avoid -m<os>-version-min flag in favor of -target to > simplify the driver logic and to encourage the adoption of -target. Now > after r321145 we only warn about -m<os>-version-min flag when the OS > version specified in it is different to the OS version specified in target, > or when target has no OS version. > > There are two possible solutions here: > 1) You can still use -target with -mios-simulator-version-min as before > but you'd have to use '-target=x86_64-apple-darwin' to ensure that the iOS > version specified by '-mios-simulator-version-min' is used. > 2) I also do have a patch that implements the logic that you propose (use > the OS version in -m<os>-version-min flag if target has none). If you > believe that the first solution is not suitable for your code then I can > commit it. At the same time I believe that we would rather not use this > patch, but if it's urgent for your projects then maybe I can land it now > and then we can establish some sort of timeline for when it can be reverted? > > Thanks, > Alex > > > On 21 December 2017 at 08:00, James Y Knight <jykni...@google.com> wrote: > >> I think if a version number isn't explicitly specified in the -target >> value, the value from -m<platform>-version-min ought to still be used, as >> it was before. >> >> Currently, clang will ignore the -m<platform>-version-min version number >> if the target has a particular OS specified, even if it has no version >> number as part of it. >> >> (We should be able to workaround this change backwards-compatibly by >> specifying in both the -target argument and in the -m<platform>-version-min >> arguments, but I do think the behavior should be fixed.) >> >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits