[scummvm-devel] Building Symbian port with buildbot

Фёдар Стрыжнёў (Fiodar Stryzhniou) fedor_qd at mail.ru
Sat Aug 14 10:35:42 UTC 2021


I uploaded required S60_5th_Edition_SDK_v1.0 libs and headers - https://sourceforge.net/projects/scummvms60git/files/libs/Symbian_buildbot.zip/download
Check Readme.txt.

I finally build and run scummvm.exe with gcc-11.2 and binutils 2.35.

Waiting for response.

On Sat, 07 Aug 2021 15:43:29 +0300
fedor via scummvm-devel <scummvm-devel at lists.scummvm.org> wrote:

> 
> I always build with all current dependencies.
> Currently don't worry about source_patcher - it need for successful build with SDK. No code modifications needed. I hope.
> I'l zip needed files and upload to other ScummVM dependencies at sourceforge.
> Also you should call backends/platform/symbian/symbian_builder/pkg_generator.py for making installer templates. It runs well with python 2.7.
> --
> Отправлено из myMail для Android суббота, 07 августа 2021г., 14:44 +03:00 от Philippe Valembois  lephilousophe at gmail.com :
> 
> >OK, this clarify many things.
> >Your GCC4Symbian scripts could be adapted to work on Debian: it's
> >basically what we did for Dreamcast
> >( https://github.com/scummvm/dockerized-bb/blob/master/toolchains/dreamcast/packages/toolchain-arm/build.sh ).
> >I am not sure your autoconf patches are needed on Linux, this will
> >need to be checked when testing build.
> >
> >For the various dependencies needed for ScummVM, majority of them are
> >not heavily updated (a52dec, mpeg2dec, libmad, ...).
> >For the other ones, we can use older versions or not make use of them
> >if they are not mandatory.
> >
> >We will need to create the missing bits in configure and Makefile to
> >make it work for Buildbot with all sequence of commands. Your
> >expertise will be needed on this.
> >Same, I will need to know how to obtain the SDK headers and libraries,
> >where to put them, and how to make use of them.
> >
> >I don't understand what you do with the patcher script though. That's
> >the part which worries me most.
> >And I don't understand the modifications you need inside the code to
> >make it work. This would need some investigation to really understand
> >what happens here.
> >
> >Regards,
> >Phil
> >
> >Le sam. 7 août 2021 à 13:11, < fedor_qd at mail.ru> a écrit :
> >
> > For use modern gcc I wrote shell script for msys -  https://github.com/fedor4ever/GCC4Symbian . Binutils dropped Symbian after 2.35. GCC still support, 11.2 confirmed. GDB not tetsted, still building gcc 11.2.
> >
> > Libraries at sourceforge stored in source for now. Their source changed for Symbian support. Flac library heavy rewrited. Of course you can try to build newest library but autotools never support Symbian. Only freetype support Symbian.
> >
> > There python script source_patcher.py, yes. It fixes mostly SDK build limitations. Except for object.cpp. There always trigger error checks but it works if change to warning. Name to change: "error("Unable to load widget position for \'%s\'. Please check your".
> >
> > I see no host restrictions. Makesis comes from gnupoc, elf2e32 comes from elf2e32_next. Compiled resources and help are rarely changes so I can place somewere.
> > 2 engines incompatible with Symbian.
> > --
> > Отправлено из myMail для Android
> >
> > суббота, 07 августа 2021г., 13:03 +03:00 от Philippe Valembois lephilousophe at gmail.com:
> >
> > Well, precompiled libraries for target is not ideal but it's not a blocker.
> > I prefer to build them along with the toolchain to ensure we use
> > modern versions. Once the toolchain is functional it's often quite
> > simple to achieve that.
> >
> > What is problematic is when gcc, binutils, side tools (running on the
> > build host) are precompiled because they depend on host libraries and
> > that would block upgrades of the host system.
> > Although with Docker it's less problematic (the worker could stay on
> > an old version of Debian for example), it's really not a good idea to
> > do so and not future-proof.
> >
> > By looking at your link (gnupoc-package), it seems that GCC used are
> > really outdated (version 2.9 for v1 and v2, version 3.4 for v3+,
> > version 4.6.1 as experimental compiler for v3+).
> > I don't see any support for recent GCC.
> > Do you have more documentation about using latest GCC to compile
> > Symbian binaries?
> >
> > This makes me remind some of your recent PRs where you mention
> > patching the source code before the build. This is not something
> > currently supported on Buildbot as the source tree is shared amongst
> > all workers.
> >
> > Regards,
> > Phil
> >
> > Le sam. 7 août 2021 à 09:35, < fedor_qd at mail.ru> a écrit :
> >>
> >> I misunderstood what 'precompiled libraries means'. I mean libraries needed like sdl.lib, png.lib etc. What you mean 'precompiled libraries'?
> >>
> >> --
> >> Отправлено из myMail для Android
> >>
> >> суббота, 07 августа 2021г., 10:15 +03:00 от Eugene Sandulenko sev at scummvm.org:
> >>
> >> It seems to me that the current approach is way too Windows-centric.
> >>
> >> As it was mentioned by Philippe, it should NOT depend on any precompiled libraries.
> >>
> >> My recommendation is that you, Fiodar, try to make the port compilable on Debian Linux, perhaps ask questions along the way and once you succeed, we may move the setup to the buildbot. It will be a massive hassle if someone without knowledge of Symbian tries to reverse engineer your current fully custom build system and port it to Linux.
> >>
> >>
> >> Eugene
> >>
> >> On Sat, 7 Aug 2021 at 02:36, fedor via scummvm-devel < scummvm-devel at lists.scummvm.org> wrote:
> >>
> >> I answer your questions:
> >> - Project wich makes running Symbian SDK on linux -  https://github.com/mstorsjo/gnupoc-package . That project has ports makesis tool. It generates ondevice installer.
> >> - no easy dowloaded SDK. But - Symbian opensourced - and necessary headers and libraries can found on GitHub. I can pack to zip.
> >> - Symbian Series 60 v3/v5 and other countless nokia phones
> >> - I can provide precompiled libraries
> >>
> >> Details
> >> 1. Symbian use gcc & binutils. Gcc any latest, binutils prior 2.36. I
> >> 2. I'm unwell with configure hacking.
> >> 3. I can provide bundle header and libraries.
> >> 4. I rewrote from scratch converter from elf 2 Symbian binary. Note!!! - it was tested as x86, not x64. Source -  https://github.com/fedor4ever/elf2e32_next
> >> 5. Python 2.7 needed for install.
> >> 6. Currently Symbian port comes in 9 exe's. Engines layout rules -  https://github.com/scummvm/scummvm/blob/master/backends/platform/symbian/S60v3/engines.mmh
> >> 7. Without SDK you can't build bunch of files. They never changes between builds and can be cached.
> >>
> >> How building with configure looks for me:
> >> 1. Gcc produce symbianelf
> >> 2. it was converted to EPOC binary
> >> 3. Packaging to instaĺler.
> >>
> >> --
> >> Отправлено из myMail для Android
> >>
> >> суббота, 07 августа 2021г., 01:33 +03:00 от Philippe Valembois lephilousophe at gmail.com:
> >>
> >> Hello Fiodar,
> >>
> >> We could try to add Symbian support to Buildbot.
> >> Current prerequisites are that the toolchain must be Linux based and
> >> should rely on reproducible ways to build it through Docker.
> >> It would be ideal that the toolchain doesn't use precompiled binaries
> >> as those would make the toolchain stick to some OS version which will
> >> get outdated fast.
> >> The build process must make use of the configure script directly
> >> followed by make as it's done today for all other platforms.
> >>
> >> If these prerequistes are checked, I can work on building a Symbian
> >> toolchain using Docker but I will need detailed information about the
> >> process.
> >> You can look at samples on the Wiki
> >> ( https://wiki.scummvm.org/index.php?title=Compiling_ScummVM ) where you
> >> can see the kind of information I would need to build the toolchain.
> >>
> >> Some questions that come to find first:
> >> - What is the project which makes SDK running on Linux? Is it still maintained?
> >> - Is SDK easily downloadable by a script?
> >> - Which Symbian version do you target?
> >> - What are the libraries compiled?
> >>
> >> Regards,
> >> Phil
> >>
> >> Le mer. 4 août 2021 à 01:09, fedor via scummvm-devel
> >>< scummvm-devel at lists.scummvm.org> a écrit :
> >>>
> >>> At this time, the port for Symbian can only be compiled on Windows. If Windows is not supported, I know a project with patches for SDKs for Linux.
> >>>
> >>> --
> >>> Отправлено из myMail для Android
> >>>
> >>> среда, 04 августа 2021г., 01:13 +03:00 от Eugene Sandulenko sev at scummvm.org:
> >>>
> >>> Could you please clarify what you mean by "It builds support windows only"?
> >>>
> >>> Buildbot configuration and setup scripts could be found in this repo:  https://github.com/scummvm/dockerized-bb
> >>>
> >>>
> >>> Eugene
> >>>
> >>> On Tue, 3 Aug 2021 at 20:32, Fiodar Stryzhniou. via scummvm-devel < scummvm-devel at lists.scummvm.org> wrote:
> >>>
> >>> Hi! I wish to add Symbian port to buildbot.
> >>> I worked last month for build automation and achieve that!
> >>> Symbian port can autobuilded now without my hesitation. It builds support windows only.
> >>> Fiodar Stryzhniou
> >>>
> >>> _______________________________________________
> >>> scummvm-devel mailing list
> >>> scummvm-devel at lists.scummvm.org
> >>> https://lists.scummvm.org/listinfo/scummvm-devel
> >>>
> >>> _______________________________________________
> >>> scummvm-devel mailing list
> >>> scummvm-devel at lists.scummvm.org
> >>> https://lists.scummvm.org/listinfo/scummvm-devel
> >>
> >> _______________________________________________
> >> scummvm-devel mailing list
> >> scummvm-devel at lists.scummvm.org
> >> https://lists.scummvm.org/listinfo/scummvm-devel


-- 
Фёдар Стрыжнёў(Fiodar Stryzhniou) <fedor_qd at mail.ru>


More information about the scummvm-devel mailing list