[Announcement] Open Tool Chain Compatibility Libraries
With the release of Apple's SDK, the development community has come to the rude
awakening that it's not all it's cracked up to be with its restricted features, broken objects, and inability to create iPhone-executable applications yet. In fact, it looks like the compiler includes DRM components itself (according to core), meaning the binaries you build
require Apple's DRM framework (and possibly approval from Apple) just to run.
Lets take a quick inventory of what Apple has accomplished with their SDK restrictions: 1. They have banned NullRiver's installer app, as well as PXL and other installers, essentially locking out any third party distribution channels, which in my opinion is unfair competition. 2. They have guaranteed themselves full control over the accessories market by limiting the ability of third-party software from using the accessories interface. This means no GPS, keyboards, or other accessories without inking special deals with Apple. 3. They have secured themselves potential contracts with game manufacturers such as Nintendo by banning the many emulators already available for the iPhone, which are legal to use in many cases. It seems that now, more than ever, does the community need to support the open source tool chain and the ability to freely write and run software for the iPhone.
With that said, I have begun work (and made significant progress) in writing a patcher to build a set of compatibility libraries for the iPhone "open" source tool chain. Due to the dismay of many developers, it appears that Apple has restricted many important frameworks and features of the iPhone APIs that are available using the open toolchain. They've also made it clear that many types of applications, including my NES.app emulator, will not be welcome on iTunes. This compatibility library is targeted to allow people to continue building applications using the free, open tool chain so that they will run on the new iPhone firmware, once released. Fortunately, we won't need this package until June or later, if at all, but it will be good to have on hand if necessary. This means the open source community will be able to continue software development on the iPhone without any licensing encumbrances from Apple, restrictions on what parts of the iPhone they can use, and will allow the fantastic third-party applications already running on the iPhone to continue on to future firmware releases. The Apple SDK, as many have come to find, has seemingly crippled much of the functionality that initially set the iPhone apart when first launched. Even simple features like the ability to run a program in the background, have been crippled in the Apple SDK. This compatibility package aims to allow open tool chain applications to take advantage of some or all of these features again, leaving the open tool chain the clear best choice for developers.
I've made some significant progress in this, but won't likely release anything until I get a chance to touch the 2.0 firmware and make any last-minute changes that may be needed. But this should give the open source community a great sigh of relief, in that they will be able to continue developing without coming under control of Apple's distribution chain monopoly or applications policies.
As it stands today, the open tool chain is likely to be the dominant tool chain going into 2009, as the Apple SDK is clearly not ready for enterprise adoption yet. Many pieces do not appear to function correctly, or at all, and there is presently no way to run these applications on the iPhone. Come June, only a limited number of developers will likely be admitted into the developer program, based on some remarks I've seen from Apple. The open tool chain works today, and has had almost a year to mature into what has become a very robust SDK. I encourage developers to continue using it, and think it's going to be around for quite a while.
tool chain install problem
Following instructions here: http://wikee.iphwn.org/howto:toolchain_on_leopard_aspen
(odcctools) make ended with this complaint:
"_print_objc_string_object_section_64", referenced from:
_processor in main.o
"_print_objc2", referenced from:
_processor in main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [otool] Error 1
make: *** [install] Error 1
(odcctools) sudo make install finished with the same.
There were no other complaints in the whole process; PATH includes /usr/local/bin; yet all I get is bash: arm-apple-darwin-gcc: command not found.
I am, admittedly, a n00b. Any reply will help, even if it is to say, "The compiler is not broken - figure it out".