@fboesch
Compilation with GCC 3.4.6 works, GCC 4.3.3 NOT (--> BLX R12 error)....unfortunately no reliable threads found on fixing the GCC 4.3.3 error (...i've started a new Post meanwhile, because recommmended Setting - implemented with CHDK-Shell 2.12 - does not help either...)
i missed your first post about this, sorry ... I think i've found the solution though.
it turns out that both your port and (i suppose) it's parent in the trunk, ewavr's
sx10 port, are using these BLX commands, a bit of further checking brought to light that Dataghost in his
S5IS port actually provided a clue:
//"BLX R12\n" // WORKSFORME, configure gcc WITHOUT --with-cpu=arm9
"MOV LR, PC\n" // 2-op workaround for 'normal' compiler
"MOV PC, R12\n" // Does the same thing, effectively, because PC is always 8 bytes ahead.
... so that's what i did, i compiled a new GCC433 WITHOUT --with-cpu=arm9, and it now works for me, that is, it
compiles the
sx10 trunk source without errors for me, without apparent side effects on compilation for 'older' cams.
Note that we're strictly talking GCC
build time config options here; while using GCC4 with CHDK-Shell you should not have to tweak these settings at all (CHDK-Shell will auto-adapt them for your compiler, if it can; for really old builds - think 300 or so - it will advise you to use GCC3 if necessary)
BTW, about your source: it's no good supplying a new CHDK-Shell-xxx.ini, the cam/firm entry there only serves to remember which ones you have
selected in CHDK-Shell ... you will have to edit the Makefile to have your
SX1 entry automatically shown in CHDK-Shell's cam panel
the 'new' compiler ("gcc433-noarm9.exe") can be found here:
http://drop.io/chdkshellbeta
it's a self-extractor, unpack wherever you like: it will generate a "gcc4-noarm9" directory containing the compiler.
to activate it in CHDK-Shell, use Compile Options -> GCC Compiler Version Set Paths : click "GCC4" and select the
"gcc4-noarm9" directory
thanks for the input, and please report if this works for you as well; i'll release a new full version (shell+compilers) in that case.
wim