Recent

Author Topic: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64  (Read 6485 times)

MarkMLl

  • Hero Member
  • *****
  • Posts: 8080
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #15 on: October 26, 2022, 11:53:04 am »
Just tried with

Code: [Select]
make NO_GDB=1 DEBUG=1 OPT='-V3.0.4 -O- -gl -Xs-' all

which ran through to the same place

Code: [Select]
/usr/local/src.fpc/fpcbuild-3.2.2/fpcsrc/compiler/ppc1 -Ur -gl -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/usr/local/src.fpc/fpcbuild-3.2.2/fpcsrc/rtl/units/x86_64-linux -Cg -V3.0.4 -O- -gl -Xs- -dx86_64 -dDEBUG -dRELEASE  -Us -Sg system.pp

...noting the -d in that.

Have to go out for a while, continued suggestions appreciated.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

TRon

  • Hero Member
  • *****
  • Posts: 3742
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #16 on: January 21, 2023, 11:12:58 am »
Sorry, I hope you do not mind MarkMLI but I have opted to bump this thread instead of creating a new one as it seemed fitted to me (if that is a problem then please let me know and I'll move and delete this post).



My experience with building FPC (from source, using official distributed startup compiler) on debian bookworm.

Note that building 3.2.2 with 3.2.0 as start compiler works as well as building all of the mentioned versions on a debian buster system.



build="3.2.0" start="3.0.4" OPT="-O-"  (segfault msgtxt.inc)

Code: [Select]
make -C utils cleanall
make[6]: Entering directory '/media/ramdisk-8gb/capture/src/fpc-3.2.0/compiler/utils'
/usr/bin/rm -f fpc ppufiles ppudump ppumove mka64ins mkarmins mkx86ins fpc.o ppufiles.o ppudump.o ppumove.o mka64ins.o mkarmins.o mkx86ins.o libpfpc.a libpppufiles.a libpppudump.a libpppumove.a libpmka64ins.a libpmkarmins.a libpmkx86ins.a libimpfpc.a libimpppufiles.a libimpppudump.a libimpppumove.a libimpmka64ins.a libimpmkarmins.a libimpmkx86ins.a
/usr/bin/rm -f units/x86_64-linux/ppu.ppu units/x86_64-linux/crc.ppu
/usr/bin/rm -rf units
/usr/bin/rm -rf bin
/usr/bin/rm -f *.o *.ppu *.rst *.s *.a *.so *.ppl
/usr/bin/rm -rf *.sl
/usr/bin/rm -f fpcmade.* Package.fpc ./ppas.sh script.res link.res 
/usr/bin/rm -f *_ppas.sh ppas.sh ppaslink.sh
make[6]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.2.0/compiler/utils'
/usr/bin/rm -rf x86_64/units
/usr/bin/rm -rf x86_64/bin
/usr/bin/rm -f x86_64/*.o x86_64/*.ppu x86_64/*.rst x86_64/*.s x86_64/*.a x86_64/*.so x86_64/*.ppl
/usr/bin/rm -f x86_64/ppc386 x86_64/ppc68k x86_64/ppcppc x86_64/ppcsparc x86_64/ppcarm x86_64/ppcarmeb x86_64/ppcx64 x86_64/ppcppc64 x86_64/ppcmips x86_64/ppcmipsel x86_64/ppcavr x86_64/ppcjvm x86_64/ppc8086 x86_64/ppca64 x86_64/ppcsparc64
/usr/bin/rm -f ppcx64
/usr/bin/mkdir -p x86_64/units/x86_64-linux
make ./msg2inc
make[6]: Entering directory '/media/ramdisk-8gb/capture/src/fpc-3.2.0/compiler'
/media/ramdisk-8gb/capture/bin/bootstrap/ppcx64-3.0.4 -Ur -Xs -O2 -n -Fux86_64 -Fusystems -Fu/media/ramdisk-8gb/capture/src/fpc-3.2.0/rtl/units/x86_64-linux -Fix86_64 -FE. -FUx86_64/units/x86_64-linux -Cg -dRELEASE -O- -dx86_64 -dGDB -dBROWSERLOG -Fux86 -Sew -FE. utils/msg2inc.pp
/usr/bin/ld: warning: ./link.res contains output sections; did you forget -T?
make[6]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.2.0/compiler'
./msg2inc msg/errore.msg msg msg
make[5]: *** [Makefile:4188: msgtxt.inc] Segmentation fault
make[5]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.2.0/compiler'
make[4]: *** [Makefile:4309: next] Error 2
make[4]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.2.0/compiler'
make[3]: *** [Makefile:4313: ppc1] Error 2
make[3]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.2.0/compiler'
make[2]: *** [Makefile:4325: cycle] Error 2
make[2]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.2.0/compiler'
make[1]: *** [Makefile:2799: compiler_cycle] Error 2
make[1]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.2.0'
make: *** [Makefile:2831: build-stamp.x86_64-linux] Error 2

build="3.0.4" start="3.0.2" OPT="-O-"  (segfault msgtxt.inc)

Code: [Select]
make -C utils cleanall
make[6]: Entering directory '/media/ramdisk-8gb/capture/src/fpc-3.0.4/compiler/utils'
/usr/bin/rm -f fpc ppufiles ppudump ppumove mkarmins mkx86ins fpc.o ppufiles.o ppudump.o ppumove.o mkarmins.o mkx86ins.o libpfpc.a libpppufiles.a libpppudump.a libpppumove.a libpmkarmins.a libpmkx86ins.a libimpfpc.a libimpppufiles.a libimpppudump.a libimpppumove.a libimpmkarmins.a libimpmkx86ins.a
/usr/bin/rm -f units/x86_64-linux/ppu.ppu units/x86_64-linux/crc.ppu
/usr/bin/rm -rf units
/usr/bin/rm -f *.o *.ppu *.rst *.s *.a *.so *.ppl
/usr/bin/rm -rf *.sl
/usr/bin/rm -f fpcmade.* Package.fpc ./ppas.sh script.res link.res 
/usr/bin/rm -f *_ppas.sh
make[6]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.4/compiler/utils'
/usr/bin/rm -rf x86_64/units
/usr/bin/rm -f x86_64/*.o x86_64/*.ppu x86_64/*.rst x86_64/*.s x86_64/*.a x86_64/*.so x86_64/*.ppl
/usr/bin/rm -f x86_64/ppc386 x86_64/ppc68k x86_64/ppcx64 x86_64/ppcppc x86_64/ppcsparc x86_64/ppcppc64 x86_64/ppcarm x86_64/ppcmips x86_64/ppcmipsel x86_64/ppcjvm x86_64/ppc8086 x86_64/ppcx64
/usr/bin/rm -f ppcx64
/usr/bin/mkdir -p x86_64/units/x86_64-linux
make ./msg2inc
make[6]: Entering directory '/media/ramdisk-8gb/capture/src/fpc-3.0.4/compiler'
/media/ramdisk-8gb/capture/bin/bootstrap/ppcx64-3.0.2 -Ur -Xs -O2 -n -Fux86_64 -Fusystems -Fu/media/ramdisk-8gb/capture/src/fpc-3.0.4/rtl/units/x86_64-linux -Fix86_64 -FE. -FUx86_64/units/x86_64-linux -Cg -dRELEASE -O- -dx86_64 -dGDB -dBROWSERLOG -Fux86 -Sew -FE. utils/msg2inc.pp
/usr/bin/ld: warning: ./link.res contains output sections; did you forget -T?
make[6]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.4/compiler'
./msg2inc msg/errore.msg msg msg
make[5]: *** [Makefile:3858: msgtxt.inc] Segmentation fault
make[5]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.4/compiler'
make[4]: *** [Makefile:3971: next] Error 2
make[4]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.4/compiler'
make[3]: *** [Makefile:3975: ppc1] Error 2
make[3]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.4/compiler'
make[2]: *** [Makefile:3987: cycle] Error 2
make[2]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.4/compiler'
make[1]: *** [Makefile:2780: compiler_cycle] Error 2
make[1]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.4'
make: *** [Makefile:2812: build-stamp.x86_64-linux] Error 2

build="3.0.2" start="3.0.0" OPT="-O-" (segfault msgtxt.inc)

Code: [Select]
make -C utils cleanall
make[6]: Entering directory '/media/ramdisk-8gb/capture/src/fpc-3.0.2/compiler/utils'
/usr/bin/rm -f fpc ppufiles ppudump ppumove mkarmins mkx86ins fpc.o ppufiles.o ppudump.o ppumove.o mkarmins.o mkx86ins.o libpfpc.a libpppufiles.a libpppudump.a libpppumove.a libpmkarmins.a libpmkx86ins.a libimpfpc.a libimpppufiles.a libimpppudump.a libimpppumove.a libimpmkarmins.a libimpmkx86ins.a
/usr/bin/rm -f units/x86_64-linux/ppu.ppu units/x86_64-linux/crc.ppu
/usr/bin/rm -rf units
/usr/bin/rm -f *.o *.ppu *.rst *.s *.a *.so *.ppl
/usr/bin/rm -rf *.sl
/usr/bin/rm -f fpcmade.* Package.fpc ./ppas.sh script.res link.res 
/usr/bin/rm -f *_ppas.sh
make[6]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.2/compiler/utils'
/usr/bin/rm -rf x86_64/units
/usr/bin/rm -f x86_64/*.o x86_64/*.ppu x86_64/*.rst x86_64/*.s x86_64/*.a x86_64/*.so x86_64/*.ppl
/usr/bin/rm -f x86_64/ppc386 x86_64/ppc68k x86_64/ppcx64 x86_64/ppcppc x86_64/ppcsparc x86_64/ppcppc64 x86_64/ppcarm x86_64/ppcmips x86_64/ppcmipsel x86_64/ppcjvm x86_64/ppc8086 x86_64/ppcx64
/usr/bin/rm -f ppcx64
/usr/bin/mkdir -p x86_64/units/x86_64-linux
make ./msg2inc
make[6]: Entering directory '/media/ramdisk-8gb/capture/src/fpc-3.0.2/compiler'
/media/ramdisk-8gb/capture/bin/bootstrap/ppcx64-3.0.0 -Ur -Xs -O2 -n -Fux86_64 -Fusystems -Fu/media/ramdisk-8gb/capture/src/fpc-3.0.2/rtl/units/x86_64-linux -Fix86_64 -FE. -FUx86_64/units/x86_64-linux -Cg -dRELEASE -O- -dx86_64 -dGDB -dBROWSERLOG -Fux86 -Sew -FE. utils/msg2inc.pp
/usr/bin/ld: warning: ./link.res contains output sections; did you forget -T?
make[6]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.2/compiler'
./msg2inc msg/errore.msg msg msg
make[5]: *** [Makefile:3855: msgtxt.inc] Segmentation fault
make[5]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.2/compiler'
make[4]: *** [Makefile:3968: next] Error 2
make[4]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.2/compiler'
make[3]: *** [Makefile:3972: ppc1] Error 2
make[3]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.2/compiler'
make[2]: *** [Makefile:3984: cycle] Error 2
make[2]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.2/compiler'
make[1]: *** [Makefile:2779: compiler_cycle] Error 2
make[1]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.2'
make: *** [Makefile:2811: build-stamp.x86_64-linux] Error 2

build="3.0.0" start="2.6.4" OPT="-O-" (segfault system.ppu)

Code: [Select]
make -C /media/ramdisk-8gb/capture/src/fpc-3.0.0/rtl 'OPT=-O-' all
make[6]: Entering directory '/media/ramdisk-8gb/capture/src/fpc-3.0.0/rtl'
make -C linux all
make[7]: Entering directory '/media/ramdisk-8gb/capture/src/fpc-3.0.0/rtl/linux'
as --64 -o /media/ramdisk-8gb/capture/src/fpc-3.0.0/rtl/units/x86_64-linux/prt0.o x86_64/prt0.as
as --64  -o /media/ramdisk-8gb/capture/src/fpc-3.0.0/rtl/units/x86_64-linux/dllprt0.o x86_64/dllprt0.as
as --64 -o /media/ramdisk-8gb/capture/src/fpc-3.0.0/rtl/units/x86_64-linux/cprt0.o x86_64/cprt0.as
as --64 -o /media/ramdisk-8gb/capture/src/fpc-3.0.0/rtl/units/x86_64-linux/gprt0.o x86_64/gprt0.as
/media/ramdisk-8gb/capture/src/fpc-3.0.0/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/capture/src/fpc-3.0.0/rtl/units/x86_64-linux -Cg -O- -dx86_64 -dRELEASE -Us -Sg system.pp
make[7]: *** [Makefile:3489: system.ppu] Segmentation fault
make[7]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.0/rtl/linux'
make[6]: *** [Makefile:1928: linux_all] Error 2
make[6]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.0/rtl'
make[5]: *** [Makefile:4076: rtl] Error 2
make[5]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.0/compiler'
make[4]: *** [Makefile:3967: next] Error 2
make[4]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.0/compiler'
make[3]: *** [Makefile:3976: ppc2] Error 2
make[3]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.0/compiler'
make[2]: *** [Makefile:3984: cycle] Error 2
make[2]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.0/compiler'
make[1]: *** [Makefile:2780: compiler_cycle] Error 2
make[1]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-3.0.0'
make: *** [Makefile:2812: build-stamp.x86_64-linux] Error 2

build="2.6.4" start="2.6.2" OPT="-O-" (segfault system.ppu)

Code: [Select]
make -C /media/ramdisk-8gb/capture/src/fpc-2.6.4/rtl 'OPT=-O-' all
make[6]: Entering directory '/media/ramdisk-8gb/capture/src/fpc-2.6.4/rtl'
make -C linux all
make[7]: Entering directory '/media/ramdisk-8gb/capture/src/fpc-2.6.4/rtl/linux'
as --64 -o /media/ramdisk-8gb/capture/src/fpc-2.6.4/rtl/units/x86_64-linux/prt0.o x86_64/prt0.as
as --64 -o /media/ramdisk-8gb/capture/src/fpc-2.6.4/rtl/units/x86_64-linux/dllprt0.o x86_64/dllprt0.as
as --64 -o /media/ramdisk-8gb/capture/src/fpc-2.6.4/rtl/units/x86_64-linux/cprt0.o x86_64/cprt0.as
as --64 -o /media/ramdisk-8gb/capture/src/fpc-2.6.4/rtl/units/x86_64-linux/gprt0.o x86_64/gprt0.as
/media/ramdisk-8gb/capture/src/fpc-2.6.4/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/capture/src/fpc-2.6.4/rtl/units/x86_64-linux -Cg -O- -dx86_64 -dRELEASE -Us -Sg system.pp
make[7]: *** [Makefile:3055: system.ppu] Segmentation fault
make[7]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-2.6.4/rtl/linux'
make[6]: *** [Makefile:1754: linux_all] Error 2
make[6]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-2.6.4/rtl'
make[5]: *** [Makefile:3587: rtl] Error 2
make[5]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-2.6.4/compiler'
make[4]: *** [Makefile:3488: next] Error 2
make[4]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-2.6.4/compiler'
make[3]: *** [Makefile:3497: ppc2] Error 2
make[3]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-2.6.4/compiler'
make[2]: *** [Makefile:3505: cycle] Error 2
make[2]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-2.6.4/compiler'
make[1]: *** [Makefile:2516: compiler_cycle] Error 2
make[1]: Leaving directory '/media/ramdisk-8gb/capture/src/fpc-2.6.4'
make: *** [Makefile:2526: build-stamp.x86_64-linux] Error 2

I assume that the rest (e.g. older versions) follow the same pattern in segfaulting on system.ppu

I have not been able to figure out the culprit. And yes, I am in need of some of those old compilers (as well).
I do not have to remember anything anymore thanks to total-recall.

MarkMLl

  • Hero Member
  • *****
  • Posts: 8080
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #17 on: January 21, 2023, 12:33:27 pm »
I think the important thing is that if the host computer is Debian "Bookworm" x86_64, it's not possible to progress from 3.0 to 3.2. This build did work on older systems.

When I spotted it I was wondering whether it was related to something similar on SPARC that I came across a year or so ago, which somebody (Jonas?) helped me out with by mentioning a target-specific option related to the fix in FPC related to the old linker -T warning.

I believe that it's distinct from the issue I mentioned earlier where versions of FPC older than 3.2.2 won't build programs referencing the C libraries (cthreads etc.) on Bookworm where they were find on older Debian versions.

Sorry if this is excessively concise, we seem to be having power cuts...

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

Thaddy

  • Hero Member
  • *****
  • Posts: 16292
  • Censorship about opinions does not belong here.
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #18 on: January 21, 2023, 12:40:48 pm »
I think the important thing is that if the host computer is Debian "Bookworm" x86_64, it's not possible to progress from 3.0 to 3.2. This build did work on older systems.
It works a bit different: the bootstrap compiler is always the previous release version, and the only documented bootstrap compiler, but there is sometimes a grace period allowed if, and only if, compiler changes would still allow a bootstrap with an older version. In such cases the grace period is removed somewhat later.
As such this can greatly vary between updates. After a previous version is updated in such a way that the new compiler relies on new features introduced in the bootstrap version, this is not possible.
Hence sometimes an older version can be used as a bootstrap compiler, and sometimes not and this can vary per release. So the statement that it "worked in the past" is false: that is and has always been dependent per release.
Note that the other way around is also possible. There is a make parameter called OVERRIDEVERSIONCHECK=1. You might assume that you can then build with another version, both older or the same as the newests release. Alas, the same as above: it is possible that the newest version relies on features from the previous stable release, so you can not bootstrap the latest release with itself because some features may have disappeared or changed in implementation (the breaking changes)

Unless you pretend to know what you are doing only the adagium "the bootstrap compiler is always the previous release version" holds.

BTW: the build scripts always can tell which version(s) are allowed for your particular bootstrap.
So, I hope it is clear it has nothing to do with "previous versions"
« Last Edit: January 21, 2023, 02:01:41 pm by Thaddy »
If I smell bad code it usually is bad code and that includes my own code.

MarkMLl

  • Hero Member
  • *****
  • Posts: 8080
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #19 on: January 21, 2023, 01:45:29 pm »
In the 3.2.2 makefile, REQUIREDVERSION is set to 3.0.4.

And that worked correctly with older versions of Debian.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

Thaddy

  • Hero Member
  • *****
  • Posts: 16292
  • Censorship about opinions does not belong here.
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #20 on: January 21, 2023, 02:04:33 pm »
About the required version on Debian:
That *may* be an error. I expect 3.2.0.
Note I submitted patches for such occurances in the past.
Right now I am unable to check it, but it should be 3.2.0.
3.2.2. is built with 3.2.0.
Current Debian installs also 3.2.0, btw.
It may very well be that the deb in the debian repo is packaged with a wrong version. It was a mess.
And https://wiki.freepascal.org/User_Changes_3.2.0 has some nice "things" that may be breaking changes from 3.0.4. and so 3.0.4. can't ever build 3.2.2. from the looks of it.
« Last Edit: January 21, 2023, 02:19:56 pm by Thaddy »
If I smell bad code it usually is bad code and that includes my own code.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11980
  • FPC developer.
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #21 on: January 21, 2023, 02:23:18 pm »
In the 3.2.2 makefile, REQUIREDVERSION is set to 3.0.4.

Probably that is an own debian hack. In SVN of the 3.2.2 release branch it is not:

https://gitlab.com/freepascal.org/fpc/source/-/blob/release_3_2_2/Makefile.fpc

If I look at TRon's last post, it seems that binaries generated with obsolete versions of FPC are not compatible with something in the future debian.

If those binaries are still needd (e.g. for some debian internal bootstrap) , maybe the easiest solution is notify Debian, and get that fixed.
« Last Edit: January 21, 2023, 02:28:02 pm by marcov »

Thaddy

  • Hero Member
  • *****
  • Posts: 16292
  • Censorship about opinions does not belong here.
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #22 on: January 21, 2023, 02:25:42 pm »
Tnx for confirming. That's what I suspected.
If I smell bad code it usually is bad code and that includes my own code.

MarkMLl

  • Hero Member
  • *****
  • Posts: 8080
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #23 on: January 21, 2023, 02:34:11 pm »
About the required version on Debian:
That *may* be an error. I expect 3.2.0.
...
And https://wiki.freepascal.org/User_Changes_3.2.0 has some nice "things" that may be breaking changes from 3.0.4. and so 3.0.4. can't ever build 3.2.2. from the looks of it.

3.0.4 certainly built 3.2.2 on the previous version of Debian I used. Otherwise that wouldn't have been the one I started with on "Bookworm".

The rule I understood and have always worked to, for native builds on various platforms from somewhere around 2.2, was that the current compiler should be built with the latest patch of the previous minor version.

When I raised this a few months ago I was given the impression- although I concede that I might have read it wrong- that I should have been using 3.2.0 to build 3.2.2 and that since 3.0.4 was obsolete the developers... well, didn't give a damn frankly.

Now I'd point out that there does appear to be provision for a fallback to 3.2.0 in 3.2.2's makefile. But in that case I'd expect something a bit more useful, at least in terms of error message.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

MarkMLl

  • Hero Member
  • *****
  • Posts: 8080
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #24 on: January 21, 2023, 02:46:20 pm »
In the 3.2.2 makefile, REQUIREDVERSION is set to 3.0.4.

Probably that is an own debian hack. In SVN of the 3.2.2 release branch it is not:

NO EFFING WAY!!!!!!!!!!!!!!!!!!!!

Code: Text  [Select][+][-]
  1. $ mkdir scratch
  2. $ cd scratch
  3. $ sha1sum ../fpcbuild-3.2.2.tar.gz
  4. 41f8783595907ae5f56b58b909707af15a460de6  ../fpcbuild-3.2.2.tar.gz
  5. $ tar xzf ../fpcbuild-3.2.2.tar.gz
  6. $ grep REQUIREDVERSION fpcbuild-3.2.2/fpcsrc/Makefile
  7. REQUIREDVERSION=3.0.4
  8. REQUIREDVERSION2=3.2.0
  9. ifneq ($(FPC_VERSION),$(REQUIREDVERSION))
  10. ifneq ($(FPC_VERSION),$(REQUIREDVERSION2))
  11.         $(error The only supported starting compiler version is $(REQUIREDVERSION). You are trying to build with $(FPC_VERSION).)
  12. $
  13.  

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

Thaddy

  • Hero Member
  • *****
  • Posts: 16292
  • Censorship about opinions does not belong here.
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #25 on: January 21, 2023, 02:55:55 pm »
What you showed is the tempory grace I referred to. Also note the Debian version is a patched version and that patch did not come from the core fpc developers....
If I smell bad code it usually is bad code and that includes my own code.

MarkMLl

  • Hero Member
  • *****
  • Posts: 8080
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #26 on: January 21, 2023, 03:01:02 pm »
What you showed is the tempory grace I referred to. Also note the Debian version is a patched version and that patch did not come from the core fpc developers....

I AM NOT USING THE DEBIAN VERSION!!!!!!!!!!!!!!!!!

And what is more, I am talking about a binary version of 3.0.4 plus a source version of 3.2.2 moved TOGETHER from one Debian release to another, so "grace period" or whatever you want to call it is quite simply bullshit.
« Last Edit: January 21, 2023, 03:04:14 pm by MarkMLl »
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11980
  • FPC developer.
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #27 on: January 21, 2023, 03:08:24 pm »
That is the SHA1SUM from the website also. I just noticed that that update is an year ago (IOW after the release).

Thaddy is right though, officially only the previous working release (so 3.2.0 for 3.2.2) is supported, even if for some reason (and/or target) an older version is not explicitly forbidden.

The REQUIRE* is a simple safeguard to avoid accidental building with ancient versions. It is not in any case a guarantee.

If debian delivers with 3.0.4, that is against official FPC policy, and thus on their head.

Thaddy

  • Hero Member
  • *****
  • Posts: 16292
  • Censorship about opinions does not belong here.
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #28 on: January 21, 2023, 03:10:43 pm »
Grace period solved I guess? Tnks Marco.
If I smell bad code it usually is bad code and that includes my own code.

MarkMLl

  • Hero Member
  • *****
  • Posts: 8080
Re: Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64
« Reply #29 on: January 21, 2023, 03:29:48 pm »
If debian delivers with 3.0.4, that is against official FPC policy, and thus on their head.

Marco. I have never touched any Debian-supplied versions of FPC. I'm not even certain that Debian packaged FPC when I started using it.

This is ENTIRELY about 3.0.4 built from source, and its inability to build 3.2.2 on one particular platform.

That should have worked.

Or if it didn't work, it should have provided some sensible error message.

Or if there wasn't a sensible error message, I'd expect some sort of acknowledgement of that from the developers.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Logitech, TopSpeed & FTL Modula-2 on bare metal (Z80, '286 protected mode).
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

 

TinyPortal © 2005-2018