Saturday, 24 May 2014

Re: [gccsdk] Unable to build native RISC OS compiler

In message <DUB120-DS9949D5F1440D8845D111AF03D0@phx.gbl>
"Alan Buckley" <alan_baa@hotmail.com> wrote:

> John Tytgat wrote on Monday, May 19, 2014 8:27 PM:
>
> > Was this a full clean build (either freshly checked out, either after a
> > make clean or make distclean) ? Did you do the build for the
> > cross-compiler
> > with the same set of sources ?
>
> No, I had run svn update on it a few times.

It depends on when the last time your previous update was but asasm and
its sub projects (like elftoolchain) got quite some code reshuffling.

> > Otherwise, I would remove all generated autotools file in the riscos/asasm
> > directory with a:
>
> > for i in riscos/asasm riscos/asasm/decaof/ riscos/asasm/elftoolchain/ ; do
> > svn status --no-ignore $$i | grep "^I " | cut -b 9- | xargs rm -rf ;
> > done
> > and restart the build.
>
> This didn't work. But a make clean followed by make ronative did.

Ok, that's the fix which should always work but is of course the most
costly timewise as it really restarts from scratch.

> It there any way to just rebuild the parts that have changed after an svn
> update?
> It took all morning to rebuild the ronative compilers and I'd like to try
> to keep up to date with the trunk build for the cross-compiler at least
> without it taking so long.

The gccsdk build system (basically the top Makefile) is designed to
avoid doing costly rechecking whether a sub-build step need to be redone
as soon as that sub-build step got finished successfully before. As
soon as one sub-build step is successful, a file gets written in
the buildstepsdir so a next 'make' will skip that step even if you did
get new sources for that step after a 'svn update'. This is (was) just
to avoid lengthy build times when developing and/or fixing a broken build.

If you want to force to redo that buildstep (and automatically also all
other depending buildsteps), just remove its corresponding file in
buildstepsdir.

As a guideline, if you do svn update (and/or 'make updategcc') and
see updates for:
- UnixLib or gcc related patches: remove {cross,ronative}-gcc-built
(one is for the cross-compiler, the other for the native RISC OS
compilter).
- binutils related patches: remove {cross,ronative}-binutils-built
- riscos/*: remove {cross,ronative}-riscostools-built or
execute 'riscos/build-it' to rebuild any which hasn't been built yet
or 'riscos/build-it -f' to force rebuilding all riscos/* tools.

If you want to update the gcc sources in order to get the latest gcc 4.7.x
fixes, do 'make updategcc' followed by the normal 'make'.

Hope this helps a bit.

John.
--
John Tytgat, in his comfy chair at home
John.Tytgat@aaug.net

_______________________________________________
GCCSDK mailing list gcc@gccsdk.riscos.info
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK

No comments:

Post a Comment