I test again and do a compile and it works 1 time.
But when i look in the folder trunk969/platform/ixus1000_sd4500/sub/100d
i see then a new file primary.bin with size 0.
then the next compile fail because it want read from primary.bin with size 0.
So how can avoid when remove primary.bin that no primary.bin with size 0 is create ?
or is this chdkshell Problem ?
I'm not sure what you're doing / why this should fail, i guess something is broken in your build environment, maybe by one of your modifications.
About the primary.bin - this is the default behaviour of the build process for a long time, for years.
When there's no firmware dump placed in the \sub folder, a dummy file (with 0 byte file size) is created.
This normally prevents the build process from creating the stub files...
I suggest to install a fresh, clean & unmodified CHDK-Shell & gcc env 
...then let the Shell load the latest trunk & compile one of the standard builds - this should work out of the box without any issues.