IXUS 1100 HS ELPH 510 Porting Thread - page 2 - DryOS Development - CHDK Forum

IXUS 1100 HS ELPH 510 Porting Thread

  • 85 Replies
  • 19677 Views
Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #10 on: 06 / February / 2014, 23:51:08 »
Advertisements
Okay so this sucks, I tried the toolchain you mentioned even after my gcc compiled and failed and that one fails compiling too.  If I try either to do make rebuild-stubs it errors on either, with the 'happy' toolchain you pointed to, I get massive amounts of errors, ending like:

Code: [Select]
../../../../tools/finsig_dryos.c:4914: error: 't1' undeclared (first use in this function)
../../../../tools/finsig_dryos.c:4914: error: 'CLOCKS_PER_SEC' undeclared (first use in this function)
../../../../tools/finsig_dryos.c:4914: error: pointer value used where a floating point value was expected
make[1]: *** [../../../../tools/finsig_dryos] Error 1
make: *** [rebuild-stubs] Error 2

and it starts with:
Code: [Select]
rebuild stubs for ixus1100_elph510hs-100b
In file included from ../../../../tools/finsig_dryos.c:3:0:
/home/pdavis/lib/gcc/arm-elf/4.6.4/include/stdint.h:3:26: fatal error: stdint.h: No such file or directory
compilation terminated.
make[1]: *** [../../../../tools/finsig_dryos] Error 1
make: *** [rebuild-stubs] Error 2


and with my built toolchain that same build says:

Code: [Select]
[pdavis@gamma chdk]$ make rebuild-stubs
rebuild stubs for ixus1100_elph510hs-100b
../../../../tools/finsig_dryos.c:3:20: error: stdint.h: No such file or directory
../../../../tools/finsig_dryos.c:5:18: error: time.h: No such file or directory
In file included from ../../../../tools/finsig_dryos.c:8:
../../../../tools/stubs_load.h:12: error: expected specifier-qualifier-list before 'uint32_t'
../../../../tools/stubs_load.h:36: error: expected declaration specifiers or '...' before 'uint32_t'

also if I just try make fir with either I get:

your referenced toolchain:

Code: [Select]
>> Entering to core
entry.S -> entry.o
-> main.elf
../platform/ixus1100_elph510hs/libplatform.a(main.o): In function `get_focal_length':
main.c:(.text+0x18): undefined reference to `focus_len_table'
../platform/ixus1100_elph510hs/libplatform.a(main.o): In function `get_zoom_x':
main.c:(.text+0x60): undefined reference to `focus_len_table'
collect2: ld returned 1 exit status
make[1]: *** [main.elf] Error 1
make: *** [all-recursive] Error 1

and mine:

Code: [Select]
entry.S -> entry.o
-> main.elf
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_udivsi3.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_divsi3.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_umodsi3.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_modsi3.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_dvmd_tls.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_addsubdf3.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_muldivdf3.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_cmpdf2.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_fixdfsi.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_truncdfsf2.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_addsubsf3.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_muldivsf3.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_cmpsf2.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_fixsfsi.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_fixunssfsi.o) does not support interworking, whereas main.elf does
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: Warning: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_bswapsi2.o) does not support interworking, whereas main.elf does
../platform/ixus1100_elph510hs/libplatform.a(main.o): In function `get_focal_length':
main.c:(.text+0x18): undefined reference to `focus_len_table'
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_divsi3.o)(__divsi3): warning: interworking not enabled.
  first occurrence: ../platform/ixus1100_elph510hs/libplatform.a(main.o): arm call to thumb
../platform/ixus1100_elph510hs/libplatform.a(main.o): In function `get_zoom_x':
main.c:(.text+0x60): undefined reference to `focus_len_table'
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_addsubdf3.o)(__floatsidf): warning: interworking not enabled.
  first occurrence: ../platform/ixus1100_elph510hs/libplatform.a(wrappers.o): arm call to thumb
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_muldivdf3.o)(__divdf3): warning: interworking not enabled.
  first occurrence: ../platform/ixus1100_elph510hs/libplatform.a(wrappers.o): arm call to thumb
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_muldivdf3.o)(__muldf3): warning: interworking not enabled.
  first occurrence: ../platform/ixus1100_elph510hs/libplatform.a(wrappers.o): arm call to thumb
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_arm_fixdfsi.o)(__fixdfsi): warning: interworking not enabled.
  first occurrence: ../platform/ixus1100_elph510hs/libplatform.a(wrappers.o): arm call to thumb
/home/pdavis/lib/gcc/arm-elf/4.6.4/../../../../arm-elf/bin/ld: /home/pdavis/lib/gcc/arm-elf/4.6.4/thumb/libgcc.a(_udivsi3.o)(__udivsi3): warning: interworking not enabled.
  first occurrence: ../platform/ixus1100_elph510hs/libplatform.a(wrappers.o): arm call to thumb
collect2: ld returned 1 exit status
make[1]: *** [main.elf] Error 1
make: *** [all-recursive] Error 1

*

Offline philmoz

  • *****
  • 3107
    • Photos
Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #11 on: 06 / February / 2014, 23:58:30 »
Okay so this sucks, I tried the toolchain you mentioned even after my gcc compiled and failed and that one fails compiling too.  If I try either to do make rebuild-stubs it errors on either, with the 'happy' toolchain you pointed to, I get massive amounts of errors, ending like:

Code: [Select]
../../../../tools/finsig_dryos.c:4914: error: 't1' undeclared (first use in this function)
../../../../tools/finsig_dryos.c:4914: error: 'CLOCKS_PER_SEC' undeclared (first use in this function)
../../../../tools/finsig_dryos.c:4914: error: pointer value used where a floating point value was expected
make[1]: *** [../../../../tools/finsig_dryos] Error 1
make: *** [rebuild-stubs] Error 2

and it starts with:
Code: [Select]
rebuild stubs for ixus1100_elph510hs-100b
In file included from ../../../../tools/finsig_dryos.c:3:0:
/home/pdavis/lib/gcc/arm-elf/4.6.4/include/stdint.h:3:26: fatal error: stdint.h: No such file or directory
compilation terminated.
make[1]: *** [../../../../tools/finsig_dryos] Error 1
make: *** [rebuild-stubs] Error 2

Everything in the 'tools' directory has to be compiled as native applications for your workstation - not as ARM code for the camera. You are trying to use the arm-elf include files to build the tools - you need the native GCC include files.

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)

Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #12 on: 06 / February / 2014, 23:59:57 »
Okay but I'm not making it do that, where in the Makefile or makefile.inc is that specified?

~Phil

Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #13 on: 07 / February / 2014, 00:03:37 »
I jumped on IRC, I'll see if someone can help there.

~Phil


*

Offline philmoz

  • *****
  • 3107
    • Photos
Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #14 on: 07 / February / 2014, 00:07:02 »
Okay but I'm not making it do that, where in the Makefile or makefile.inc is that specified?

~Phil

The CHDK build relies on everything being set up correctly in your environment, it does not explicitly define any paths (external to it's own directory structure).

Can you compile a simple native C application with GCC that includes 'stdint.h'?

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)

Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #15 on: 07 / February / 2014, 00:16:06 »
No I can't and you know what's driving me nuts, after I compiled the gcc i could, now I can't.  What broke my env... ugh maybe I'll reset the terminal

~Phil

Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #16 on: 07 / February / 2014, 00:27:27 »
and by the way, I do have it installed:

[pdavis@gamma toolchain]$ rpm -ql glibc-headers | grep stdlib.h
/usr/include/bits/stdlib.h
/usr/include/stdlib.h

~Phil

Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #17 on: 07 / February / 2014, 00:43:32 »
after manually setting: /home/pdavis/lib/gcc/arm-elf/4.6.4/include/stdint.h:3:26: fatal error: stdint.h: No such file or directory

so stdint.h says it can't find stdint.h? WHAT.  ugh.  I may have to call it a night. 

~Phil


*

Offline philmoz

  • *****
  • 3107
    • Photos
Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #18 on: 07 / February / 2014, 01:31:25 »
after manually setting: /home/pdavis/lib/gcc/arm-elf/4.6.4/include/stdint.h:3:26: fatal error: stdint.h: No such file or directory

so stdint.h says it can't find stdint.h? WHAT.  ugh.  I may have to call it a night. 

~Phil

You can't use the arm-elf header files to build a native application.

Sounds like you have set up environment variables to point GCC at the arm-elf include and lib directories instead of the native ones.

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)

Re: IXUS 1100 HS ELPH 510 Porting Thread
« Reply #19 on: 07 / February / 2014, 02:36:07 »
Okay I've got it compiling and I've filled out a lot of the files needed with the help of reyalp in IRC,  the big hurdle now is that I really don't know enough about ASM to get the output from the perl dissassembler I used and put it back into the files: boot.c and capt_seq.c  Anyone have any pointers?  Or can I attache the perl output from the dissasembly and have someone that knows how to do this help?

~Phil

 

Related Topics