[fpc-devel] ncurses example on arm linux uclibc

Jonas Maebe jonas.maebe at elis.ugent.be
Fri Oct 23 16:23:44 CEST 2009


On 23 Oct 2009, at 15:55, Nataraj S Narayan wrote:

> While trying to compile 'firework.pp' under packages/ncurse, for
> arm-linux-uclibcgnueabi-

uclibc support has not been maintained for a long time, so if it works  
you're lucky.

> Since my target SBC dont have libncursesw.so i did a symlink to
> libncurses.so.5.6.

Is its functionality also in that library?

> Target file system is uclibc based. ppcrossarm is compiled with
> arm-linux-uclibcgnueabi-
>
> I am  able to compile on host  & execute on target a simple  
> Helloworld.pas.
>
> Using :-
> /software/fpc-uclibc/lib/fpc/2.5.1/ppcrossarm  -n -MObjFPC -TLinux
> -Parmv5 -gl -Xd -Xs -l -darm  -XParm-linux-uclibcgnueabi- -CfSOFT
> -CaEABI -darm -gl -O- -CpARMV5 examples/firework.pp -uUSE_LOCALIZE
> firework.pp  -Fu/software/fpc-uclibc/lib/fpc/2.5.1/units/arm-linux/*
> -Fl/usr/br-git-rf/usr/lib -FL/usr/br-git-rf/lib/ld-uClibc.so.0

You should use -XR/usr/br-git-rf (note the uppercase R!) instead of  
the -Fl. That will set the "root" directory relative to which all  
libraries/object files are searched.

> I get the following errors when compiling :-
>
> Free Pascal Compiler version 2.5.1 [2009/10/23] for arm
> Copyright (c) 1993-2009 by Florian Klaempfl
> /usr/bin/arm-linux-uclibcgnueabi-ld: warning: libc.so.0, needed by
> /usr/br-git-rf/usr/lib//libncursesw.so, not found (try using -rpath or
> -rpath-link)

That may be solved by the -XR

> /software/fpc-uclibc/lib/fpc/2.5.1/units/arm-linux/rtl/cprt0.o: In
> function `_start':
> (.text+0x4c): undefined reference to `__libc_start_main'

That's because of the previous error.

> /usr/br-git-rf/usr/lib//libc.a(sigrestorer.os):(.ARM.exidx+0x0):
> undefined reference to `__aeabi_unwind_cpp_pr1'
> /usr/br-git-rf/usr/lib//libc.a(fread_unlocked.os): In function  
> `fread_unlocked':
> fread_unlocked.c:(.text+0x4c): undefined reference to `__aeabi_uidiv'
> fread_unlocked.c:(.text+0x130): undefined reference to `__aeabi_uidiv'

No idea whether these are part of libc or libgcc. You may also have to  
add {$linklib gcc} to your program and -Fl/path/to/libgcc to your  
command line.


Jonas



More information about the fpc-devel mailing list