[fpc-pascal] fpc code for Java class and Android.

Jon Foster jon-lists at jfpossibilities.com
Thu Apr 20 19:07:40 CEST 2017

On 04/20/2017 05:17 AM, Paul Breneman wrote:
> On 04/19/2017 10:49 PM, Paul Breneman wrote:
>> I'm using a Nexus 7 tablet with Android 6.0.1.  GNURoot provides a
>> chroot with Debian?  It has been *three* years since I did this before
>> and things worked then so I don't know what might have changed so ppcarm
>> doesn't even run now.
>> Android?
>> GNURoot?
>> ppcarm?
>> I'm trying the *most simple* thing, so no x11 or VNC needed.
> Actually, the FPC 2.6.0 *ppcarm* worked three years ago but not now. What 
> can cause it to have an *Illegal instruction* error?
> There is a *simple* procedure near the bottom of this page:
>   http://turbocontrol.com/gnuroot.htm
So what changed in those three years?

1. Pretty sure Android 6 wasn't out three years ago? Yeah, I see it was 
released 10/2015.
2. New device?
3. Did you use the same ppcarm you downloaded three years ago or did you 
download it again?
4. Do you have your older device you could try your ppcarm on?

You will have to address the PIC/PIE issue but you could be looking at the 
compiler using machine language instructions that aren't supported by your 
hardware (as previously described). If my guess about the tablet being 
newer is correct, I doubt it. Still it looks like my ppcarm supports over a 
dozen different instruction sets. And their is always the chance some other 
form of crash is causing that message.

Android 6 *definitely* requires PIC binaries, that *definitely* changed in 
the past three years. A three year old version of FPC would not have been 
compiled that way. FYI: a PIE binary won't load on a non-PIE enabled OS. I 
had been reading about ways Google devs were trying to work around that. Of 
course Google wouldn't want that to happen... so I imagine their efforts 
were squashed.

----- On 11/16/2015 Yuri Sidorov wrote: ------
Subject: Re: [fpc-devel] PIE compatible output?


The 3.0 release for android is not able to produce correct PIC executables 
and libraries.
You need build an svn trunk version of FPC to produce PIC/PIE binaries for 

If you look in the archives of this mail list you should be able to view 
our exchange.

So my money is on you needing to build your own version of ppcarm with PIC 
enabled. And you may need to fiddle with the instruction set used. You can 
either do this by cross compiling on another FPC supported platform, which 
typically means building your own "binutils". Or, depending on what you 
have available, the needed prebuilt binaries to cross compile may already 
be available through the usual FPC channels (I think I saw windoze zips).

Or you can leverage a *real* Linux based ARM platform such as Rpi or CHIP.  
That was actually one of my motivating factors to get involved with CHIP. A 
native ARM platform to build binaries, specifically units, for Android for 
only $9 USD! I still want to cluster a bunch of these things in a stock PC 
tower case to use as compiling nodes. Too many cool projects and so little 
time! :-(

Jon Foster
JF Possibilities, Inc.
jon at jfpossibilities.com

More information about the fpc-pascal mailing list