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)

mainlog.html (25.1 KB ) - added by Kini 3 years ago.
system_info.txt (7.5 KB ) - added by Kini 3 years ago.
userreport_hwdetect.txt (16.2 KB ) - added by Kini 3 years ago.
ldd.output (5.2 KB ) - added by Kini 3 years ago.

Download all attachments as: .zip

Change History (15)

comment:1 by Kini, 3 years ago

Milestone: Backlog

Impossible to start 0AD

comment:2 by JCWasmx86, 3 years ago

Do you have LD_LIBRARY_PATH set?

Try running:

unset LD_LIBRARY_PATH

and then

0ad

comment:3 by Kini, 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:4 by Freagarach, 3 years ago

Milestone: Alpha 26

(No open tickets without milestone.)

comment:5 by s0600204, 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 Kini, 3 years ago

Attachment: mainlog.html added

by Kini, 3 years ago

Attachment: system_info.txt added

by Kini, 3 years ago

Attachment: userreport_hwdetect.txt added

by Kini, 3 years ago

Attachment: ldd.output added

comment:6 by Kini, 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 s0600204, 3 years ago

Component: Core engineBuild & 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:

  1. 0AD is not available from the main Tumbleweed repository, but instead the Tumbleweed Games repository
  2. 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 Kini, 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 fsincos, 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 Freagarach, 2 years ago

Milestone: Alpha 26Alpha 27

comment:11 by Stan, 16 months ago

Resolution: fixed
Status: newclosed

Should be fixed since we upgraded to 91.13.1

Note: See TracTickets for help on using tickets.