ADOM-ARMEL is dynamically linked
issueid=1271 10-06-2012 01:22 PM
Junior Member
Number of reported issues by AtomicDryad: 1
ADOM-ARMEL is dynamically linked
Rebuilding the linux (Raspbian) port with -static will allow it to run on a metric ton of devices

Just what it says on the tin, see http://www.adom.de/forums/showthread...28no-dosbox%29. I basically ripped
ld-2.13.so libc.so.6 libdl.so.2 libncurses.so.5 libtinfo.so.5
from Raspbian and run with
/path/to/libs/ld-2.13.so --library-path /path/to/libs /path/to/adom
on a smartphone.

Recompiling with -static will result in a larger binary, however there's much much wider playbase for all the other Linux ARM devices out there (Especially Android).
Also, this will future-proof it from library incompatibilities in Raspbian.

A native android port would require code changes, I think; Android's libc is a stripped down minimalist mess, and has obscure bugs within. Alternatively, compiling static with uclibc (via buildroot) would produce a portable binary that's not quite so large of a pig.

Caveat; a stripped down terminfo + wrapper script might still be required (on android at least). By default, non-rooted stock devices don't include any sort of terminfo database, and terminal/connectbot shells don't have the TERM or HOME environment variables set.
Issue Details
Issue Number 1271
Issue Type Feature
Project ADOM (Ancient Domains Of Mystery)
Category Linux
Status Implemented
Priority 5 - Medium
Suggested Version ADOM 1.2.0 pre 4
Implemented Version ADOM 1.2.0 pre 17
Milestone (none)
Votes for this feature 2
Votes against this feature 0
Assigned Users jt
Tags (none)




10-05-2013 01:06 PM
jt jt is offline
Administrator
The next binary for ARM will be statically linked.

I get the following warning if I enable the "network mode" in ADOM:

warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

This will probably cause problems when switching to another OS, so we might need to find another solution.

+ Reply