Sécurité des releases

Depuis avril, chaque exécutable et DLL fourni par w64devkit est signé avec la clé du mainteneur. La clé a déjà généré environ 100 000 signatures uniques sur ~100 000 hôtes, ce qui améliore la réputation auprès des antivirus. Le processus de publication s’appuie sur GitHub Actions : le tag déclenche la compilation, la signature et la création du paquet, le tout à partir du code source. Une fois publié, les artefacts sont immuables ; une attestation apparaît à la fin de la liste, garantissant qu’aucun contributeur, même l’auteur, ne peut modifier un fichier déjà diffusé.

Évolution du toolchain

Le kit x64 est devenu multilib, capable de produire des binaires 32 bits en plus des 64 bits. La cible 32 bits s’obtient avec l’option -m32 ou, plus simplement, en appelant les préfixes i686-w64-mingw32- :

x86_64-w64-mingw32-gcc -o hello64.exe hello.c
i686-w64-mingw32-gcc -o hello32.exe hello.c

Le support du format COFF a également évolué : le nombre maximal de sections passe de 65 535 à plus de 4 milliards grâce au format bigobj. Un patch antérieur du projet, qui forçait bigobj, n’est plus nécessaire depuis que le correctif a été intégré en amont de Binutils, ce qui restaure la compatibilité avec des linkers plus simples comme celui de Go.

Le niveau d’optimisation a été relevé de -Os à -O2 pour les runtimes statiques et les outils gourmands, augmentant légèrement la taille des paquets tout en accélérant les programmes qui utilisent intensivement la bibliothèque standard.

Nouveaux outils et optimisations

Le kit inclut désormais CMake, Ninja et un débogueur graphique pour CMake, tous compatibles avec Windows 7 et plus. CMake a été patché pour choisir Ninja comme générateur par défaut, évitant la recherche d’une installation Visual Studio. Exemple d’utilisation :

cmake -B build          # configure pour Ninja
cmake --build build    # lancer la compilation

Le front‑end TUI ccmake permet de modifier les options CMake en ligne de commande. Le kit propose aussi Ccache avec des correctifs Windows, installé dans lib/ccache/ et activable via w64devkit.ini. Bien que l’auteur note que les gains restent modestes, Ccache reste utile pour les changements fréquents de branche.

Pour le développement COM, widl et uuidgen sont fournis, ce dernier étant une réécriture minimaliste de l’outil Microsoft. Enfin, make2compdb génère le fichier compile_commands.json à partir de builds Make, facilitant l’intégration avec les outils d’analyse statique.