The XSDL issue was just a limitation of emulator itself: permission problems.
The Pelya's project is a work in progress, and without an workable Terminal in XFCE environment the permission settings cannot be adjusted, and any program that needs to write on configurations files will fail...
Using a testable chrooted environment I could debug the problem: if the XSDL was created a folder writable to any program, the PeaZip would run nicelly; since that's not the case, the program will fail. (pea and pealauncher since don't need a config file, will run).
The real solution is when Pelya add an workable deb package installer to fix any permission issues, without them, PeaZip will not run...
But with a Rapsberry Pi, just install Lazarus, compile and run without problems.
The source code changes are basically:
rmd160.pas, line 132:
....
implementation
{$ifndef PurePascal}
{$ifdef FPC}
{$asmmode intel}
{$endif}
{$endif}
....
tsc.pas, line 162:
....
{$ifdef BIT64}
....
{$else}
{$ifdef PurePascal}
{---------------------------------------------------------------------------}
function _CheckCPUID: boolean;
{-CPUID assumed to be supported for BIT64}
begin
_CheckCPUID := false;
end;
{---------------------------------------------------------------------------}
function _CheckRDTSC: boolean;
{-RDTSC assumed to be supported for BIT64}
begin
_CheckRDTSC := false;
end;
{---------------------------------------------------------------------------}
procedure _RDTSC(var Ctr: TCtrRec);
{-Read Time Stamp Counter}
begin
int64(Ctr) := 0;
end;
{$else}
{---------------------------------------------------------------------------}
function _CheckCPUID: boolean; assembler;
{-check if CPUID supported}
asm
pushfd
pushfd
pop eax
mov ecx,eax
xor eax,$200000
push eax
popfd
pushfd
pop eax
popfd
xor eax,ecx
setnz al
end;
{---------------------------------------------------------------------------}
function _CheckRDTSC: boolean; assembler;
{-check if RDTSC supported, check CPUID first!!}
asm
push ebx
mov eax,1
db $0f,$a2 {cpuid}
test dx,$10 {test RDTSC flag in Features}
setnz al
pop ebx
end;
{---------------------------------------------------------------------------}
procedure _RDTSC(var Ctr: TCtrRec);
{-Read Time Stamp Counter}
begin
asm
push ebx
xor eax, eax
xor ebx, ebx
xor ecx, ecx
xor edx, edx
db $0f,$a2 {cpuid}
db $0f,$31 {rdtsc}
mov ecx,[Ctr]
mov [ecx],eax
mov [ecx+4],edx
xor eax, eax
db $0f,$a2 {cpuid}
pop ebx
end;
end;
{$endif}
{$endif}
Then define -dPurePascal in Options, and -g mode on linker, and PeaZip should now build and run on any Linux ARM machines (almost, since XSDL emulator for Android is not 100% compatible
)
For p7zip in ARM, there's already deb packages avaliable in Debian repository:
http://packages.debian.org/sid/p7zipBut for FreeArc I don't find any packaged.
Others formats need to be compiled from source code.
If you want a deb or tar package, it will take a bit. (I want to compile the FreeArc and UPX before try to build a package)