scripting is a dmake module with no symbols
package is a gbuild module with symbols

So yes, as we move off dmake, more and more modules should have working
debug symbols.

This is the case on *nix too, where dmake doesn't provide full paths to
filenames, breaking debugging.

On Sat, Jul 4, 2020 at 9:35 PM Patricia Shanahan <p...@acm.org> wrote:

> On 7/4/2020 12:24 PM, Damjan Jovanovic wrote:
> > Given how I've only developed on FreeBSD so far, anything Windows is
> > probably at negative infinity :) >
> > Do you have some example modules with that symbols problem, or at least
> > know whether they are gbuild or dmake modules?
>
> c:\OpenOfficeDev\openoffice\main\scripting\source\protocolhandler\scripthandler.cxx
>
> does not have symbols.
>
> c:\OpenOfficeDev\openoffice\main\package\source\xstor\xstorage.cxx does
> have symbols generated.
>
>
> > On Sat, Jul 4, 2020 at 9:13 PM Patricia Shanahan <p...@acm.org> wrote:
> >
> >> In the new build system, what is the status of automatic symbol
> >> generation, needed for easy debug.
> >>
> >> It is badly broken in 4.1.7, with most modules not getting symbols
> >> generated despite --enable-symbols in the configure parameters. This has
> >> cost me weeks of work on a debug project.
> >>
> >> On 7/4/2020 11:44 AM, Damjan Jovanovic wrote:
> >>> Hi
> >>>
> >>> In the scons-build branch, I've just pushed a set of 11 commits that
> >>> theoretically get 93 out of 105 gbuild modules (88.57%) automatically
> >>> converting to gbuild.
> >>>
> >>> The "gotoSCons" converter and the SCons infrastructure in that branch
> >> have
> >>> now been developed to such a level that a module can be automatically
> >>> converted from gbuild to SCons, from where it can use SCons for all of
> >> the
> >>> following:
> >>> Building C/C++ objects
> >>> Linking shared libraries, static libraries, and executables
> >>> Building JUnit tests and running them
> >>> Building Google Tests and running them
> >>> Building .component files with XSLT
> >>> Running Ant sub-builds
> >>> Delivering "package" files such as headers
> >>> Even doing the impossibly difficult 5 step "AllLangResTarget" (.src ->
> >>> merged .src -> .srs -> .res for each language).
> >>>
> >>> I still have to implement Jar, Zip, UnoApi, WinResTarget and SdiTarget,
> >> but
> >>> I think only Jar and Zip are worth implementing automatic conversion
> for,
> >>> as SdiTarget and UnoApi are only used in 5 places each, and
> WinResTarget
> >> in
> >>> only 2 places, which makes manual conversion for them easier. The
> hardest
> >>> conversions are already done.
> >>>
> >>> Where does this leave us?
> >>>
> >>> The gotoSCons converter can't support a number of features, like
> >>> non-deterministic constructs (ifeq ($(GUI),UNX)), custom make rules,
> >> etc. A
> >>> module can only be automatically converted if it doesn't use the
> >>> unsupported features. Currently, 35 modules use only supported
> features,
> >>> and can be converted automatically (this should increase to 39 modules
> >> when
> >>> I add Jar and Zip conversion).
> >>>
> >>> Another 58 modules use non-deterministic constructs or custom make
> rules.
> >>> Converting those 58 could be done through a semi-automated process,
> which
> >>> involves editing the gbuild files to remove the unsupported features,
> >>> running the automated conversion on what is left, then manually
> patching
> >>> what was removed into the conversion results. Sometimes this is quick
> and
> >>> easy, at other times probably not.
> >>>
> >>> The final 12 modules use unsupported targets requiring a longer and
> >> mostly
> >>> manual conversion to SCons, though even there the supported targets
> could
> >>> be converted automatically.
> >>>
> >>> The SCons infrastructure does require some cleanup, as I was learning
> >> while
> >>> developing, and we still need library naming conversions, tests on
> >>> Linux/WIndows/Mac, etc.
> >>>
> >>> The more I've used SCons, the more I've liked it. I've even started
> using
> >>> it in my own projects at work now. I've found a way to solve every
> >> problem
> >>> I've encountered, and the SCons developers have been helpful when I
> asked
> >>> them questions. Complex functionality like header dependency scanning,
> >>> automatic directory creation for output files, using @responsefile for
> >> long
> >>> command lines when necessary, and other features gbuild implements
> >>> manually, all work in SCons automatically. In 1816 lines of code, our
> >> SCons
> >>> infrastructure implements what took gbuild 9418 lines, and SCons is far
> >>> more readable and maintainable (even in its current messy state).
> >>>
> >>> The plan isn't to merge this to trunk any time soon. Rather the idea is
> >> to
> >>> develop the converter even further, then when it's complete enough,
> >> convert
> >>> as many gbuild modules to SCons. Then measure performance of building
> >> those
> >>> modules en-masse with SCons alone - if there are performance problems
> at
> >>> that stage, they are only going to get worse with more modules.
> >>>
> >>> The real test however is converting the other 78 dmake modules to
> SCons.
> >> 37
> >>> of them are 3rd party "externals" like jpeg and zlib, which have their
> >> own
> >>> build systems that we just call, so conversion is relatively easy. The
> >>> other 41 modules are hard to convert, but gbuild is one of the reasons
> >> that
> >>> they were hard, and where SCons is expected to make the greatest
> >>> difference. Only once we are building without dmake, without gbuild,
> >>> without build.pl, without Cygwin, on all platforms, then it would be
> the
> >>> right time to merge to trunk.
> >>>
> >>> If at some stage in this process we are unhappy with SCons, and some
> >> better
> >>> build system can be found, it shouldn't be difficult to change to it.
> The
> >>> converter could output files for that other build system instead; at
> >>> present it's only 498 lines of code in 1 file, that are involved in
> >> writing
> >>> SCons build files, all we would need is a similar file for that other
> >> build
> >>> system.
> >>>
> >>> Build systems are not the most exciting part of development, but bad
> >> build
> >>> systems make development painful, and as a large multi-platform
> project,
> >> we
> >>> build a lot. We answer build-related questions on the mailing lists too
> >>> often, and new contributors are put off by the current build system. A
> >> lot
> >>> of what we want to do with AOO, such as ports to Win64, AArch64, newer
> >> MSVC
> >>> versions, and so on, also involve build-related changes.
> >>>
> >>> Damjan
> >>>
> >>
> >> --
> >> This email has been checked for viruses by AVG.
> >> https://www.avg.com
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
> >> For additional commands, e-mail: dev-h...@openoffice.apache.org
> >>
> >>
> >
>
> --
> This email has been checked for viruses by AVG.
> https://www.avg.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
> For additional commands, e-mail: dev-h...@openoffice.apache.org
>
>

Reply via email to