Commit graph

77 commits

Author SHA1 Message Date
Martin Kinkelin
47771d49fd Get rid of obsolete DMC special cases 2024-05-25 19:34:44 +02:00
richard (rikki) andrew cattermole
ad6e0c7a27 Kill off OMF support 2024-05-03 18:24:36 +12:00
Johan Engelen
afc38e9dca
Make distinction between CC and CXX in the testsuite. (#16434)
Clang makes a distinction between clang and clang++. In particular, clang++ will give a warning when it is passed `.c` source files; and the extra output warning text means that dmd testsuite output checking fails. The warning can be silenced (-Wno-deprecated) but then other tests will fail because `#ifdef __cplusplus` will be true, leading to header file import issues.
2024-05-03 07:30:55 +08:00
Martin Kinkelin
5d4f4e11b4 GHA Windows: Make sure building compiler/druntime/Phobos does NOT need an MSVC env anymore
After #16248.
2024-03-04 10:52:02 +08:00
Rainer Schuetze
95f4ad91a3 move PATH modification to makefile to allow running both debug and release unittests 2024-01-03 11:50:55 +01:00
Rainer Schuetze
f9a2557c72
fix issue 4071 and others: shared runtime DLL for Windows (#14849)
Allow exporting all generated symbols (including internal symbols).
Implement switch `-dllimport` ( windows only, not restricted to `extern(D)`)

Still to do:
* running shared module ctors
* running thread local module ctors
* registering DATA/TLS ranges with the GC
* exceptions
2023-12-31 05:26:57 +08:00
Martin Kinkelin
d03a4d43af DMD tests on Windows: Default CC to cl.exe in PATH for MSVC models
Instead of defaulting to some old hardcoded version.
2023-12-23 17:05:05 +08:00
Martin Kinkelin
000490465a CI: Reduce parallelism on Windows from N=3 to N=2
As the runners have 2 CPU cores and there's a slight OOM risk, e.g.:
https://dev.azure.com/dlanguage/dmd/_build/results?buildId=40094&view=logs&jobId=6775e4b2-0d76-5db7-9bcd-015c7821c824&j=6775e4b2-0d76-5db7-9bcd-015c7821c824&t=1bf40372-f529-586c-b834-12b53d9adf74
2023-12-18 19:20:34 +01:00
Martin Kinkelin
f3f89ca5b6 CI: Adapt to generic Makefile for Phobos 2023-12-18 17:10:31 +08:00
Martin Kinkelin
f8ee42a18d Azure CI: Exclude druntime *release* tests for the MinGW job 2023-12-18 07:29:32 +08:00
Martin Kinkelin
4ad93e00ea Azure CI: Add x86 (COFF) job based on windows.sh 2023-12-18 07:29:32 +08:00
Martin Kinkelin
3525fb85c0 Azure CI: Try running the *release* druntime tests for VisualD jobs 2023-12-18 07:29:32 +08:00
Martin Kinkelin
28cbd2fe8f druntime: Merge test/stdcpp/win64.mak into Makefile 2023-12-18 07:29:32 +08:00
Martin Kinkelin
b99b9d2c20 druntime: Make most *test* Makefiles usable on Windows too
Still to do: `test/{shared,stdcpp}`.
2023-12-18 07:29:32 +08:00
Martin Kinkelin
5babeee831 Azure CI: Skip *release* druntime unittests for VisualD jobs, to work around OOM 2023-12-18 07:29:32 +08:00
Martin Kinkelin
bc793e59e9 druntime: Rename posix.mak to Makefile 2023-12-18 07:29:32 +08:00
Martin Kinkelin
30cca65a69 druntime: Merge win32.mak into posix.mak 2023-12-18 07:29:32 +08:00
Martin Kinkelin
eda80e21a4 Azure CI: Switch to GNU make for building druntime on Windows 2023-12-18 07:29:32 +08:00
Martin Kinkelin
f3ad118c61 Azure CI: Migrate from legacy MODEL=32mscoff to MODEL=32
Incl. fixing up the d_do_test.d tool to work properly with MODEL=32
on Windows.

And somewhat improve the documentation of MODEL=32omf, nowadays used
for the 32-bit OMF toolchain.
2023-12-16 03:11:51 +01:00
Martin Kinkelin
b5fb3b1eb8
Azure CI: Avoid deprecated compiler/src/win{32,64}.mak Makefiles (#15835)
* Azure CI: Avoid deprecated compiler/src/win{32,64}.mak Makefiles

Using build.d directly instead.

* Azure CI: Fix MODEL=32omf job
2023-11-21 10:16:02 +02:00
Iain Buclaw
c637c6ad16
Update downloads.dlang.org links to use https (#14516) 2022-10-05 05:10:57 +03:00
Martin Kinkelin
efcf9c4f01 Azure CI: Disable unit_tests for MSBuild jobs for now due to unclear regression 2022-07-10 02:25:11 +00:00
Iain Buclaw
09d04945bd Fix build script paths to work with new merged repository structure
Co-Authored-By: Geod24 <pro.mathias.lang@gmail.com>
Co-Authored-By: Martin Kinkelin <noone@nowhere.com>
Co-Authored-By: Vladimir Panteleev <git@cy.md>
2022-07-09 23:49:27 +02:00
Walter Bright
331e7ca1a7
ImportC preprocess Win32 C programs with sppn.exe (#14090) 2022-05-12 12:17:36 +03:00
Luís Ferreira
8e7e521893
treewide: fix end of file to conform with POSIX 3.206 (#13638)
Signed-off-by: Luís Ferreira <contact@lsferreira.net>
2022-03-22 13:20:27 +02:00
MoonlightSentinel
60f914827f
Translate MODEL=32omf for older host compilers
`run.d` / `windows.sh` may use older host compilers that don't support
`-m32omf`. So default to `-m32` using the proper bitness even though
it may use a different object format.
2022-01-25 21:58:00 +01:00
MoonlightSentinel
44a42b7bfa
Restore OMF build and re-enable tests for MODEL=32omf
To restore the coverage until the deprecation ends
2022-01-25 19:42:12 +01:00
MoonlightSentinel
76fbc3b668
Temporarily disable dmd tests for MODEL=32omf
The new switch `-m32omf` doesn't seem to work as expected and hence
causes several tests to fail.
2022-01-25 15:13:14 +01:00
MoonlightSentinel
89fd6f941e
Adapt windows.sh to the new default for -m32
Recognize `MODEL=32omf` instead of the previously used `MODEL=32`.
2022-01-25 15:11:47 +01:00
Nicholas Wilson
7d1f4440f8
Produce MS Coff by default when targetting windows (#13110)
* Produce MS Coff by default when targetting windows

This rebases #12825 but doesn't attempt to rename phobos libraries and doesn't change the build infra where possible(and doesn't have a large diff in `link.d`). See if this fixes the CI issues.

* remove OMF piplines

* Update glue.d

* Update target.d

* Update target.d

* Update frontend.h
2022-01-21 10:09:52 +02:00
MoonlightSentinel
2a78210c22 Azure: Fix CodeCov upload by using a proper login shell
The CodeCov script needs to be run with a `--login` shell s.t. it has
access to `shasum`,... .

(The previous draft PR was merged with an allowed failure...)
2022-01-15 13:28:25 +00:00
MoonlightSentinel
bb9fec36a0
Try continueOnError: true 2022-01-13 02:43:56 +01:00
MoonlightSentinel
9ff5805c1d Switch to new CodeCov uploader
The currently used bash uploader is deprecated and will be removed in
the future[1]. This commit replaces the existing setup with the new
uploader for all currently supported platforms as proposed in [2].

Additional notes:
- FreeBSD support isn't supported yet and keeps using the old uploader
- Moved the new implementation into a dedicated file `source`d by
  all coverage CI's (instead of changing each individual configuration)

[1] https://about.codecov.io/blog/codecov-uploader-deprecation-plan
[2] https://about.codecov.io/blog/introducing-codecovs-new-uploader
2021-10-27 07:37:27 +00:00
Martin Kinkelin
5ebfb077c6
Fix Issues 22149 & 22150 - TypeInfo names aren't unique, leading to botched equality semantics (#12928)
* Fix Issue 22149 - TypeInfo_Struct names aren't unique, leading to botched equality semantics

By storing the mangled name, making the TypeInfo_Struct names truly
unique and more compact at the same time.
Requires https://github.com/dlang/druntime/pull/3527.

* Fix Issue 22150 - TypeInfo_Class names aren't unique, leading to botched equality semantics

By fully qualifying template arguments.

* [temp] Cirrus CI: Use same-named druntime branch

* Azure Pipelines: Try to use same-named druntime/Phobos branches for PRs originating from the official dlang repo

* Cirrus CI: Try to use same-named druntime/Phobos branches for PRs originating from the official dlang repo
2021-08-01 20:04:25 +08:00
MoonlightSentinel
85e095203c Issue 21519 - Generate coverage reports for Win64 on Azure
Current coverage report is linux only, this adds reports for Win64.

Win32 is currently excluded because dmd fails the test suite with weird
linker errors when using  coverage build.
2021-01-12 10:25:01 +01:00
Martin Kinkelin
ed868d2020 Azure CI: Bump tested MinGW-based libs to v8.0.0 2020-11-05 15:09:19 +01:00
Geod24
915247a71f Fix 20970 - Use a longer retry for curl on Windows
This uses the backoff strategy built in curl, instead of the short 5 seconds retry.
Instead, we set retry-max-time, telling curl to fail after 2 minutes.
2020-10-17 07:58:12 +02:00
Martin Kinkelin
27ccc930b1 Azure CI: Include DMD unittests for non-MSBuild jobs 2020-09-30 20:20:56 +02:00
Martin Kinkelin
1e9900c4b8 Azure CI: Include Phobos unittests for non-LDC jobs
Unfortunately, compilation fails for Win32 OMF, so the Phobos unittests
are still not CI-tested at all for that target...
2020-09-30 20:20:41 +02:00
Martin Kinkelin
8879c9dd07 Azure CI: Get rid of additional host DMD requirement for LDC jobs
This requires to build run.d (incl. its tools) and druntime (which also
involves building a little tool - with the host compiler - to copy the
imports...) before tampering with the LIB and DFLAGS environment
variables (for MinGW).
2020-09-30 16:15:10 +02:00
Martin Kinkelin
38e3d26149 Azure CI: Reduce YAML redundancy 2020-09-30 02:07:37 +02:00
Martin Kinkelin
d456c7c500 Fix Azure CI (no DM make in latest DMD 2.094.0) 2020-09-25 17:48:25 +02:00
Sebastian Wilzbach
8f4bee9fe6 Use default argument set for bootstrap builds 2020-08-30 22:46:22 +02:00
Sebastian Wilzbach
7f05a442aa Disable unit_tests on older bootstrap builds 2020-08-30 20:17:22 +02:00
Sebastian Wilzbach
05f724cb4a Disable Windows builds on the auto-tester - replace with Azure pipelines 2020-08-30 20:17:22 +02:00
Martin Kinkelin
a468d13e97 Add RelWithAsserts VS configuration and use it for Azure CI
A copy of the Release configuration, except for omitting `-release`
(`<DebugCode>Default</DebugCode>`) [and not predefining NDEBUG for C++].
2020-08-24 10:41:14 +02:00
Martin Kinkelin
07ec5cdbb1 Add build option ENABLE_ASSERTS and use it for CI
To finally have DMD's own assertions properly CI-tested. Assertions have
so far only been enabled for CircleCI (reduced testsuite on Linux x64)
and one Azure job (Win64 debug).
2020-08-24 10:41:14 +02:00
Martin Kinkelin
e372f407f8 Use a different variant to compile all testsuite tools with the host compiler 2020-06-26 18:50:18 +02:00
Martin Kinkelin
104f8cfb94 Azure CI OMF job: Link testsuite tools with correct phobos.lib
Previously, the tools were compiled by the DMD host compiler, but linked
with freshly compiled druntime/Phobos, leading to inevitable issues
popping up in dlang/druntime#3141 and dlang/druntime#3142.
2020-06-26 02:41:38 +02:00
MoonlightSentinel
1056276961
Move existing runnable C++ tests into runnable_cxx
Additionaly updates the Azure script to call run.d for all non-C++
targets instead of explicitly deleting the C++ tests.
2020-03-21 15:05:31 +01:00