Bug 47 : undefined symbol: __dynamic_cast_2 on linux
Last modified: 2005-09-28 08:52



Assigned To:

Attachment Type Created Size Actions
a patch solving the issue patch 2005-07-09 06:51 907 bytes

Description:   Opened: 2005-07-01 06:46
1. Unpacked the processing-0091.tgz file.
2. Start processing: ~/processing-0091 $ ./processing
3. Take a random sketch and run it and the following error message appears:
~/processing-0091/./jikes: symbol lookup error:
/tmp/scht/processing-0091/./jikes: undefined symbol: __dynamic_cast_2

~/processing-0091/./jikes: symbol lookup error:
/tmp/scht/processing-0091/./jikes: undefined symbol: __dynamic_cast_2
Additional Comment #1 From fry 2005-07-01 07:59
originally tested with Processing on SUSE Linux 9.2 AMD64. not sure why
the jikes checker in ./processing isn't catching this.
Additional Comment #2 From 55286 2005-07-01 18:16
I am sorry about the stupid question.
What is the jikes checker in ./processing not catching?
What is it supposed to catch in this case?
Additional Comment #3 From fry 2005-07-02 06:50
no problem..

the ./processing script should be first trying to run jikes, and if an
error code is returned (which is the case if there's an "undefined symbol:
__dynamic_cast_2" error), it should stop and report that to you, telling
you to install a version of jikes that's compatible.

if you're a linux hacker, you might try looking into why it's not
triggering the error so i can fix the script. i.e. does "jikes -version"
not get the dynamic cast error even though there's a problem? or it may
just be me doing bad sh scripting.

the relevant part of the "processing" script reads as follows:

# test to see if jikes is operable. i'm a crappy bash scripter
# so if someone knows a more elegant way to do this, let me know.
jikes -version 1> /dev/null 2> /dev/null
if [ $? == 0 ]
java processing.app.Base
echo It appears that the version of Jikes distributed with Processing
echo cannot properly run on this system.
echo Possible solutions:
echo + If you already have Jikes installed on your system, you may
echo just need to remove the version that is included with Processing.
echo + You probably just need to track down a version of Jikes that will
echo work with your distribution.
echo + You may need to install the rpm/package for compat-libstdc++
echo This is what it takes to get things running on most versions
echo of RedHat Linux or Fedora Core.
echo + If all else fails, or if you just like building stuff yourself,
echo you can download the source for Jikes from SourceForge:
echo http://sourceforge.net/project/showfiles.php?group_id=128803
echo And it just takes a simple ./configure and make, followed by
echo copying src/jikes to the processing-XXXX folder and you should
echo be all set.
echo If you get stuck, ask questions online from the helpful folks via
echo the Processing discussion board: http://processing.org/discourse/
echo Good luck!
Additional Comment #4 From fry 2005-07-02 06:54
weird, not sure where my original response went.. this issue is the second
item under the linux section of "processing won't start / nothing happens
when i click run" in the faq:
Additional Comment #5 From 55286 2005-07-02 08:29
I tryed a couple things
running jikes -version gives the following:
~/processing-0091 $ ./jikes -version
Jikes Compiler - Version 1.22 - 3 October 2004
Copyright (C) IBM Corporation 1997-2003, 2004.
- Licensed Materials - Program Property of IBM - All Rights Reserved.
Originally written by Philippe Charles and David Shields of IBM Research,
Jikes is now maintained and refined by the Jikes Project at:
Please consult this URL for more information and for reporting problems.

Your script decides to runn processsing because:
~/processing-0091 $ ./jikes --version 1> /dev/null 2> /dev/null; echo $?

But calling it with some source code failes:
~/processing-0091 $ ./jikes ./examples/Simulate/Springs/Springs.pde
./jikes: symbol lookup error: ./jikes: undefined symbol: __dynamic_cast_2

Hope that might clarify the situation ...
Additional Comment #6 From fry 2005-07-03 08:13
bummer, seems a bit overkill to try and compile a file each time you run p5 just to test
jikes, so hmm..

maybe building jikes with ./configure --enable-static --disable-shared will make it usable
across multiple distros.

i've got access to three machines and can test it across those for 93, and i guess we'll just
hope for the best..
Additional Comment #7 From darkeye 2005-07-06 09:43
I have the same problem on gentoo...

BTW, why not use the JVM and jikes that's already on the system, and why
provide custom binaries of these?
Additional Comment #8 From fry 2005-07-06 09:48
re: java vm, please open a separate bug for that discussion.
Additional Comment #9 From darkeye 2005-07-09 06:51
a patch solving the issue

this is a patch against the CVS version of processing, making the processing
script use the java and jikes available on the system if any, and falls back to
the supplied tools only if necessary.
Additional Comment #10 From fry 2005-07-09 10:09
same as with building, we need to ensure a particular version of the jvm
and jikes. at the minimum we need to have java 1.4 (a late version in
particular because the earlier ones were buggy), and jikes 1.22.

the reason that the jvm and jikes are included is for ease of use. part of
the whole concept of processing is for it to work out of the box without
having to do a bunch of extra crap with downloading a jvm and whatnot.
Additional Comment #11 From fry 2005-07-28 15:47
for 0093, switching to use the rpm version that's distributed from
sourceforge in the hope that it's compiled correctly for multiple distros.
please holler if it's not fixed.
Additional Comment #12 From fry 2005-08-07 12:18
*** Bug 119 has been marked as a duplicate of this bug. ***
Additional Comment #13 From fry 2005-08-11 09:18
randy fischer has kindly tested and it appears to have solved the problem for his machine
(details of his setup are in bug #119) so we should be all set for 0093.
Additional Comment #14 From fry 2005-08-22 19:23
*** Bug 135 has been marked as a duplicate of this bug. ***
Additional Comment #15 From fry 2005-09-28 08:52
*** Bug 163 has been marked as a duplicate of this bug. ***