New bootstrap FPC 2.6.4 for Windows?? Where? lazarus / 64-FPC development ---------------------------------------------------------------------- rvk · 2015-08-25 12:22 Since Trunk version 31410 the minimum requirement to compile FPC is version 2.6.4 (according to the Makefile). But in ftp://ftp.freepascal.org/pub/fpc/dist/2.6.4/bootstrap/ there are no Windows-version of FPC 2.6.4. In ftp://ftp.freepascal.org/pub/fpc/dist/2.6.2/bootstrap/ there is but that's version 2.6.2 which doesn't compile FPC anymore. Why was this requirement increased without providing a proper bootstrap FPC 2.6.4? QuoteMakefile:2856: *** The only supported starting compiler version is 2.6.4. You are trying to build with 2.6.2..  Stop. Edit: Changing the REQUIREDVERSION back to 2.6.2 in the Makefile seems to work: Code: [Select]REQUIREDVERSION=2.6.2(but of course I don't want to do that every time I check out a trunk version) ---------------------------------------------------------------------- Jonas Maebe · 2015-08-25 12:33 The only supported way to bootstrap FPC always has been and always will be based on a complete installation of the previous official release. The bootstrap compilers are sometimes uploaded for certain source-centric packagers, but they are 100% unsupported and you should not use them. If it were up to me, all of these bootstrap compilers would be removed from the ftp site, because using them instead of a full installation can lead under some circumstances to hard to diagnose problems if you don't know the details of the FPC build process. ---------------------------------------------------------------------- rvk · 2015-08-25 12:37 How is fpcup going to deal with that? Download a complete installation, unpack the FPC and use that to recompile the just downloaded Lazarus.exe? Every script which builds from scratch (i.e. without previous installed trunk version) uses the bootstrap version. So I'm wondering what's going to happen to that. I will save my own ppc386.exe for now but this is definitely not an easy/correct way to get users to use the trunk/development version. ---------------------------------------------------------------------- Jonas Maebe · 2015-08-25 12:41 fpcup should require that you have the latest official FPC release already installed (or possibly install it by itself). You don't have to redownload and reinstall the latest release all the time, it doesn't change that often. You can also keep multiple versions of FPC installed side by side, so I don't see how this makes things more difficult versus a bootstrap binary. ---------------------------------------------------------------------- rvk · 2015-08-25 12:45 I'm not sure if fpcup searches for existing fpc-installations at the moment... but okay... Let's see how many questions we get about that the coming days ---------------------------------------------------------------------- jacobb · 2015-08-25 12:56 I think fpcup is meant to automate things for you. If you have an older version of fpc and it detects you need a newer version or it is entirely missing then it will download whatever is still needed. Imho that's a lot more useful than printing a message that you need to update your installed fpc. Besides that, why is there a bootstrap folder at all then. If this is not supposed to be done then there should not be bootstrap compilers available for other targets either. ---------------------------------------------------------------------- Jonas Maebe · 2015-08-25 13:02 Quote from: jacobb on August 25, 2015, 02:56:20 pmI think fpcup is meant to automate things for you. If you have an older version of fpc and it detects you need a newer version or it is entirely missing then it will download whatever is still needed. Imho that's a lot more useful than printing a message that you need to update your installed fpc. It could also download an execute the installer of the latest release. QuoteBesides that, why is there a bootstrap folder at all then. If this is not supposed to be done then there should not be bootstrap compilers available for other targets either. As I said earlier "If it were up to me, all of these bootstrap compilers would be removed from the ftp site". But it's not just up to me. ---------------------------------------------------------------------- jacobb · 2015-08-25 13:14 Quote from: Jonas Maebe on August 25, 2015, 03:02:53 pmQuote from: jacobb on August 25, 2015, 02:56:20 pmBesides that, why is there a bootstrap folder at all then. If this is not supposed to be done then there should not be bootstrap compilers available for other targets either. As I said earlier "If it were up to me, all of these bootstrap compilers would be removed from the ftp site". But it's not just up to me. Then as long as there is no consensus I think all targets should be treated equal and thus be available for download. ---------------------------------------------------------------------- marcov · 2015-08-25 13:19 Quote from: Jonas Maebe on August 25, 2015, 02:33:17 pmThe bootstrap compilers are sometimes uploaded for certain source-centric packagers, but they are 100% unsupported and you should not use them. (to be exact: it started with the FreeBSD ports tree) QuoteIf it were up to me, all of these bootstrap compilers would be removed from the ftp site, because using them instead of a full installation can lead under some circumstances to hard to diagnose problems if you don't know the details of the FPC build process. I'm not sure the complaints won't go away if you remove the bootstrap compiler. The constant demand for something was the reason to add them for the public in the first place. IMHO continue and keep making clear it is meant for intermediate or expert level. ---------------------------------------------------------------------- Jonas Maebe · 2015-08-25 13:20 The official policy, on which there is consensus, is that bootstrapping is only supported starting from a full installation of the latest release. Everything extra is up to individual initiative, as is usually the case with open source projects.. ---------------------------------------------------------------------- DonAlfredo · 2015-08-26 16:01 FPCUP uses the supplied bootstrap compilers from ftp://ftp.freepascal.org/pub/fpc Naturally, this does not work anymore. We have to think of something else to get things working ! ---------------------------------------------------------------------- rvk · 2015-08-26 16:39 So, there is no known maintainer who uploaded the other bootstraps and the Windows one for 2.6.2? That really inspires confidence in the whole Lazarus project (For now I use my own ppc386.exe 2.6.4 zipped which I download from my own server in my script instead of the one provided by the fpc server) ---------------------------------------------------------------------- marcov · 2015-08-26 18:31 Quote from: rvk on August 26, 2015, 06:39:15 pmSo, there is no known maintainer who uploaded the other bootstraps and the Windows one for 2.6.2? Uploading the bootstrap compilers is a job of the platform maintainer. Sometimes somebody fixes it for missing targets. QuoteThat really inspires confidence in the whole Lazarus project So you are volunteering for release engineering? Cool! ---------------------------------------------------------------------- rvk · 2015-08-26 19:15 Quote from: marcov on August 26, 2015, 08:31:22 pmQuote from: rvk on August 26, 2015, 06:39:15 pmSo, there is no known maintainer who uploaded the other bootstraps and the Windows one for 2.6.2? Uploading the bootstrap compilers is a job of the platform maintainer. Sometimes somebody fixes it for missing targets. QuoteThat really inspires confidence in the whole Lazarus project So you are volunteering for release engineering? Cool! No problem for me uploading the zip of the released ppc386.exe 2.6.4 (just need access). I just thought it would have been done simultaneously with the normal releases. ---------------------------------------------------------------------- rvk · 2015-08-26 19:51 Quote from: Jonas Maebe on August 25, 2015, 02:33:17 pmThe only supported way to bootstrap FPC always has been and always will be based on a complete installation of the previous official release.Where can I download the official release of FPC 2.6.4 for x86_64 (64bit) ??? Or do I need to first install FPC 2.6.4 32bit and then the cross- compiler for 64bit? Could the ppcrossx64.exe be used to compile FPC trunk 64bit? It's smaller than the ppcx64.exe which is released with Lazarus 1.4.2 64bit. Or do I need to install complete Lazarus 64 bit to compile FPC trunk 64bit ?? (even in cases where Lazarus is not needed) ---------------------------------------------------------------------- Jonas Maebe · 2015-08-26 19:56 Quote from: rvk on August 26, 2015, 09:51:46 pmWhere can I download the official release of FPC 2.6.4 for x86_64 (64bit) ??? We don't distribute one, because there is little to no advantage over using a cross-compiler. QuoteOr do I need to first install FPC 2.6.4 32bit and then the cross- compiler for 64bit? Could the ppcrossx64.exe be used to compile FPC trunk 64bit? Yes and yes, but you have to add CPU_SOURCE=x86_64 to the make flags for the second part. ---------------------------------------------------------------------- marcov · 2015-08-26 20:03 Quote from: rvk on August 26, 2015, 06:39:15 pmSo, there is no known maintainer who uploaded the other bootstraps and the Windows one for 2.6.2? Sigh, fixed. ---------------------------------------------------------------------- rvk · 2015-08-26 20:11 Quote from: marcov on August 26, 2015, 10:03:51 pmQuote from: rvk on August 26, 2015, 06:39:15 pmSo, there is no known maintainer who uploaded the other bootstraps and the Windows one for 2.6.2? Sigh, fixed.  Cool  (still missing the x86_64 one but apparently nobody uses that ) ---------------------------------------------------------------------- marcov · 2015-08-27 08:21 Quote from: rvk on August 26, 2015, 10:11:06 pm(still missing the x86_64 one but apparently nobody uses that ) The cross one? There is no formal native x64 one. ---------------------------------------------------------------------- rvk · 2015-08-27 08:25 Quote from: marcov on August 27, 2015, 10:21:03 amQuote from: rvk on August 26, 2015, 10:11:06 pm(still missing the x86_64 one but apparently nobody uses that ) The cross one? There is no formal native x64 one. There is It's in the Lazarus 1.4.2 64bit version. It's contained in this installation: http://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2064%2 0bits/Lazarus%201.4.2/ lazarus-1.4.2-fpc-2.6.4-win64.exe It has the real ppcx64.exe for FPC 2.6.4 64bit. That's why I found it strange that there is no official standalone FPC 2.6.4 for 64bit while it is distributed with Lazarus 1.4.2 for 64 bit. ---------------------------------------------------------------------- marcov · 2015-08-27 08:30 Quote from: rvk on August 27, 2015, 10:25:33 amQuote from: marcov on August 27, 2015, 10:21:03 amQuote from: rvk on August 26, 2015, 10:11:06 pm(still missing the x86_64 one but apparently nobody uses that ) The cross one? There is no formal native x64 one. There is It's in the Lazarus 1.4.2 64bit version. As said, there is no formal one, only third party builds. But maybe it is better to stick to the party line and use the crosscompiler for that. ---------------------------------------------------------------------- rvk · 2015-08-27 08:36 Quote from: marcov on August 27, 2015, 10:30:00 amQuote from: rvk on August 27, 2015, 10:25:33 amQuote from: marcov on August 27, 2015, 10:21:03 amQuote from: rvk on August 26, 2015, 10:11:06 pm(still missing the x86_64 one but apparently nobody uses that ) The cross one? There is no formal native x64 one. There is It's in the Lazarus 1.4.2 64bit version. As said, there is no formal one, only third party builds. But maybe it is better to stick to the party line and use the crosscompiler for that. In that case it still wouldn't be possible to build FPC 64bit from scratch with a bootstrap compiler without first installing FPC 32bit. But ok. I don't use 64bit myself and it is not advised either: QuoteCurrent released versions of FPC (2.6.x) do not include support for SEH handling. This can affect the stability of many 64 bit applications. Therefore it is recommended to use the 32bit IDE, and generate 32bit applications only. This will change when FPC 3.0 is released. Please visit our forums and Wiki for additional information. http://wiki.lazarus.freepascal.org/Windows_Programming_Tips#FPC_2.6.x. 2FLazarus_warning_.28Missing_support_for_SEH.29 (fpcup64.exe might temporarily need to find some other solution) ---------------------------------------------------------------------- marcov · 2015-08-27 08:43 Quote from: rvk on August 27, 2015, 10:36:20 amIn that case it still wouldn't be possible to build FPC 64bit from scratch with a bootstrap compiler without first installing FPC 32bit. Why? The win32->win64 crosscompiler should be able to generate win64 binaries? What does it matter that it is a win32 binary for bootstrap start ? QuoteBut ok. I don't use 64bit myself and it is not advised either: The only reason that I do anything about 2.6.4 is to rectify the 3.0 bootstrapping situation for fpcup. I wouldn't put too much effort 2.6.x otherwise. Note that 3.0 only fixes SEH for win64.  This because any exception use in foreign code  (including shell plugins running in open->file) caused problems. The win32 SEH is sleeping in 3.x . But you only need that if you have foreign code that raises exceptions and leaves you to handle it. ---------------------------------------------------------------------- DonAlfredo · 2015-08-27 08:53 @marcov Thanks ! FPCUP will soon be updated to reflect the changes. ---------------------------------------------------------------------- rvk · 2015-08-27 08:58 Quote from: marcov on August 27, 2015, 10:43:11 amQuote from: rvk on August 27, 2015, 10:36:20 amIn that case it still wouldn't be possible to build FPC 64bit from scratch with a bootstrap compiler without first installing FPC 32bit. Why? The win32->win64 crosscompiler should be able to generate win64 binaries? What does it matter that it is a win32 binary for bootstrap start ? You don't have a win32->win64 crosscompiler if you build fpc 64bit from scratch (without any 32bit parts). That's what the 64bit bootstrap would be for. So without the 64bit bootstrap you would still need to download the crosscompiler separately. True... it's "just" a 22MB download but still massively larger than the <1MB ppcx64.exe. QuoteThe only reason that I do anything about 2.6.4 is to rectify the 3.0 bootstrapping situation for fpcup. I wouldn't put too much effort 2.6.x otherwise. That's why I mentioned it. fpcup64.exe wouldn't work without downloading the extra 22MB for the crosscompiler (or does it??). But I leave that up to DonAlfredo to debate and fix. (maybe it's not necessary) ---------------------------------------------------------------------- marcov · 2015-08-27 08:58 Quote from: DonAlfredo on August 27, 2015, 10:53:22 am@marcov Thanks ! FPCUP will soon be updated to reflect the changes. I also added the crosscompiler. ---------------------------------------------------------------------- marcov · 2015-08-27 08:59 Quote from: rvk on August 27, 2015, 10:58:27 amYou don't have a win32->win64 crosscompiler if you build fpc 64bit from scratch (without any 32bit parts). That's what the 64bit bootstrap would be for. So without the 64bit bootstrap you would still need to download the crosscompiler separately. True... it's "just" a 22MB download but still massively larger than the <1MB ppcx64.exe. I meant a crosscompiler bootstrap archive as opposed to a native win64 bootstrap archive. ---------------------------------------------------------------------- rvk · 2015-08-27 09:00 Quote from: marcov on August 27, 2015, 10:58:35 amQuote from: DonAlfredo on August 27, 2015, 10:53:22 am@marcov Thanks ! FPCUP will soon be updated to reflect the changes. I also added the crosscompiler. Ah  Yeah. That would fix it  I hope we haven't been too much trouble ---------------------------------------------------------------------- DonAlfredo · 2015-08-27 09:06 @marcov: Give them a finger, and they'll take the whole hand ... Linux (+ARM) ? ---------------------------------------------------------------------- marcov · 2015-08-27 09:11 Quote from: DonAlfredo on August 27, 2015, 11:06:25 am@marcov: Give them a finger, and they'll take the whole hand ... Linux (+ARM) ? For Linux, ask somebody else.  There is no useful ARM in 2.6.4 anyway that works with e.g. Raspberry PIs, so unless you target armv5 sheeva that is pointless.