Skip to content

Commit f333ea7

Browse files
committed
Set ucrt as default runtime library
1 parent 634ad0d commit f333ea7

8 files changed

Lines changed: 38 additions & 28 deletions

File tree

.github/scripts/config.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Set-PSDebug -Trace 2 # echo on
22

33
if ( -not $env:ARCH ) { $env:ARCH = "aarch64" }
44
if ( -not $env:PLATFORM ) { $env:PLATFORM = "w64-mingw32" }
5-
if ( -not $env:CRT ) { $env:CRT = "msvcrt" }
5+
if ( -not $env:CRT ) { $env:CRT = "ucrt" }
66
if ( -not $env:TARGET ) { $env:TARGET = "$env:ARCH-$env:PLATFORM" }
77
if ( -not $env:TOOLCHAIN_NAME ) { $env:TOOLCHAIN_NAME = "$env:ARCH-$env:PLATFORM-$env:CRT" }
88

.github/scripts/config.sh

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ BINUTILS_REPO=${BINUTILS_REPO:-Windows-on-ARM-Experiments/binutils-woarm64}
99
BINUTILS_BRANCH=${BINUTILS_BRANCH:-woarm64}
1010

1111
GCC_REPO=${GCC_REPO:-Windows-on-ARM-Experiments/gcc-woarm64}
12-
GCC_BRANCH=${GCC_BRANCH:-woarm64}
12+
GCC_BRANCH=${GCC_BRANCH:-fix-va-list}
1313

1414
MINGW_REPO=${MINGW_REPO:-Windows-on-ARM-Experiments/mingw-woarm64}
1515
MINGW_BRANCH=${MINGW_BRANCH:-woarm64}
@@ -33,11 +33,17 @@ COCOM_BASE_BRANCH=master
3333

3434
ARCH=${ARCH:-aarch64}
3535
PLATFORM=${PLATFORM:-w64-mingw32}
36-
if [[ "$PLATFORM" =~ (mingw|cygwin) ]]; then
37-
CRT=${CRT:-msvcrt}
38-
else
39-
CRT=${CRT:-libc}
40-
fi
36+
case "$PLATFORM" in
37+
*mingw*)
38+
CRT=${CRT:-ucrt}
39+
;;
40+
*cygwin*)
41+
CRT=${CRT:-msvcrt}
42+
;;
43+
*)
44+
CRT=${CRT:-libc}
45+
;;
46+
esac
4147

4248
PROCESSOR=$(uname --processor)
4349
BUILD=${BUILD:-$PROCESSOR-pc-linux-gnu}

.github/workflows/advanced.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ on:
1414
gcc_branch:
1515
description: 'GCC branch to build'
1616
required: false
17-
default: 'woarm64'
17+
default: 'fix-va-list'
1818
mingw_branch:
1919
description: 'MinGW branch to build'
2020
required: false
@@ -72,7 +72,7 @@ env:
7272
BINUTILS_BRANCH: ${{ inputs.binutils_branch || 'woarm64' }}
7373

7474
GCC_REPO: Windows-on-ARM-Experiments/gcc-woarm64
75-
GCC_BRANCH: ${{ inputs.gcc_branch || 'woarm64' }}
75+
GCC_BRANCH: ${{ inputs.gcc_branch || 'fix-va-list' }}
7676

7777
MINGW_REPO: Windows-on-ARM-Experiments/mingw-woarm64
7878
MINGW_BRANCH: ${{ inputs.mingw_branch || 'woarm64' }}
@@ -106,15 +106,15 @@ env:
106106

107107
ARCH: aarch64
108108
PLATFORM: w64-mingw32
109-
CRT: msvcrt
109+
CRT: ucrt
110110
TOOLCHAIN_PATH: ${{ github.workspace }}/cross
111-
TOOLCHAIN_NAME: aarch64-w64-mingw32-msvcrt
112-
TOOLCHAIN_ARTIFACT_NAME: aarch64-w64-mingw32-msvcrt-toolchain
113-
TOOLCHAIN_PACKAGE_NAME: aarch64-w64-mingw32-msvcrt-toolchain.tar.gz
114-
RUNTIME_ARTIFACT_NAME: aarch64-w64-mingw32-msvcrt-toolchain
115-
RUNTIME_PACKAGE_NAME: aarch64-w64-mingw32-msvcrt-runtime.tar.gz
116-
TESTS_ARTIFACT_NAME: aarch64-w64-mingw32-msvcrt-tests
117-
TESTS_PACKAGE_NAME: aarch64-w64-mingw32-msvcrt-tests.tar.gz
111+
TOOLCHAIN_NAME: aarch64-w64-mingw32-ucrt
112+
TOOLCHAIN_ARTIFACT_NAME: aarch64-w64-mingw32-ucrt-toolchain
113+
TOOLCHAIN_PACKAGE_NAME: aarch64-w64-mingw32-ucrt-toolchain.tar.gz
114+
RUNTIME_ARTIFACT_NAME: aarch64-w64-mingw32-ucrt-toolchain
115+
RUNTIME_PACKAGE_NAME: aarch64-w64-mingw32-ucrt-runtime.tar.gz
116+
TESTS_ARTIFACT_NAME: aarch64-w64-mingw32-ucrt-tests
117+
TESTS_PACKAGE_NAME: aarch64-w64-mingw32-ucrt-tests.tar.gz
118118

119119
SOURCE_PATH: ${{ github.workspace }}/code
120120
BUILD_PATH: ${{ github.workspace }}/build
@@ -151,7 +151,7 @@ jobs:
151151
ARCH: ${{ matrix.arch }}
152152
PLATFORM: ${{ matrix.platform }}
153153
CRT: ${{ matrix.crt }}
154-
PACK_TOOLCHAIN: ${{ matrix.arch == 'aarch64' && matrix.platform == 'w64-mingw32' && matrix.crt == 'msvcrt' }}
154+
PACK_TOOLCHAIN: ${{ matrix.arch == 'aarch64' && matrix.platform == 'w64-mingw32' && matrix.crt == 'ucrt' }}
155155
TOOLCHAIN_NAME: ${{ matrix.arch }}-${{ matrix.platform }}-${{ matrix.crt }}
156156
TOOLCHAIN_ARTIFACT_NAME: ${{ matrix.arch }}-${{ matrix.platform }}-${{ matrix.crt }}-toolchain
157157
TOOLCHAIN_PACKAGE_NAME: ${{ matrix.arch }}-${{ matrix.platform }}-${{ matrix.crt }}-toolchain.tar.gz
@@ -383,7 +383,7 @@ jobs:
383383
runs-on: ubuntu-latest
384384

385385
env:
386-
TESTS_PACKAGE_NAME: aarch64-w64-mingw32-msvcrt-tests.tar.gz
386+
TESTS_PACKAGE_NAME: aarch64-w64-mingw32-ucrt-tests.tar.gz
387387

388388
steps:
389389
- name: Checkout repository
@@ -426,7 +426,7 @@ jobs:
426426
runs-on: [Windows, GCC, ARM64]
427427

428428
env:
429-
TESTS_PACKAGE_NAME: aarch64-w64-mingw32-msvcrt-tests.tar.gz
429+
TESTS_PACKAGE_NAME: aarch64-w64-mingw32-ucrt-tests.tar.gz
430430

431431
steps:
432432
- name: Checkout repository

.github/workflows/build-and-test-toolchain.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ on:
2626
crt:
2727
description: 'C runtime to build for'
2828
required: false
29-
default: 'msvcrt'
29+
default: 'ucrt'
3030
tag:
3131
description: 'Tag to use for the artifact'
3232
required: true
@@ -66,7 +66,7 @@ env:
6666

6767
ARCH: ${{ inputs.arch || 'x86_64' }}
6868
PLATFORM: ${{ inputs.platform || 'w64-mingw32' }}
69-
CRT: ${{ inputs.crt || 'msvcrt' }}
69+
CRT: ${{ inputs.crt || 'ucrt' }}
7070

7171
TAG: ${{ inputs.tag || 'test' }}
7272
MODULE: ${{ inputs.gcc_module || '' }}

.github/workflows/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ on:
1414
gcc_branch:
1515
description: 'GCC branch to build'
1616
required: false
17-
default: 'woarm64'
17+
default: 'fix-va-list'
1818
mingw_branch:
1919
description: 'Mingw branch to build'
2020
required: false
2121
default: 'woarm64'
2222
env:
2323
BINUTILS_BRANCH: ${{ inputs.binutils_branch || 'woarm64' }}
24-
GCC_BRANCH: ${{ inputs.gcc_branch || 'woarm64' }}
24+
GCC_BRANCH: ${{ inputs.gcc_branch || 'fix-va-list' }}
2525
MINGW_BRANCH: ${{ inputs.mingw_branch || 'woarm64' }}
2626

2727
BUILD_PATH: ${{ github.workspace }}/build

.github/workflows/test-toolchain.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ on:
3838
crt:
3939
description: 'C runtime to build for'
4040
required: false
41-
default: 'msvcrt'
41+
default: 'ucrt'
4242
workflow_call:
4343
inputs:
4444
binutils_branch_baseline:

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ which is the default. To see what will be installed refer to
2424

2525
# Building the Cross-Compiler
2626

27-
To build the cross-compiler and install it into a `~/cross-aarch64-w64-mingw32-msvcrt` folder,
27+
To build the cross-compiler and install it into a `~/cross-aarch64-w64-mingw32-ucrt` folder,
2828
follow these steps:
2929

3030
1. Clone the repository:
@@ -69,7 +69,7 @@ The build script does multiple things:
6969

7070
After building the toolchain, to build a simple C source code file run:
7171
```bash
72-
export PATH="~/cross-aarch64-w64-mingw32-msvcrt/bin:$PATH"
72+
export PATH="~/cross-aarch64-w64-mingw32-ucrt/bin:$PATH"
7373
aarch64-w64-mingw32-gcc hello.c -o hello.exe
7474
```
7575

tests/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@ set(CMAKE_VERBOSE_MAKEFILE ON)
33
if (NOT DEFINED ENV{TARGET})
44
set(ENV{TARGET} "aarch64-w64-mingw32")
55
endif()
6+
if (NOT DEFINED ENV{CRT})
7+
set(ENV{CRT} "ucrt")
8+
endif()
69
if (NOT DEFINED ENV{TOOLCHAIN_NAME})
7-
set(ENV{TOOLCHAIN_NAME} "$ENV{TARGET}-msvcrt")
10+
set(ENV{TOOLCHAIN_NAME} "$ENV{TARGET}-$ENV{CRT}")
811
endif()
912
if (NOT DEFINED ENV{TOOLCHAIN_PATH})
1013
set(ENV{TOOLCHAIN_PATH} "$ENV{HOME}/cross-$ENV{TOOLCHAIN_NAME}")
1114
endif()
1215

1316
set(CMAKE_C_COMPILER "$ENV{TOOLCHAIN_PATH}/bin/$ENV{TARGET}-gcc")
17+
set(CMAKE_CXX_COMPILER "$ENV{TOOLCHAIN_PATH}/bin/$ENV{TARGET}-g++")
1418
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fopenmp")
1519
set(CMAKE_RANLIB "$ENV{TOOLCHAIN_PATH}/bin/$ENV{TARGET}-ranlib")
1620

0 commit comments

Comments
 (0)