So I posted in the developer interest thread, but I figured I could go ahead and make a thread so I don't pollute the developer interest thread with stuff pertaining to what I'm doing.
Anyway, I'm currently working on getting PCSX2 and all plugins to build with clang. For those of you who don't know, clang is part of the LLVM project, an incredibly promising compiler tool suite that has a lot of advantages over GCC. Unfortunately switching compilers isn't trivial. PCSX2 has a bunch of hacks that only work on GCC and MSVC. Build errors are easy to fix, in fact I've finished all of the trivial ones and have gotten everything to build with clang. Runtime errors are not easy to fix.
Here's the status:
- Nearly everything builds with clang (I can build all projects with some build hacks. Specifically, selectively compiling some .S and .cpp files to compile with GCC, usually due to assembly stuff)
- Clang built plugins work well with GCC build PCSX2 (pad, GSDX, and zeroSPU all work very well in my single test of Kingdom Hearts)
- Clang built everything can boot the PS2 bios with glitchy graphical output using all intrpreters. Right now I'm getting segfaults with recompilers. Kingdom Hearts boots, but I have to do some debugging black magic to get it to do so.
I'm also working on adding updated Code::Blocks IDE workspace and project files; one set for clang and one for GCC. I prefer to work and build everything inside an IDE, so these are mostly for my own benefit. If I get them cleaned up and remove the hacks to get PCSX2 to build with clang then I might send them upstream.
Anyway, if anyone want's to check out the code, it's at https://github.com/Urisma/pcsx2.
Anyway, I'm currently working on getting PCSX2 and all plugins to build with clang. For those of you who don't know, clang is part of the LLVM project, an incredibly promising compiler tool suite that has a lot of advantages over GCC. Unfortunately switching compilers isn't trivial. PCSX2 has a bunch of hacks that only work on GCC and MSVC. Build errors are easy to fix, in fact I've finished all of the trivial ones and have gotten everything to build with clang. Runtime errors are not easy to fix.
Here's the status:
- Nearly everything builds with clang (I can build all projects with some build hacks. Specifically, selectively compiling some .S and .cpp files to compile with GCC, usually due to assembly stuff)
- Clang built plugins work well with GCC build PCSX2 (pad, GSDX, and zeroSPU all work very well in my single test of Kingdom Hearts)
- Clang built everything can boot the PS2 bios with glitchy graphical output using all intrpreters. Right now I'm getting segfaults with recompilers. Kingdom Hearts boots, but I have to do some debugging black magic to get it to do so.
I'm also working on adding updated Code::Blocks IDE workspace and project files; one set for clang and one for GCC. I prefer to work and build everything inside an IDE, so these are mostly for my own benefit. If I get them cleaned up and remove the hacks to get PCSX2 to build with clang then I might send them upstream.
Anyway, if anyone want's to check out the code, it's at https://github.com/Urisma/pcsx2.