[fpc-devel] Building 2.7.1 on current Raspbian fails

peter green plugwash at p10link.net
Thu Oct 23 13:05:47 CEST 2014


Thaddy de Koning wrote:
> Not for ARMV6 EABIHF
Building for ARMV6+vfpv2 armhf is indeed a bit of a messs.

Afaict it's not possible to build a cross compiler that defaults to 
armv6 ARMHF without modifying the source. With the right flags you 
should be able to create a cross-compiler that is armhf but defaults to 
ARMv7 and then with the right flags to that you should be able to build 
a native armv6 armhf compiler using it but I have never tried this.

Since you seem to think we are keeping stuff secret I should say how 
things were actually bootstrapped for debian/raspbian.

The initial armhf port I did (of then-current trunk) was done on an 
armv7 system. using a debian armel build of 2.6.0 and manually setting 
-dFPC_ARMHF. This was easier at the time than it is now because iirc 
debian hadn't yet moved the system libraries to multiarch paths. Once my 
change was accepted into trunk I then backported the changes to 2.6.0 
and packaged them in debian.

Later debian armhf packages were simply built using the existing debian 
packages. I did have to make a small change to get 2.6.2 armhf to build 
with 2.6.0 armhf.

The raspbian packages were based on the debian packages and added a 
further patch to the source to change the default target to armv6+vfpv2. 
The intial raspbian packages were built using the debian armhf packages, 
later raspbian packages were built using previous raspbian packages.

Meanwhile over in trunk fpk (iirc) added a patch to make the compiler 
default to targetting armv6+vfpv2 if the compiler itself was built for 
armv6. A trunk compiler built to target armhf and running on any other 
CPU will default to targetting armv7+vfpv3_d16.

Someone also added code to make fpc look for libraries in multiarch 
paths on armel and armhf (despite me having been previously told that we 
should use fpc.cfg and the fpc maintainers wouldn't do this).

You can sometimes get away with using armhf libraries with an armel 
compiler if you don't care about any C library calls that involve 
floating point being broken. Certainly enough worked for the threaded 
tools used in the FPC build process to work.

IMO there should be an option to the FPC build to build without linking 
against C libraries, it's kinda crazy that we have to screw arround with 
the source to do it.



More information about the fpc-devel mailing list