LongDirtyAnimAlf / Reiniero-fpcup

fpcup (and fpclazup) are installers for FPC (and Lazarus).
54 stars 11 forks source link

build trunk and bootstrap version #7

Closed ghost closed 8 years ago

ghost commented 8 years ago

I always build with --lazURL=trunk --fpcURL=trunk But about 2 weeks ago I can't build FPC I was looking for what is the problem and found too old version bootstrap compiler

Deafault fpcup_linux_x64 and fpcup64.exe download 2.6.2 but minimal is 2.6.4 to build FPC

For me solution is --lazURL=trunk --fpcURL=trunk --fpcbootstrapdir=....

Is there any automatic solution for this problem ? I'm thinking about the people who first use fpcup,

LongDirtyAnimAlf commented 8 years ago

I have (just today) changed the setting to ignore the version check when using old (2.6.2) bootstrap compilers. I hope that one day, recent compilers will be made available. So, first time users will be able to carry on. The only automatic solution I can think of is, that fpcup searches the system for a more recent compiler than available online.

wkitty42 commented 8 years ago

On 11/26/2015 08:52 AM, LongDirtyAnimAlf wrote:

I have (just today) changed the setting to ignore the version check when using old (2.6.2) bootstrap compilers. I hope that one day, recent compilers will be made available.

is that really a good idea? won't some features be lost as not supported in the older compiler... doesn't that setting also lead to no support when it is discovered that it is used??

So, first time users will be able to carry on. The only automatic solution I can think of is, that fpcup searches the system for a more recent compiler than available online.

the 2.6.4 compiler /should/ be available online... pretty near to where the existing 2.6.2 one is located... right??? especially with 2.6.4 having been out for as long as it has been and even moreso with 3.0.0 being released now...

LongDirtyAnimAlf commented 8 years ago

Look here: http://forum.lazarus.freepascal.org/index.php/topic,29452

wkitty42 commented 8 years ago

On 11/26/2015 10:02 AM, LongDirtyAnimAlf wrote:

Look here: http://forum.lazarus.freepascal.org/index.php/topic,29452

ugh... it does appear to be a bit of a mess :?

NOTE: No off-list assistance is given without prior approval. Please keep mailing list traffic on the list unless private contact is specifically requested and granted.

LongDirtyAnimAlf commented 8 years ago

Not really.

The core developers want you to install FPC and Lazarus the prescribed way. This way, they can be sure that problems are not caused by an incorrect install.

However, this (correct install) <> (easy install) !!

This is were fpcup enters the arena: easy install, but sometimes also an install not according to the books !!

martok commented 8 years ago

Since r32335, FPC-trunk really needs 2.6.4 to build, so no luck even with the version check override (overloading the <> operator). According to the forum topic, you're supposed to use the 386-to-x64 crosscompiler, which is available ( ftp://ftp.freepascal.org/pub/fpc/dist/2.6.4/bootstrap/x86_64-win64-ppcrossx64.zip ) as a bootstrap binary. Maybe fpcup can use that?

LongDirtyAnimAlf commented 8 years ago

I just did a testrun with fpcup for installing trunk. And it works as expected on my system. Could you please give me more details about the problem with trunk ?

martok commented 8 years ago

Build host is Windows (x64), I haven't tested on Linux. fpcup.exe + fpcup64.exe are current as of yesterday.

Building ppc386.exe + full rtl for i386-win32 from trunk using 2.6.4 as bootstrap (downloaded by fpcup.exe) works fine.

Building ppcx64.exe + full rtl for x86_64-win64 from trunk using 2.6.2 as bootstrap (downloaded by fpcup64.exe) fails on the new types.pas:

typshrdh.inc(54,23) Error: It is not possible to overload this operator. Related overloadable operators (if any) are: 
typshrdh.inc(54,24) Error: It is not possible to overload this operator. Related overloadable operators (if any) are: 
typshrdh.inc(54,24) Fatal: Syntax error, ":" expected but ">" found
Fatal: Compilation aborted

Configuration: Command, Ini

LongDirtyAnimAlf commented 8 years ago

Ok. Now I understand !

Unfortunately, fpcup(64) cannot do wonders ... It needs online resources. If these are not available, it will fail. There is no recent bootstrap compiler for Win64. There is also no official FPC Win64 version available for download. Most is based on 32 bit and crosscompile to 64 bit. http://www.freepascal.org/down/i386/win32-netherlands.var

Fpcup could be made to build an intermediate 2.6.4 compiler with the 2.6.2 bootstrap, but I think that would be overkill.

martok commented 8 years ago

I'm fairly certain there was a good reason for building native win64 compilers instead of using crosscompilers back when I started doing trunk snapshots, so it'd be good to be able to continue doing so ;)

Fpcup could be made to build an intermediate 2.6.4 compiler with the 2.6.2 bootstrap, but I think that would be overkill.

Yes, I had seen the part related to that in the code (Win64FallBackUsingCrossCompiler)...

Technically, I'd expect the recommended bootstrap for trunk to become 3.0.0 in the not-too-far future anyway since it's always the previous release version, so I think I'll see if I can build my own bootstrap from /tags/release_3_0_0 and use these.

LongDirtyAnimAlf commented 8 years ago

I will close this issue for now. The lack of a 2.6.4 bootstrap for Win64 is not an issue of fpcup. But it would be very welcome for fpcup64 !

wkitty42 commented 8 years ago

On 11/30/2015 11:15 AM, LongDirtyAnimAlf wrote:

I will close this issue for now. The lack of a 2.6.4 bootstrap for Win64 is not an issue of fpcup. But it would be very welcome for fpcup64 !

FWIW: i was also confused by the first post mentioning, i think, linux... it was later that clarity for the winwhatever situation came up...

martok commented 8 years ago

In retrospect, yes, I may have hijacked an issue that was about a different issue originally. Apologies.

LongDirtyAnimAlf commented 8 years ago

I have enabled Win64FallBackUsingCrossCompiler ! It should allow for an easy Win64 FPC compiler. Reports are welcome !! So, just run fpcup64.exe, and it should give you Win64 FPC.

wkitty42 commented 8 years ago

On 12/01/2015 04:21 PM, LongDirtyAnimAlf wrote:

Reopened #7 https://github.com/LongDirtyAnimAlf/Reiniero-fpcup/issues/7.

was this reopened because of the disparity between the original report being linux and the follow on discussions being about winwhatever?

just curious

LongDirtyAnimAlf commented 8 years ago

Not quite. I did not change that much code. It is just that Reinier, the Original author, created this possibility for Win64. If working and wanted, it can be made into a standard procedure for missing bootstrap compilers ! So, I just want feedback. And also: if you tell me you want this, I will look into expanding towards Linux and others..

ghost commented 8 years ago

In my opinion Win64FallBackUsingCrossCompiler = true is wrong way

If I use fpc trunk I have error "makefile:2873: *\ The only supported starting compiler version is 2.6.4. You are trying to build with 3.1.1.. Stop."

This option Win64FallBackUsingCrossCompiler build from curent source If I have trunk i have 3.1.1

In my opinion better way for my windows x64 is Win64FallBackUsingCrossCompiler = false and use this official 2.6.4 If you need download file ppcx64.exe I publish it on github https://github.com/mariuszekpl/fpc_2.6.4_x64 It is from official http://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2064%20bits/Lazarus%201.4.2/

ghost commented 8 years ago

OT: Lazarus commit 50542: "trunk: set version to 1.7" ;)

wkitty42 commented 8 years ago

if we can steer this (back???) over to linux... as i previously mentioned, i was confused by the OP showing linux in the description... does the linux fpcup still try to grab the 2.6.2 or has this been amended for it to grab the 2.6.4 for both x32 and x64???

LongDirtyAnimAlf commented 8 years ago

Fpcup can only use the public available bootstrap compilers.

ftp://ftp.freepascal.org/pub/fpc/dist/3.0.0/bootstrap/ ftp://ftp.freepascal.org/pub/fpc/dist/2.6.4/bootstrap/ ftp://ftp.freepascal.org/pub/fpc/dist/2.6.2/bootstrap/

I try to update fpcup every time there is a new bootstrap compiler available for a certain architecture.

@mariuszekpl : Thanks for your offer !! Very kind. But fpcup will for sure only use the officially available bootstrappers !

To use trunk, just install fpcup default (now: 3.0.0). It will put the 3.0.0 compiler that it made into the bootstrap directory. Run fpcup again to make trunk !

Just tried the above on Mac OSX. Works as expected (for RTTI branch that I need for the great mORMot).

Thaddy commented 8 years ago

Note that as of fpc r32960 3.0.0 is the ONLY supported starting compiler for fpc trunk. Not only officially, but now also materially. 2.6.4 as starting compiler has been removed.

Btw: compliments. fpcup is getting more and more useful. I still stick to my build-farm for serious builds, but now and then I actually use it.

Thaddy commented 8 years ago

I just noticed that fpclazup64 still selects 2.6.4 for trunk even if default is build. Note that it should select 3.0.0 as from today as per the above. I guess the same goes for the other versions. I had to correct this by hand and pulled in my own build for ppc386 3

LongDirtyAnimAlf commented 8 years ago

Just updated. Please report back !

Thaddy commented 8 years ago

Works great for FPC 3.1.1. Lazarus trunk builds but has major issues combined with fpc trunk that makes it unusable so reverted to 1.5 but that has nothing to do with fpcup of course. fpclazup does its job as advertised.

LongDirtyAnimAlf commented 8 years ago

Thanks for feedback. Glad it works. Closing !