skeeto / w64devkit

Portable C and C++ Development Kit for x64 (and x86) Windows
The Unlicense
3k stars 211 forks source link

Would it be possible to support the 32bit toolchain? #6

Closed raysan5 closed 3 years ago

raysan5 commented 3 years ago

I've been looking for a minimal MinGW 32bit toolchain for long time and this project looks perfect.

Every time I release a new version of raylib I create a small installer containing a portable self-contained environment to allow raylib C development on any Windows machine, mostly intended for my students but also for anyone that wants to develop in old computers (usually with a 32bit Window OS).

I already have a TCC package in under 40MB (raylib +120 examples resources are the bigger part in that package) but current MinGW-w64 package is around 100MB and I think your optimized toolchain can reduce that size providing an updated compiler version and toolset.

skeeto commented 3 years ago

While I provide builds of a particular configuration, one of the goals of the project is to make it easy for anyone to fork the Dockerfile to build their own toolchain with custom tweaks. A 32-bit toolchain certainly falls within that goal. I tried simply swapping the target tuple which, at least in theory, should just work out of the box:

sed -i s/x86_64-w64-mingw32/i686-w64-mingw32/g Dockerfile

Unfortunately libgomp configuration fails. Seems it's currently broken on i686? I disabled it in order to make progress:

sed -i /libgomp/d Dockerfile

Next error was "Link tests are not allowed after GCC_NO_EXECUTABLES" which is a GCC issue dating back at least 14 years. Here it seems to be caused by a bad configure script for libquadmath. However, I don't understand the error, let alone how to work around it.

An i686 toolchain is probably possible but requires grinding through each of these problems one at a time. Though it may require either forgoing some features that currently don't work on i686-w64-mingw32 or downgrading to an older GCC and/or Mingw-w64.

raysan5 commented 3 years ago

@skeeto Thanks for the detailed explanation! No worries about it. At this moment I'm using MinGW-w64 with i686 toolchain GCC 8.1.0. I can wait for an updated version in a future.

HuangShumin commented 9 months ago

I already have a TCC package in under 40MB (raylib +120 examples resources are the bigger part in that package) but current MinGW-w64 package is around 100MB and I think your optimized toolchain can reduce that size providing an updated compiler version and toolset.

Hello, exceuse me here, did you mentioned the TCC is Tiny C Compiler?