Opened 3 years ago
Closed 16 months ago
#6182 closed defect (fixed)
Symbol _ZN2JS16PrepareZoneForGCEPNS_4ZoneE not found
Reported by: | Kini | Owned by: | |
---|---|---|---|
Priority: | Must Have | Milestone: | Alpha 27 |
Component: | Build & Packages | Keywords: | |
Cc: | Kini | Patch: |
Description
Starting 0AD (Pyrogenesis 0.0.24) from console (KDE shows nothing) shows:
/usr/bin/pyrogenesis: symbol lookup error: /usr/bin/pyrogenesis: undefined symbol: _ZN2JS16PrepareZoneForGCEPNS_4ZoneE, version mozjs_78
System Info: OpenSuse Tumbleweed
konrad@localhost:~> uname -a Linux localhost.localdomain 5.12.2-1-default #1 SMP Fri May 7 18:05:46 UTC 2021 (6fcec30) x86_64 x86_64 x86_64 GNU/Linux
Attachments (4)
Change History (15)
comment:1 by , 3 years ago
Milestone: | Backlog |
---|
comment:2 by , 3 years ago
Do you have LD_LIBRARY_PATH set?
Try running:
unset LD_LIBRARY_PATH
and then
0ad
comment:3 by , 3 years ago
Unset LD_LIBRARY_PATH changed nothing.
gdb shows following threads:
(gdb) run
Starting program: /usr/bin/pyrogenesis
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff4431640 (LWP 3580)]
[Thread 0x7ffff4431640 (LWP 3580) exited]
[New Thread 0x7ffff4431640 (LWP 3581)]
TIMER| InitVfs: 1.20358 ms
Writing the mainlog at /home/konrad/.config/0ad/logs/mainlog.html
TIMER| CONFIG_Init: 1.47708 ms
[New Thread 0x7ffff1dd9640 (LWP 3582)]
[New Thread 0x7ffff1bda640 (LWP 3583)]
[New Thread 0x7ffff19db640 (LWP 3584)]
[New Thread 0x7ffff17dc640 (LWP 3585)]
/usr/bin/pyrogenesis: symbol lookup error: /usr/bin/pyrogenesis: undefined symbol: _ZN2JS16PrepareZoneForGCEPNS_4ZoneE, version mozjs_78
[Thread 0x7ffff19db640 (LWP 3584) exited]
[Thread 0x7ffff1bda640 (LWP 3583) exited]
[Thread 0x7ffff1dd9640 (LWP 3582) exited]
[Thread 0x7ffff4431640 (LWP 3581) exited]
[Thread 0x7ffff4835e00 (LWP 3548) exited] [Inferior 1 (process 3548) exited with code 0177]
(gdb)
comment:5 by , 3 years ago
@Kini, are you still suffering from this?
If so, could you:
- Provide us with the output of
ldd /usr/bin/pyrogenesis
. - Confirm for us the version of
mozjs78
installed on your system.
by , 3 years ago
Attachment: | mainlog.html added |
---|
by , 3 years ago
Attachment: | system_info.txt added |
---|
by , 3 years ago
Attachment: | userreport_hwdetect.txt added |
---|
by , 3 years ago
Attachment: | ldd.output added |
---|
comment:6 by , 3 years ago
Error message is still the same.
Please see attached files.
zypper info mozjs78
Repository-Daten werden geladen...
Installierte Pakete werden gelesen...
Informationen zu Paket mozjs78:
Repository : openSUSE-Tumbleweed-Oss
Name : mozjs78
Version : 78.11.0-2.1
Arch : x86_64
Anbieter : openSUSE
Installierte Größe : 11,0 MiB
Installiert : Ja
Status : aktuell
Quellpaket : mozjs78-78.11.0-2.1.src
Zusammenfassung : SpiderMonkey JavaScript library
Beschreibung :
SpiderMonkey is the code-name for Mozilla Firefox's C++ implementation of JavaScript . It is intended to be embedded in other applications that provide host environments for JavaScript .
comment:7 by , 3 years ago
Component: | Core engine → Build & Packages |
---|
Thanks for those.
Your problem is that your installation of 0AD is trying to use an incompatible version of mozjs78
- you have mozjs78 78.11
, 0AD expects mozjs78 78.6
.
There does exist a report on OpenSUSE's bug tracker about this: https://bugzilla.opensuse.org/show_bug.cgi?id=1187732
In summary:
When building pyrogenesis
(0AD's game engine), there is a choice: use the version of spidermonkey
(aka mozjs
) bundled with the pyrogenesis
source, or use whatever spidermonkey
package is fed into the build process by the build system. The OpenSUSE repo maintainers chose the latter when building your package.
There are two things to note here:
- 0AD is not available from the main Tumbleweed repository, but instead the Tumbleweed Games repository
- The Tumbleweed Games repository has its own, differently versioned,
mozjs78
package:78.6
It is this 78.6
package that your version of pyrogenesis
has been built against, and what 0AD is expecting to find.
In theory, the 78.6
/ 78.11
thing shouldn't be a problem - they're both minor version releases.
In practice: Mozilla (the folks behind spidermonkey
) made breaking API changes in version 78.7
that continue into 78.11
, making it incompatible with software written for 78.6
or earlier.
...
I'm not entirely too sure what to advise here. If there's nothing else on your system that requires mozjs78
, then you could try removing it and installing the package from Tumbleweed Games (the 78.6
version).
If you feel you absolutely need 0AD, then you could bypass OpenSUSE's repositories and acquire an encapsulated installation of 0AD from Snap or Flatpak (Disclaimer: I've never tried these so your mileage may vary).
Alternatively, if you're familiar with building software you could try building 0AD from source yourself.
Otherwise, you're going to have to wait until the OpenSUSE maintainers figure out a way to resolve it. Or until we get round to updating to a newer version of spidermonkey
. Sorry about that.
comment:8 by , 3 years ago
Thank you for your detailed answer!
I understand, that one cannot continuesly rely on API's - a pitty.
Downgrading mozjs78 to 78.6 made it - my preferred relaxation game came up again! :-)))
Will see, if any other application has problems with that - if yes, it will be transferred to another Linux system.
Many thanks to you for your effort and that wonderful game!!!
comment:9 by , 2 years ago
The problem is fixed in Tumbleweed by patching the "offending" uses of PrepareZoneForGC and thus far, I haven't seen any remaining problems with Spidermonkey 78.15.0.
This might also be a good stepping stone for #5986.
comment:10 by , 2 years ago
Milestone: | Alpha 26 → Alpha 27 |
---|
comment:11 by , 16 months ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Should be fixed since we upgraded to 91.13.1
Impossible to start 0AD