Forum > FPC development

Building FPC 3.2.2 on Debian "Testing" (Bookworm) x86_64

<< < (3/10) > >>

MarkMLl:

--- Quote from: dbannon on October 26, 2022, 12:23:28 am ---If you need those kernel moduals or RAID to boot, yep, that kills it but if the netinst iso can boot, everything else can be installed.

I am sure that  you can find, eventually, any recommendation you can imagine on the Debian Website. They do try and keep netinst CD size but its well under that right now so why its currently missing key components is anyone's guess.

--- End quote ---

With modules missing from the ISO and no network? And in the case of software RAID it was NOT SUPPORTED, i.e. not realistically fixable.


--- Quote ---I would not install Testing this early in the Debian cycle directly onto hardware with first putting it on a VM and looking at the stuff I am particularly interested in. But, of course, if that interesting stuff relates to underlying hardware, little choice.

--- End quote ---

"Bullseye" is now more than a year old, so going by Debian's normal progression "Bookworm" has around a year left to release. It's "Testing", not "SID", and it's reasonable to use it on non-critical systems.

I'd also point out that VMs and in particular Docker can be problematic if e.g. a development system needs to get at arbitrary USB devices. The various VM schemes are fairly good, but non-VM containerisation has been casually mackled together using Linux's various namespace mechanisms and sundry hacks involving Netfilters etc. It's yet another illustration of how ill-conceived Linux really is, and how desperately the industry needs something better-architected.

MarkMLl

MarkMLl:

--- Quote from: MarkMLl on October 25, 2022, 04:50:44 pm ---which was something that I think Jonas put me onto. I believe that documentation of that option was (intentionally) minimal, and don't know whether anything comparable would help with the Bookworm issue.

--- End quote ---

As far as I can see, attempting to build 3.2.2 using 3.0.4 (doomed to failure) generates ppc1 using the line


--- Code: ---/usr/bin/mkdir -p x86_64/units/x86_64-linux
/usr/local/bin/ppcx64 -Ur -Xs -O2 -n -Fux86_64 -Fusystems -Fu/usr/local/src.fpc/fpcbuild-3.2.2/fpcsrc/rtl/units/x86_64-linux -Fix86_64 -FE. -FUx86_64/units/x86_64-linux -Cg -dRELEASE -V3.0.4 -O- -gl -Xs- -vt -dx86_64 -dGDB -dBROWSERLOG -Fux86 pp.pas
/usr/bin/ld: warning: ./link.res contains output sections; did you forget -T?
/usr/bin/mv -f ./pp ppcx64
...
/usr/bin/rm -f ppc1
/usr/bin/mv -f ppcx64 ppc1
make 'FPC=/usr/local/src.fpc/fpcbuild-3.2.2/fpcsrc/compiler/ppc1' 'OLDFPC=' next CYCLELEVEL=2

--- End code ---

while building 3.2.2 using 3.2.0 (shouldn't be allowed but works) generates ppc1 using the line


--- Code: ---/usr/bin/mkdir -p x86_64/units/x86_64-linux
/usr/local/bin/ppcx64 -Ur -Xs -O2 -n -Fux86_64 -Fusystems -Fu/usr/local/src.fpc/fpcbuild-3.2.2/fpcsrc/rtl/units/x86_64-linux -Fix86_64 -FE. -FUx86_64/units/x86_64-linux -Cg -dRELEASE -V3.2.0 -O- -gl -Xs- -vt -dx86_64 -dGDB -dBROWSERLOG -Fux86 pp.pas
/usr/bin/mv -f ./pp ppcx64
...
/usr/bin/rm -f ppc1
/usr/bin/mv -f ppcx64 ppc1
make 'FPC=/usr/local/src.fpc/fpcbuild-3.2.2/fpcsrc/compiler/ppc1' 'OLDFPC=' next CYCLELEVEL=2

--- End code ---

The commands are the same except for my attempt to override the compiler version with a -V (which doesn't work, but is at least useful for logging).

I think the problem is caused by the fix that went into 3.2.0 to eliminate the -T warning, which now appears to be required (rather than optional) for the linker being shipped by Debian.

I'd be interested if anybody could point me at the patch required, so that I can investigate whether it can be informally applied to older versions of FPC to make them compilable under Debian (on the assumption that Debian doesn't walk back from this change).

MarkMLl

marcov:
(or test if it works with OPT=-O-

MarkMLl:

--- Quote from: marcov on October 26, 2022, 10:56:28 am ---(or test if it works with OPT=-O-

--- End quote ---

(Blinks and checks...) How do I force that in? My original command line is basically


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

--- End code ---

so that -O2 is coming from some of the internal makefile gubbins.

MarkMLl

marcov:
(from memory) Try adding RELEASE=0  or DEBUG=1 to the cmdline

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version