Closed Bug 213234 Opened 17 years ago Closed 17 years ago

RealPlayer plugin doesn't register though rpnp.so is in plugins directory

Categories

(Plugins Graveyard :: RealPlayer (Real), defect)

x86
Linux
defect
Not set

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: lweaver, Assigned: peterlubczynski-bugs)

Details

Attachments

(1 obsolete file)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030701
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030701

I installed the current version of Realplayer 8 (rp8_linux20_libc6_i386_cs2_rpm)
and copied rpnp.so into /usr/lib/mozilla/plugins, but "about plugins" doesn't show
the plugin when browser is stopped and restarted.

Reproducible: Always

Steps to Reproduce:
1.Install RealPlayer 8
2.copy /usr/lib/RealPlayer8/rpnp.so to /usr/lib/mozilla/plugins
3.Restart browser and check "About Plugins" in Help menu

Actual Results:  
All other plugins were displayed, but not rpnp.so

Expected Results:  
rpnp.so should have been shown.
remove ~/.mozilla/pluginreg.dat and restart mozilla. 
After much debugging, this appear to be a problem with the build the reporter
is using from his current distribution provider. If the moz build is compiled
with gcc 3.x, the __pure_virtual function no longer exists for rpnp.so to resolve.
The error message in the strace shows:

 write(2, "LoadPlugin: failed to initialize shared library
/usr/lib/mozilla/plugins/rpnp.so [/usr/lib/mozilla/plugins/rpnp.so: undefined
symbol: __pure_virtual]\n", 150) = 150

Use a gcc-2.95.x compiled mozilla.
A obvious hack (i've posted to other mozilla bugs) to get around this problem is
so:

Find an libgcc.a from a gcc-2.95.x compiler, and then

 % ld -shared -o rpnphack.so \
    /full/path/to/RealPlayer/rpnp.so \
    /some/path/to/an/old/libgcc.a

and then use rpnphack.so in your plugin directory.

I do not condone this method, but it doeswork.
Apparently reporter mentioned to me that this was an official build from the
mozilla site and no instructions or warnings to the contrary in the README.
Someone needs to add this to the README.
This is a problem across the board for plugins compiled with gcc 2.9x.  The
release notes talk about it for Java and Flash....

Status: UNCONFIRMED → RESOLVED
Closed: 17 years ago
Resolution: --- → INVALID
Due to limitations of JVM class format, the patch clearly adds restrictions to
complexity of script code that optimizer can handle since now all the constants
and strings goes into single file. But such additional restrictions are not
that bad since the patch does not affect the major restriction of restricting
byte code size for methods to 64K.

The test case generates a JS source of the form

function f1(n) { return n; }
function f2(n) { return f1(n); }
function f3(n) { return f2(n); }
...
function f<N>(n) { return f<N-1>(n); }

f<N>(<some-value>);

and then compile/execute it via "var code = new Script(); code()" since eval
can not be used as Rhino uses interpreter mode for it.

It turned out that before patch the maximum value for N with optimization level
0 was 2847 before JVM refused to load the file and after it actually increased
to 2853. The limit came from the code for script body that has to instantiate N
different functions and the patch made that slightly more compact that explains
the reason for the limit increase. Of cause a mixture of top-level functions
and nested ones would show the patch limitations since without the patch nested
functions will be initialized in a separated classes, but still a limit of 2500
functions per script seems reasonable.
Comment on attachment 130527 [details]
Test case to check for class file limitations.

Please ignore the previous attachment, it was for another bug!.
Attachment #130527 - Attachment is obsolete: true
(In reply to comment #3)

Sounds really good, and apparently works well enough that it's all I can find on
Google.com. :) But on my system, this hack causes Firefox 0.8 to crash when I
open a page containing a Realplayer clip.

Any ideas what the problem is? The old version of GCC I'm using is 2.95.3.
 Works perfectly for me. OS mandrake_10. Mozilla Firefox-0.8. RealPlayer8 I also
downloaded bugfix pack from real:
http://realforum.real.com/cgi-bin/unixplayer/showthreaded.pl?Cat=&Board=announcements&Number=3128&page=0&view=collapsed&sb=5
Copied rpnp.so to firefox plugins. everything is working.
Component: Plug-ins → RealPlayer (Real)
Product: Core → Plugins
QA Contact: bmartin → real-player
Version: Trunk → unspecified
Product: Plugins → Plugins Graveyard
You need to log in before you can comment on or make changes to this bug.