I don't know about the level of changes needed in GCC, or about the possibility of using an objC preprocessor, but it was possible to build and deploy ARC using (including __weak references) code to 10.6.8.
As I recall one had to build against the 10.7 SDK, and then add an extra package for the __weak support. So in theory one could do something similar regarding the libobjc1 code. DF https://stackoverflow.com/questions/7696201/how-to-deploy-to-snow-leopard-with-arc-enabled https://www.mikeash.com/pyblog/introducing-plweakcompatibility.html