Comment by jjuran

2 years ago

MPW was actually one of the inspirations for MacRelix, in a backhanded sort of way:

https://www.metamage.com/text/relix/origins.html

I still use MPW's ToolServer for running the Metrowerks build tools, but sadly it's no longer available as an official download from Apple.

Question - looking at the code quickly, I see stuff about MWCC and Metrowerks object file format - is your tool chain in some way generating Metwowerks compatible object files? BeOS PowerPC uses the same compiler so you got me excited!

  • Yes and no. The MacRelix toolchain does, in a very trivial sense, generate Metrowerks-compatible object files, because mwcc is ultimately a wrapper around the Metrowerks-proprietary MWC68K and MWCPPC tools that run in MPW.

    I reverse-engineered enough of the .o header format so that MacRelix's ar and ld could retrieve architecture and runtime information from a static library instead of making the caller provide it via a switch.

    Separately, I've been writing post-linkers that patch or rewrite the Metrowerks-provided startup code in 68K code resources. The next step on this path might be writing my own compatible linker.

    • I'll come find you on Github, but I'd certainly be interested in getting involved in a Metrowerks compatible linker. The BeOS toolchain suffers from being so old that nothing modern compiles anymore and so this combined with other projects might make a replacement more viable. Because BeOS PowerPC uses PEF as the linker and a load of the support code is in the form of object code (they pretend to be static libs, but they are just object files) and as the API is in C++ and uses whatever the MW standard mangling was, replacing the linker without the object file format is not really viable.