View Single Post
Old 08-17-2016, 09:10 PM   #9
hylo
Junior Member
hylo began at the beginning.
 
Posts: 9
Karma: 10
Join Date: Aug 2016
Device: Kindle PW4; Kindle Scribe
Quote:
Originally Posted by zxczxc View Post
Congratulations on getting your keyboard working, that sounded a bit difficult!
Thanks I hope this helps many.

Quote:
Originally Posted by NiLuJe View Post
As @knc1 mentioned, examining the symbol table of your resulting binary should be enough to make sure you're not hitting ABI issues.

I'm personally a fan of readelf for that job, which I find more user-friendly than nm .
Yes, readout from readelf was much more friendly for me, too. Moreover, I figured out later that '-D' option is needed for nm to print out dynamic symbol table when I'm not accessible to this toolchain. So, here is my binary's dynamic symbol table from readelf.

Code:
    Symbol table '.dynsym' contains 31 entries:
    Num:    Value  Size Type    Bind   Vis      Ndx Name
    0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
    1: 00000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_deregisterTMCloneTab
    2: 00000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
    3: 00000000     0 NOTYPE  WEAK   DEFAULT  UND _Jv_RegisterClasses
    4: 00000000     0 NOTYPE  WEAK   DEFAULT  UND _ITM_registerTMCloneTable
    5: 00021ae0     0 NOTYPE  GLOBAL DEFAULT   23 _bss_end__
    6: 00000000     0 FUNC    GLOBAL DEFAULT  UND XGetWindowAttributes
    7: 000116ec     0 FUNC    GLOBAL DEFAULT   13 _fini
    8: 00021ad4     0 NOTYPE  GLOBAL DEFAULT   23 __bss_start__
    9: 000106e4     0 FUNC    GLOBAL DEFAULT   10 _init
    10: 00021ad4     0 NOTYPE  GLOBAL DEFAULT   23 __bss_start
    11: 00000000     0 FUNC    GLOBAL DEFAULT  UND XDisplayKeycodes
12: 00000000     0 FUNC    GLOBAL DEFAULT  UND abort@GLIBC_2.4 (2)
    13: 00021ae0     0 NOTYPE  GLOBAL DEFAULT   23 _end
    14: 00021ae0     0 NOTYPE  GLOBAL DEFAULT   23 __end__
    15: 00000000     0 FUNC    GLOBAL DEFAULT  UND XSelectInput
    16: 00000000     0 FUNC    GLOBAL DEFAULT  UND XFree
17: 00000000     0 FUNC    GLOBAL DEFAULT  UND __libc_start_main@GLIBC_2.4 (2)
    18: 00021ad4     0 NOTYPE  GLOBAL DEFAULT   22 _edata
19: 00000000     0 FUNC    GLOBAL DEFAULT  UND usleep@GLIBC_2.4 (2)
    20: 00000000     0 FUNC    GLOBAL DEFAULT  UND XOpenDisplay
    21: 00000000     0 FUNC    GLOBAL DEFAULT  UND XCheckWindowEvent
    22: 00000000     0 FUNC    GLOBAL DEFAULT  UND XSendEvent
23: 00000000     0 FUNC    GLOBAL DEFAULT  UND puts@GLIBC_2.4 (2)
    24: 00021ae0     0 NOTYPE  GLOBAL DEFAULT   23 __bss_end__
    25: 00000000     0 FUNC    GLOBAL DEFAULT  UND XChangeKeyboardMapping
    26: 00000000     0 FUNC    GLOBAL DEFAULT  UND XFetchName
27: 00000000     0 FUNC    GLOBAL DEFAULT  UND printf@GLIBC_2.4 (2)
    28: 00000000     0 FUNC    GLOBAL DEFAULT  UND XLookupKeysym
    29: 00000000     0 FUNC    GLOBAL DEFAULT  UND XGetInputFocus
30: 00000000     0 FUNC    GLOBAL DEFAULT  UND raise@GLIBC_2.4 (2)
It seems that GLIBC 2.4 is the only library that version checking is needed. And it's much lower than 2.12 or 2.19. So, I carefully assume that at least this binary would be fine with the past firmware versions barring the system conf files I modified.

Thank you!
hylo is offline   Reply With Quote