1.6 development planning thread - General Discussion and Assistance - CHDK Forum
supplierdeeply

1.6 development planning thread

  • 68 Replies
  • 13631 Views
*

Offline reyalp

  • ******
  • 14080
1.6 development planning thread
« on: 17 / November / 2020, 23:46:57 »
Advertisements
This thread should be used to collect development plans for the 1.6 release. As usual, I don't expect everything discussed here to actually make it into the release.

Anything that needs more than a few posts of discussion should go in a separate thread, but I can split if needed.

I don't have definite plans to work on any specific features, but a bunch of stuff in the 1.5 thread is still on my list of stuff I'd like to get to someday.

One thing that came up in irc with philmoz is cleaning up compiler support. We can drop elf and gcc 3.x support. If we can find a way to build on modern gcc, that would be nice because it would allow people to just install distro provided arm compilers again.

Not gonna say anything about schedule, except
I'd like to aim for a slightly shorter release cycle (maybe ~6 months), but getting stuff right is a higher priority.
:lol
Don't forget what the H stands for.

*

Offline philmoz

  • *****
  • 3450
    • Photos
Re: 1.6 development planning thread
« Reply #1 on: 19 / November / 2020, 05:29:53 »
On the subject of cleaning up, does anyone know why LDOPTS in loader/makefile_loader.inc has the '--no-define-common' linker option set?


From the description of the option I can't see how it has any relevance, and it generates an error using GCC9.


I compared the dump files from builds with and without this option and there is no difference (except the build timestamp).
This was with GCC4 and GCC5 - I have not tried GCC3.


Looks like something that can be deleted.


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)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

*

Offline reyalp

  • ******
  • 14080
Re: 1.6 development planning thread
« Reply #2 on: 19 / November / 2020, 13:25:10 »
On the subject of cleaning up, does anyone know why LDOPTS in loader/makefile_loader.inc has the '--no-define-common' linker option set?
No idea at all, much of the build stuff has been untouched for a very long time.

Quote
This was with GCC4 and GCC5 - I have not tried GCC3.
The main autobuild is on gcc 4.9.3 The CHDKDE one is on 4.8.3. I don't see any reason to keep support for anything earlier.
Don't forget what the H stands for.

*

Offline philmoz

  • *****
  • 3450
    • Photos
Re: 1.6 development planning thread
« Reply #3 on: 19 / November / 2020, 19:06:00 »
Another cleanup question - does CHDK-Shell still require 'makefile.inc'?

Comment from makefile.inc:
    # *************
    # Legacy makefile - no longer used (see other makefile_???.inc files)
    #
    # Kept temporarily for CHDK-Shell compatibility
    # Changing this file will have no effect on CHDK build
    # *************

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)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)


*

Offline reyalp

  • ******
  • 14080
Re: 1.6 development planning thread
« Reply #4 on: 19 / November / 2020, 22:02:33 »
Another cleanup question - does CHDK-Shell still require 'makefile.inc'?
I don't know, but I don't think CHDK-Shell is maintained any more and it should be deprecated in favor of msl's GUI
Don't forget what the H stands for.

*

Offline philmoz

  • *****
  • 3450
    • Photos
Re: 1.6 development planning thread
« Reply #5 on: 20 / November / 2020, 15:51:23 »
I had a look at cleanup / removing GCC3 and elf cross compile options.
It currently looks like this:
  • Remove checks for GCC3 (arm_rules.inc, host_rules.inc, modules/Makefile)
  • Remove OPT_USE_GCC_EABI (arm_rules.inc, buildconf.inc, Makefile, platform/makefile_platform.inc, platform/makefile_sub.inc)
  • Rename module_exportlist_eabi.inc to module_exportlist.inc (lib/core/Makefile, tools/makeexport.c)
  • Delete module_exportlist_elf.inc
  • Remove --no-define-common link option (loader/makefile_loader.inc, loader/s90/Makefile, loader/s90/resetcode/Makefile, loader/sx1/Makefile, loader/sx1/resetcode/Makefile, loader/sx130is/Makefile, loader/sx130is/resetcode/Makefile)
  • Remove NO_T2 build option (Makefile, tools/auto_build.sh)
  • Remove 'toolchaincheck' (Makefile)
  • Delete makefile.inc
  • Remove OBJ_ISDIGIT (modules/Makefile)
  • Delete tools/patches/gcc-3-4-arm.diff and tools/patches/libptp2-1.1.0-canon-upload.diff and update tools/patches/README.TXT
  • Delete all the unused source files in lib/libc (issmth.c, mem*.c, str*.c)
The changes are in the attached patch.
If there are no objections or suggestions I'll add this to 1.6 in the next few days.


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)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

*

Offline srsa_4c

  • ******
  • 4451
Re: 1.6 development planning thread
« Reply #6 on: 21 / November / 2020, 05:36:10 »
The changes are in the attached patch.
Not strictly related, but I'm wondering why OPT_WARNINGS is made not to affect the host compiler. It was only effective on gcc 3.x, commented out for 4.x and ineffective on anything else.

edit:
Apparently it has been like that from the introduction of OPT_WARNINGS, in changeset 743.

edit2:
It looks like GCC_VERSION_MAJOR does not evaluate correctly in host_rules.inc, hindering the current use of OPT_WARNINGS.
If I set HOSTCFLAGS to include the warning options, it does build on my machine (host gcc is v4.8 ).
« Last Edit: 21 / November / 2020, 10:02:07 by srsa_4c »

*

Offline whim

  • ******
  • 2046
  • A495/590/620/630 ixus70/115/220/230/300/870 S95
Re: 1.6 development planning thread
« Reply #7 on: 21 / November / 2020, 10:10:49 »
@philmoz

Hi, the following

Another cleanup question - does CHDK-Shell still require 'makefile.inc'?
I don't know, but I don't think CHDK-Shell is maintained any more and it should be deprecated in favor of msl's GUI
is correct - and even if I ever decide to resume working on it, changing this dependancy would be the least of my problems ;)

Another cleanup suggestion (purely esthetic):
Currently screen output and logs show compilation as: "somefile.c \-> somefile.o".
( typo, or very old sh needing escape before '-' in the echo command ?  just guessing)
A simple search/replace  ( '\-\>' to '-\>' ) shows compilation as: "somefile.c -> somefile.o",
a lot easier on the eye IMHO. Tested OK on GCC 3, 4, and 5 toolchains on Win 10.
The following files are involved:
  • build_rules.inc
  • host_rules.inc
  • Makefile
  • makefile.inc   // no need, will be deleted
  • lib\core\Makefile
  • lib\lang\Makefile
  • modules\Makefile
  • platform\makefile_platform.inc
  • platform\makefile_sub.inc
  • tools\elf2flt\Makefile
  • tools\hostlua\Makefile
  • tools\Makefile
  • tools\packfi2\Makefile
Thanks to all involved, great stuff !!

whim

BTW Getting an assembler error on my (Windows) GCC 5.4.1 toolchain compiling for m10 (110f), compiles just fine for all other cams.   
« Last Edit: 21 / November / 2020, 10:24:34 by whim »


*

Offline philmoz

  • *****
  • 3450
    • Photos
Re: 1.6 development planning thread
« Reply #8 on: 21 / November / 2020, 15:34:59 »
Currently screen output and logs show compilation as: "somefile.c \-> somefile.o".


Thanks for that - can you check if '->' also works on Windows (single quotes around string instead of escaping)?


Quote
BTW Getting an assembler error on my (Windows) GCC 5.4.1 toolchain compiling for m10 (110f), compiles just fine for all other cams.


Discussed here https://chdk.setepontos.com/index.php?topic=12758.msg144545#msg144545
GCC5 generates slightly different instructions which messes up one of the branch tables. I was leaving this for srsa_4c.


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)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

*

Offline whim

  • ******
  • 2046
  • A495/590/620/630 ixus70/115/220/230/300/870 S95
Re: 1.6 development planning thread
« Reply #9 on: 21 / November / 2020, 17:25:38 »

Thanks for that - can you check if '->' also works on Windows (single quotes around string instead of escaping)?

Sorry for not being clear - the quotes are just to show what is literally shown on screen/in logs.
All the files contain 1 or more lines like "@echo blah \-\> something" (without the quotes).
Suggestion is, to replace these with "@echo blah -\> something" (again, without quotes).
Result: nicer screen/log output, works on all my Windows toolchains.
Not tested on linux (never succeeded compiling CHDK on my manjaro linux box).
Hope that clarifies it a bit - in short I'm just proposing that escaping a minus sign is unnecessary
after an echo command; the greater than/redirection sign still needs escaping.

hope that I understood and answered your question ...
whim

 

Related Topics