[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