New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix Issue 22568 - -target option does nothing in compilation #13484
Conversation
Thanks for your pull request, @WalterBright! Bugzilla references
Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub run digger -- build "master + dmd#13484" |
This randomly shows up on diverse PRs. Sigh. |
fbb8896
to
a4f2b39
Compare
It appears to be impossible to get the autotester to not add -fPIC. |
da24ff4
to
6f4507c
Compare
Filed this one on the test runner for blocking attempts to test Windows cross-compilation: |
|
https://issues.dlang.org/show_bug.cgi?id=22643
Can someone who knows how these tests work please address the heisenbugs? |
As far as I can tell this one is the CI provider fucking it up I've just rerun it. if you sign into the ci provider you should have a button to rerun it also, you just need to sign in with your github account so it knows you have rights to the repository. |
Can we please find another way? I push the rerun button all the time, nothing happens. These heisenbugs now seem to prevent passing 75% of the time. This is just a terrible waste of time. |
And ANOTHER one pops up: Run (macOS-10.15, clang-13.0.0)
|
All green here walter. |
* with no arguments will prevent it. | ||
*/ | ||
/* EQUIRED_ARGSx -m64 -target=x64-windows-msvc -mscrtlib=whatever.lib | ||
* ERMUTE_ARGSx |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nope. The test runner has a buggy parser in it, and will recognize PERMUTE_ARGS
if it is embedded in another identifier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That should be addressed by #13478.
This is can easily be fixed in the test runner. But note that this will also be a pain for actual linux users which have |
It will indeed. Users will need to use a different dmd.conf for cross compiling. |
I think the way LDC's configuration (based on libconfig) handles this is better: It allows multiple sections (e.g. one per target triple, or one section covering a family of triples idefied by a glob-like syntax (IIRC)), each of which can specify its own set of compiler arguments.
Perhaps DMD should adopt LDC's configuration format? One advantage for end users would be that they can put not only configuration for each target triple that they need in a single file, but they can also have configuration for both LDC and DMD in one place (perhaps GDC too, but I don't know if that's compatible with the GCC way of doing things). Also a user of the language would need to learn and maintain one configuration file instead of 2 (or more). That said, users that care about cross-compilation are likely to handle this on the build-system level and they can simply pass |
I think we can close this now since we the |
At least it can now generate a Windows 64 object file.