1.4 development planning thread - page 12 - General Discussion and Assistance - CHDK Forum

1.4 development planning thread

  • 195 Replies
  • 32062 Views
*

Offline srsa_4c

  • ******
  • 4046
Re: 1.4 development planning thread
« Reply #110 on: 29 / March / 2015, 18:20:02 »
Advertisements
I believe I now have a functional build system that can also deal with DIGIC 6 ports. My temporary repo can be found on the following link: https://www.assembla.com/code/chdk-s1/subversion-11/commits
The repo is partial (a3200 as 'legacy' port and sx280 as "digic 6' port) and is currently stuck at r4042 of the official trunk. You need to reduce camera_list.csv to the a3200, sx270-270-280 lines to make batch build possible.
I'd appreciate any thoughts on possible migration (or improvements).

*

Offline reyalp

  • ******
  • 12202
Re: 1.4 development planning thread
« Reply #111 on: 05 / April / 2015, 00:29:35 »
I believe I now have a functional build system that can also deal with DIGIC 6 ports. My temporary repo can be found on the following link: https://www.assembla.com/code/chdk-s1/subversion-11/commits
The repo is partial (a3200 as 'legacy' port and sx280 as "digic 6' port) and is currently stuck at r4042 of the official trunk. You need to reduce camera_list.csv to the a3200, sx270-270-280 lines to make batch build possible.
I had quick look at this and nothing jumped out as a major problem, but I have to admit that I haven't looked too deeply. If there are particular areas you are worried about, let me know.


Quote
I'd appreciate any thoughts on possible migration (or improvements).
For migration, I'd say you should be able to just bring it up to date to the current trunk, copy it over and check it in. The changes since 4042 don't look they should be too hard to resolve. I've attached patch that should bring it up to trunk 4136, and convert sx280 kbd.c to the new system.

As long as batch-zip-complete with the old arm-elf toolchain still works, I have no objection to this going into the trunk.

Updating the toolchain on the autobuild server and enabling the thumb 2 cameras can happen later.

Thanks for all your work on this project :D
Don't forget what the H stands for.

*

Offline srsa_4c

  • ******
  • 4046
Re: 1.4 development planning thread
« Reply #112 on: 06 / April / 2015, 20:12:11 »
I had quick look at this and nothing jumped out as a major problem, but I have to admit that I haven't looked too deeply. If there are particular areas you are worried about, let me know.
I'm worried because my changes to the build system/makefiles can easily be suboptimal (or even faulty). Also, I may have added much complexity here and there (see for example what I did to the batch build script).
Another problem area is batch operations involving the sigfinder (as there isn't one that works for thumb-2).
Yet another thing to check is whether the new style build process builds correct binaries for legacy ports, including the ones that are 'copied' during build (I'll try comparing binaries made by the current and the new build system).
Quote
For migration, I'd say you should be able to just bring it up to date to the current trunk, copy it over and check it in.
Will do that if batch builds continue to work and I get no suggestions on build system improvements.
Quote
I've attached patch that should bring it up to trunk 4136, and convert sx280 kbd.c to the new system.
Thanks, the keyboard rework seems to work. Checked it in in my repo.

*

Offline reyalp

  • ******
  • 12202
Re: 1.4 development planning thread
« Reply #113 on: 07 / April / 2015, 01:46:15 »
I'm worried because my changes to the build system/makefiles can easily be suboptimal (or even faulty). Also, I may have added much complexity here and there (see for example what I did to the batch build script).
Another problem area is batch operations involving the sigfinder (as there isn't one that works for thumb-2).
Yet another thing to check is whether the new style build process builds correct binaries for legacy ports, including the ones that are 'copied' during build (I'll try comparing binaries made by the current and the new build system).
Thanks. I'll try to look more carefully later. For now, I've built and booted all of my cams from a tree with my patch applied and copied over the trunk.

A few things I noticed:
I mistakenly tried to build sx280 without OPT_USE_GCC_EABI, using the old gcc4.5.1 toolchain from chdkshell. It gets most of the way through and dies with a bunch of errors like  "... uses hardware FP, whereas main.elf uses software FP" An explicit error might be better.

make clean seems to delete the bin_compat.h files, which are checked into svn. The other checked in, generated files are not deleted.

I'm not super worried about inefficiency, we can improve it after it goes into the trunk if needed.
Don't forget what the H stands for.


*

Offline srsa_4c

  • ******
  • 4046
Re: 1.4 development planning thread
« Reply #114 on: 07 / April / 2015, 17:41:55 »
I mistakenly tried to build sx280 without OPT_USE_GCC_EABI, using the old gcc4.5.1 toolchain from chdkshell. It gets most of the way through and dies with a bunch of errors like  "... uses hardware FP, whereas main.elf uses software FP" An explicit error might be better.
I'll put one in (as soon as I find an appropriate place for it) edit: done. Note that batch builds will not attempt to build any thumb-2 related code (or ports) when OPT_USE_GCC_EABI is not defined.
Quote
make clean seems to delete the bin_compat.h files, which are checked into svn. The other checked in, generated files are not deleted.
My work is based on Phil's, his original patch removes all bin_compat.h files from svn. I left them in for now (I think my intention was to spot any problems with bin_compat.h generation), but they should be removed prior to check-in. There are other smaller issues (such as making camera_list.csv up-to-date), I hope I won't forget about them.

There's one more thing to worry about: CHDK-Shell... I don't think we'll be able to keep it fully functional. Since I'm not using it, I don't know which of its features are 'essential' for Windows users.
The following is sufficient for building CHDK:
- arm toolchain (and the GNU utilities) on PATH
- an svn client
- editing localbuildconf.inc and perhaps a custom csv that contains a subset of the ports
- ... and one has to remember some make targets (fir, clean, firzip, etc...)
- optionally: a shell that has persistent command history (so older commands can easily be found)
« Last Edit: 08 / April / 2015, 14:36:22 by srsa_4c »

*

Offline rudi

  • ***
  • 126
  • A590IS_101B, SX260HS_100B
Re: 1.4 development planning thread
« Reply #115 on: 12 / April / 2015, 07:39:11 »
I think since rewrite the makefiles CHDK-DE have a problem on building full chdk 1.4 zip files. Full zip files are include the .svn folder in CHDK/ subfolder. The reason should be the full path copy command.

MAKEFILE, chdk 1.4:
Code: [Select]
section firzipsubcomplete:
zip -9r $(bin)/$(ZIP_FULL) $(chdk)/* -x CHDK/logo\*.dat \*Makefile > $(DEVNULL)
compare to chdk release 1.3:
Code: [Select]
section firzipsubcomplete:
$(foreach ZIPDIR, $(ZIPDIRS), \
zip -9 $(topdir)bin/$(PLATFORM)-$(PLATFORMSUB)-$(BUILD_NUMBER)-$(BUILD_SVNREV)-full$(STATE).zip $(topdir)$(ZIPDIR) > $(DEVNULL) ; \
)

with $(ZIPDIRS) form MAKEFILE and $(ESED) from makefile.inc
ESED = sed -r
# CHDK folder for full package
ZIPDIRS:=$(shell ls -R CHDK | grep CHDK/ | $(ESED) 's?:?/*?')
It would be nice we can found a solution to exclude dot folder or .svn folder.

Thanks, rudi

*

Offline philmoz

  • *****
  • 3135
    • Photos
Re: 1.4 development planning thread
« Reply #116 on: 12 / April / 2015, 07:46:31 »
I think since rewrite the makefiles CHDK-DE have a problem on building full chdk 1.4 zip files. Full zip files are include the .svn folder in CHDK/ subfolder. The reason should be the full path copy command.

MAKEFILE, chdk 1.4:
Code: [Select]
section firzipsubcomplete:
zip -9r $(bin)/$(ZIP_FULL) $(chdk)/* -x CHDK/logo\*.dat \*Makefile > $(DEVNULL)
compare to chdk release 1.3:
Code: [Select]
section firzipsubcomplete:
$(foreach ZIPDIR, $(ZIPDIRS), \
zip -9 $(topdir)bin/$(PLATFORM)-$(PLATFORMSUB)-$(BUILD_NUMBER)-$(BUILD_SVNREV)-full$(STATE).zip $(topdir)$(ZIPDIR) > $(DEVNULL) ; \
)

with $(ZIPDIRS) form MAKEFILE and $(ESED) from makefile.inc
ESED = sed -r
# CHDK folder for full package
ZIPDIRS:=$(shell ls -R CHDK | grep CHDK/ | $(ESED) 's?:?/*?')
It would be nice we can found a solution to exclude dot folder or .svn folder.

Thanks, rudi

SVN has not used .svn folders in sub-directories for over 3 years - there should only be one .svn folder at the topmost level of the repository.

If you have .svn folders at lower levels you should probably update to a newer version of the SVN client - or they could be left overs from an earlier version.

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)

*

Offline rudi

  • ***
  • 126
  • A590IS_101B, SX260HS_100B
Re: 1.4 development planning thread
« Reply #117 on: 12 / April / 2015, 09:56:42 »
Thank you Phil, I know. I will see.

rudi


*

Offline reyalp

  • ******
  • 12202
Re: 1.4 development planning thread
« Reply #118 on: 12 / April / 2015, 13:59:04 »
The change to a single .svn directory was in SVN 1.7.

Some popular distros are still on 1.6 though, for example CentOS/RHEL 6, so if there's an easy way to exclude the .svn directory, it would be a good thing to do.
Don't forget what the H stands for.

*

Offline srsa_4c

  • ******
  • 4046
Re: 1.4 development planning thread
« Reply #119 on: 12 / April / 2015, 15:19:58 »
MAKEFILE, chdk 1.4:
Code: [Select]
section firzipsubcomplete:
zip -9r $(bin)/$(ZIP_FULL) $(chdk)/* -x CHDK/logo\*.dat \*Makefile > $(DEVNULL)
Does it help if \*.svn\* is added to the exclusion list? My quick test appears to show it does.

Code: [Select]
zip -9r $(bin)/$(ZIP_FULL) $(chdk)/* -x CHDK/logo\*.dat \*Makefile \*.svn\* > $(DEVNULL)

 

Related Topics