Difference between revisions of "fix XSTools"

From OpenKore Wiki
Jump to navigation Jump to search
(Added page to walk through fixing an undefined symbol error in XSTools.so)
 
m (Whoops, removed code tags that do nothing but misformat the example of the problem this page sets out to solve...)
Line 5: Line 5:
  
 
Example message:
 
Example message:
 +
~/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]
 
~/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 ==
 
== The Fix ==

Revision as of 01:20, 3 June 2012

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:

~/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


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.