fix XSTools

From OpenKore Wiki
Revision as of 01:17, 3 June 2012 by ChrstphrR (talk | contribs) (Added page to walk through fixing an undefined symbol error in XSTools.so)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Symptoms

Typically, when perl, or system libraries that Openkore depends are are upgraded, or changed to another version by a user or administrator, the XSTools library can break. This sort of problem will only occur on unix-based Openkore installations (Unix/BSD/Linux/OSX).

Example message:

[code] ~/path/to/openkore$ perl ./openkore.pl /usr/bin/perl: symbol lookup error: /path/to/openkore/src/auto/XSTools.so: undefined symbol Perl_Gther_key_ptr [/code]

The Fix

To fix this issue, the XSTools library needs to be recompiled.

Just to be safe, rename the actual library and the "XSTools.so" symbolic link:

$ cd /path/to/openkore
/path/to/openkore$ cd src/auto/XSTools

Check that the files "XSTools.so" and libXSTools.so that it links to are present in the directory.

/path/to/openkore/src/auto/XSTools$ ls -la
...
lrwxrwxrwx  1 user user     13 Feb  2 20:44 XSTools.so -> libXSTools.so
-rwxr-xr-x  1 user user 379777 Feb  2 20:44 libXSTools.so
...

Rename both the symbolic link, and the actual library file. Yes, this might not be necessary, but let's be cautious and allow a way to undo this fix if it doesn't fix the problem you're having.

/path/to/openkore/src/auto/XSTools$ mv XSTools.so XSTools.so.bak
/path/to/openkore/src/auto/XSTools$ mv libXSTools.so libXSTools.so.bak

There! Now that the files are 'missing', the next time you invoke openkore.pl, the missing library will be recompiled and linked against the your updated libraries.

/path/to/openkore/src/auto/XSTools$ cd ../../..
/path/to/openkore$ perl ./openkore.pl

After this point, Openkore recompiles the missing libraries that you renamed, and should load as normal after that.