Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2016-01

Do I need to make fpc 3.0.0 twice?

11 messages · 7 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Bo Berglund

I downloaded the release tag of fpc 3.0.0 via svn and built it using the 2.6.4 seed compiler. It seems to work OK.

But now I got to thinking:
Should I make fpc 3.0.0 once more using the newly created fpc 3.0.0? Will there be some difference between the two 3.0.0 versions if I do?

Bo Berglund Developer in Sweden
Mark Morgan Lloyd
to Bo Berglund
Bo Berglund wrote 6 lines
I downloaded the release tag of fpc 3.0.0 via svn and built it using the 2.6.4 seed compiler. It seems to work OK. But now I got to thinking: Should I make fpc 3.0.0 once more using the newly created fpc 3.0.0? Will there be some difference between the two 3.0.0 versions if I do?

It shouldn't, that's why the compiler is built more than once in the standard makefile sequence.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]
leledumbo
to Bo Berglund: I downloaded the release tag of fpc 3.0.0 via svn and built it using the 2.6.4 seed…
Should I make fpc 3.0.0 once more using the newly created fpc 3.0.0?

Yes if you do compile by hand (without Makefile)

Will there be some difference between the two 3.0.0 versions if I do?

If what you mean is: does 3.0.0 compiler binary produced from single compilation by 2.6.4 differ from the one by 3.0.0? Then yes.

Else if what you mean is: will using 2.6.4 as the starting compiler produce different 3.0.0 binary from 3.0.0 while using the Makefile? Then no.

View this message in context: http://free-pascal-general.1045716.n5.nabble.com/Do-I-need-to-make-fpc-3-0-0-twice-tp5723524p5723532.html Sent from the Free Pascal - General mailing list .
Bo Berglund
to leledumbo
leledumbo wrote
> Should I make fpc 3.0.0 once more using the newly created fpc 3.0.0? Yes if you do compile by hand (without Makefile)

Which I never do...

...

Else if what you mean is: will using 2.6.4 as the starting compiler produce different 3.0.0 binary from 3.0.0 while using the Makefile? Then no.

I always use the make all command via the Makefile. So do I read you right that the Makefile compiles the compiler twice, once using the seed compiler and then using the thus created compiler?

Bo Berglund Developer in Sweden
Jonas Maebe
to Bo Berglund
Bo Berglund wrote
I always use the make all command via the Makefile. So do I read you right that the Makefile compiles the compiler twice, once using the seed compiler and then using the thus created compiler?

It compiles it thrice: once more in the end to ensure that the resulting compiler is "stable", in the sense that it generates the same code when compiled with itself as when compiled with a previous release.

Jonas

Bo Berglund
to Jonas Maebe
Jonas Maebe wrote 8 lines
On 10/01/16 16:22, Bo Berglund wrote: > I always use the make all command via the Makefile. > So do I read you right that the Makefile compiles the compiler twice, > once using the seed compiler and then using the thus created compiler? It compiles it thrice: once more in the end to ensure that the resulting compiler is "stable", in the sense that it generates the same code when compiled with itself as when compiled with a previous release.

Fantastic! Then I can be assured a successful make results in the expected release version!
Good job!

Bo Berglund Developer in Sweden
Peter
to Jonas Maebe: It compiles it thrice: once more in the end to ensure that the resulting compiler is…
Jonas Maebe wrote 15 lines
On 10/01/16 16:22, Bo Berglund wrote: > I always use the make all command via the Makefile. > So do I read you right that the Makefile compiles the compiler twice, > once using the seed compiler and then using the thus created compiler? It compiles it thrice: once more in the end to ensure that the resulting compiler is "stable", in the sense that it generates the same code when compiled with itself as when compiled with a previous release. Jonas _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

But what about optimising the RTL to -O4?

I did a separate pass to build the RTL with -O4 which 2.64 does not support. I found it makes a useful difference to the execution speed of some programs.

Peter

Sven Barth
to Peter
"Peter" wrote 5 lines
But what about optimising the RTL to -O4? I did a separate pass to build the RTL with -O4 which 2.64 does not support. I found it makes a useful difference to the execution speed of some programs.

There is a variant of the OPT parameter that applies options only for the last compilation. This way you can use options that the compiling compiler does not yet support. Now if I'd only remember that... -.- (for cross compilation one can use CROSS_OPT)

Regards,
Sven

Marco van de Voort
to Sven Barth

In our previous episode, Sven Barth said:

There is a variant of the OPT parameter that applies options only for the last compilation. This way you can use options that the compiling compiler does not yet support. Now if I'd only remember that... -.- (for cross compilation one can use CROSS_OPT)

NEWOPT

Sven Barth
to Marco van de Voort
"Marco van de Voort" wrote
In our previous episode, Sven Barth said: > There is a variant of the OPT parameter that applies options only for

the

> last compilation. This way you can use options that the compiling

compiler

> does not yet support. Now if I'd only remember that... -.- (for cross > compilation one can use CROSS_OPT) NEWOPT

Ah, thanks. :) (and CROSS_OPT might be CROSSOPT... :/ )

Regards,
Sven

Peter
to Marco van de Voort: In our previous episode, Sven Barth said: NEWOPT
Marco van de Voort wrote 11 lines
In our previous episode, Sven Barth said: > There is a variant of the OPT parameter that applies options only for the > last compilation. This way you can use options that the compiling compiler > does not yet support. Now if I'd only remember that... -.- (for cross > compilation one can use CROSS_OPT) NEWOPT _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Thanks Marco, thats useful to know. Can't find it mentioned anywhere in the Programers Guide.