I studied the IAR stuff, and the __program_start is indeed the reset handler. You can see this in EWARM/stm32f10x_vector.c
And 0x0800C121 which is APP_START in Ben’s LIB matches the reset vector you can see in Ben’s APP binary (byte 5-8).
So there must be another reason it did not work. Does this patch work? It is against current gcc branch. The gcc branch should build fine on IAR as well, otherwise I would like to fix it!