[Rpcemu] RPCEmu on Solaris

Johann "Myrkraverk" Oskarsson johann at myrkraverk.com
Sat Jan 30 11:11:00 PST 2010


On Sat, Jan 30, 2010 at 2:40 PM, Matthew Howkins
<rpcemu-list at howkins.me.uk> wrote:
>>> I found that HostFS crashed on Solaris due to some previously hidden
>>> bugs which were exposed on Solaris. The fix was trivial though, but
>>> not yet included in the repository.
>>
>> I am hitting that bug, yes.  Can you show me the patch?
>
> The problem I found was that the variable 'HOSTFS_ROOT' in hostfs.c in
> not initialised and therefore undefined. The fix is to initialise it
> to an empty string (="" or similar). Presumably differences in linker
> behaviour meant this bug was not hit
> elsewhere.

Yes, the bug did not manifest when I ran it under the debugger dbx.

>> I copied the files with linux in the names to solaris, and modified
>> the autoconf files accordingly, I stubbed one function in the network
>> file and commented out the #include <linux/if_tun.h>.  I commented out
>> #include <linux/cdrom.h> in the cdrom ioctl file.
>
> Please can you try a recent development snapshot (link just below) as
> you should then not need any autoconf hacking, and it will be closer
> to compiling on OpenSolaris directly.
>
> http://www.home.marutan.net/hg/rpcemu/archive/fe24032a009b.tar.gz

Sure.  I forgot to add, this happens:

gcc -I/opt/myrkraverk/include  -Wall -O2   -o rpcemu rpcemu-superio.o
rpcemu-cdrom-iso.o rpcemu-cmos.o rpcemu-cp15.o rpcemu-fdc.o
rpcemu-fpa.o rpcemu-hostfs.o rpcemu-ide.o rpcemu-iomd.o
rpcemu-keyboard.o rpcemu-mem.o rpcemu-romload.o rpcemu-rpcemu.o
rpcemu-sound.o rpcemu-vidc20.o rpcemu-podules.o rpcemu-podulerom.o
rpcemu-icside.o    rpcemu-arm.o rpcemu-codegen_null.o
rpcemu-rpc-linux.o rpcemu-gui.o -L/opt/myrkraverk/lib
-R/opt/myrkraverk/lib -lalleg
Undefined                       first referenced
 symbol                             in file
cos                                 rpcemu-fpa.o  (symbol belongs to
implicit dependency /lib/libm.so.2)
exp                                 rpcemu-fpa.o  (symbol belongs to
implicit dependency /lib/libm.so.2)
log                                 rpcemu-fpa.o  (symbol belongs to
implicit dependency /lib/libm.so.2)
sin                                 rpcemu-fpa.o  (symbol belongs to
implicit dependency /lib/libm.so.2)
tan                                 rpcemu-fpa.o  (symbol belongs to
implicit dependency /lib/libm.so.2)
acos                                rpcemu-fpa.o  (symbol belongs to
implicit dependency /lib/libm.so.2)
asin                                rpcemu-fpa.o  (symbol belongs to
implicit dependency /lib/libm.so.2)
atan                                rpcemu-fpa.o  (symbol belongs to
implicit dependency /lib/libm.so.2)
sqrt                                rpcemu-fpa.o  (symbol belongs to
implicit dependency /lib/libm.so.2)
log10                               rpcemu-fpa.o  (symbol belongs to
implicit dependency /lib/libm.so.2)
ld: fatal: symbol referencing errors. No output written to rpcemu
collect2: ld returned 1 exit status
gmake[1]: *** [rpcemu] Error 1
gmake[1]: Leaving directory
`/export/home/johann/src/Prg/RPCEmu8/rpcemu-fe24032a009b/src'
gmake: *** [all] Error 2


On Solaris, -lm is needed.  I've usually just added it to the
generated makefile by hand.  Which of course gets overridden if I run
configure again.

>> I am also hitting, apparently randomly so far:
>>
>> RPCemu error: Bad LDRH/STRH opcode D0D2FDD2
>>
>> Is there a way to fix that?  I am managing to run it for a few seconds
>> apart from that.  A hint to what to look at would be nice.
>
> Many bugs remain - however you can improve your chances my increasing
> the RAM allocated to the emulated machine to at least 32MB and by
> changing emulated CPU to StrongARM.

cpu_type = ARM610
mem_size = 16

These lines I presume, from the snapshot above.  mem_size is easy, but
what should the cpu_type be?


Johann



More information about the Rpcemu mailing list