[fpc-pascal] Working Free Pascal android JNI example
Torsten Bonde Christiansen
tc at epidata.dk
Fri Nov 25 12:20:34 CET 2011
Hi Ludo.
I try to use you androidprt0.so but I keep getting the same error.
I do not have much experience in the lower parts of how the
linking/assembling is done,
so I hope you can help me out here.
I get the following error:
$ ppcrossarm -b -B -XX -Xc -XD -Tlinux -darm -k"-landroidprt0" pascaljni.lpr
Free Pascal Compiler version 2.4.4 [2011/11/18] for arm
Copyright (c) 1993-2010 by Florian Klaempfl
Target OS: Linux for ARMEL
Compiling pascaljni.lpr
Assembling pascaljni
Linking libpascaljni.so
/usr/local/bin/arm-linux-ld: warning: link.res contains output sections;
did you forget -T?
/usr/lib/fpc/2.4.4/units/arm-linux/rtl/dllprt0.o: In function `_haltproc':
androidprt0.as:(.text+0x0): multiple definition of `_haltproc'
./libandroidprt0.so:androidprt0.as:(.text+0x0): first defined here
/usr/lib/fpc/2.4.4/units/arm-linux/rtl/dllprt0.o: In function
`_haltproc_eabi':
androidprt0.as:(.text+0x8): multiple definition of `_haltproc_eabi'
./libandroidprt0.so:androidprt0.as:(.text+0x8): first defined here
/usr/lib/fpc/2.4.4/units/arm-linux/rtl/dllprt0.o:(.data+0x0): multiple
definition of `operatingsystem_parameter_envp'
./libandroidprt0.so:(.data+0x0): first defined here
/usr/lib/fpc/2.4.4/units/arm-linux/rtl/dllprt0.o:(.data+0x4): multiple
definition of `operatingsystem_parameter_argc'
./libandroidprt0.so:(.data+0x4): first defined here
/usr/lib/fpc/2.4.4/units/arm-linux/rtl/dllprt0.o:(.data+0x8): multiple
definition of `operatingsystem_parameter_argv'
./libandroidprt0.so:(.data+0x8): first defined here
pascaljni.lpr(19) Error: Error while linking
pascaljni.lpr(19) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
As you can se i'm using FPC 2.4.4 (releases2_4_4 of the subversion
repository) and there is clearly a conflict between
two competing unit. But how do I resolve this?
Regards,
Torsten Bonde Christiansen.
On 2011-08-11 11:54, Ludo Brands wrote:
>> My main doubt here is if androidprt0.as is really required,
>> which would mean that I can only produce android libraries if
>> I make changes to the compiler.
>>
>
> In NativeTest\jni is a makeandroid.bat that assembles androidprt0 and calls
> ppcrossarm with -k"-landroidprt0". No need to change the compiler for that,
> unless there are conflicts with existing arm initialisation.
>
>
> Ludo
>
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
More information about the fpc-pascal
mailing list