[fpc-pascal] FPC 3.0.0-rc1 release

Mark Morgan Lloyd markMLl.fpc-pascal at telemetry.co.uk
Sun Aug 30 23:11:15 CEST 2015

Jonas Maebe wrote:
> On 30/08/15 17:36, Mark Morgan Lloyd wrote:
>>       [Requesting program interpreter: /lib/ld-linux.so.3]
>> ..
>> $ ls -l /lib/ld-linux.so.3
>> lrwxrwxrwx 1 root root 28 Oct 16  2014 /lib/ld-linux.so.3 ->
>> arm-linux-gnueabi/ld-2.13.so
>> $ ls -l /lib/arm-linux-gnueabi/ld-2.13.so
>> -rwxr-xr-x 1 root root 122136 Oct 16  2014
>> /lib/arm-linux-gnueabi/ld-2.13.so
>> You win that one, but I'm still a bit suspicious about what's in this
>> Raspbian: it's almost a year old and seems a bit sensitive to attempted
>> upgrades.
> The problem is that some old Debian (and hence Raspbian) versions used
> /lib/ld-linux.so.3 even on armhf, while newer ones (and other
> distributions) use /lib/ld-linux-armhf.so.3 .

Their current release (2015-05-05) does appear to use ld-linux-armhf.so.3

> You should be able to work
> around this problem using the -FL/lib/ld-linux.so.3 compiler option.

Confirmed. Is that a setting which should have been created in fpc.cfg 
during installation (that bit failed, so I'm giving somebody a chance to 
tell me I should have checked things more carefully when I did it 
manually :-)

> See also
> http://stackoverflow.com/questions/20717838/gcc-arm-executable-no-such-file-orr-directory-wrong-dynamic-lib
> and the first answer to that question.

Noted, but Google overlooked that one earlier although I was being 
fairly FPC-specific with the search.

Almost there I think, but using a command like

-FL/lib/ld-linux.so.3' all

I get

        Linking chm/bin/arm-linux/chmcmd
The installer encountered the following error:
External command "/usr/local/src/fpc/fixes_3_0/compiler/ppcarm -Tlinux 
-FEchm/bin/arm-linux -FUchm/units/arm-linux/ 
-Fu/usr/local/src/fpc/fixes_3_0/packages/iconvenc/units/arm-linux/ -Ur 
-Xs -O2 -n -Fu/usr/local/src/fpc/fixes_3_0/rtl/units/arm-linux -V3.0.1 
-O- -gl -Xs- -vt -FL/lib/ld-linux.so.3 -darm -dRELEASE -XX -CX -viq 
chm/src/chmcmd.lpr" failed with exit code 256. Console output:
Target OS: Linux for ARMHF
Compiling chm/src/chmcmd.lpr
Assembling chmcmd
make[2]: *** [smart] Error 1
make[1]: *** [packages_smart] Error 2
make: *** [build-stamp.arm-linux] Error 2
Linking chm/bin/arm-linux/chmcmd
/usr/bin/ld: warning: chm/bin/arm-linux/link.res contains output 
sections; did you forget -T?
/usr/local/src/fpc/fixes_3_0/rtl/units/arm-linux/cprt0.o: In function 
(.text+0x88): undefined reference to `_fini'
/usr/local/src/fpc/fixes_3_0/rtl/units/arm-linux/cprt0.o: In function 
(.text+0x90): undefined reference to `_init'
chmcmd.lpr(238,46) Error: Error while linking
chmcmd.lpr(238,46) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted

make[2]: Leaving directory `/usr/local/src/fpc/fixes_3_0/packages'

I see discussion in the past suggesting that this was some residual 
eabihf issue, but nothing conclusive. Adding an explicit -dFPC_ARMHF 
doesn't help.

If this doesn't have a blindingly obvious solution I'll redo with a 
newer Raspbian as soon as a colleague finds a spare SDCard.

Alternatively, what's the quick-and-dirty way to exclude a single 
package under the new build regime?

Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

More information about the fpc-pascal mailing list