Closed Bug 609671 Opened 14 years ago Closed 14 years ago

custom Android linker prevents system libraries from being dlopen'd

Categories

(Core Graveyard :: Widget: Android, defect)

All
Android
defect
Not set
normal

Tracking

(fennec2.0b3+)

RESOLVED FIXED
Tracking Status
fennec 2.0b3+ ---

People

(Reporter: vlad, Assigned: mwu)

References

Details

Attachments

(1 file)

When we're using the custom linker (with extractLibs = 0, as in normal opt/nightly builds), we can't dlopen system libraries successfully.  They're often prelinked, and we end up with an error such as:

E/linker  (24662): mozilla-central/other-licenses/android/linker.c:842| ERROR: OOPS: 24662      prelinked library 'libEGL.so' mapped at 0x4c902000, not at 0xabe00000

this is a showstopper for getting GL accel going, since we need to be able to dlopen libEGL.so and libGLESv2.so.

A simple suggested fix might be to add a is_our_soinfo() function that looks through our so list, and then for non-local dlopens, pass to the system dlopen.  The for all the other functions, if is_our_soinfo() returns false, pass to the system functions (for dlsym etc).
Should be easy to fix.
Assignee: nobody → mwu
tracking-fennec: --- → ?
Attached patch FixSplinter Review
Try this
Attachment #488277 - Flags: review?(tglek)
Comment on attachment 488277 [details] [diff] [review]
Fix

Looks ok. I'm not sure if this adds any significant overhead to loading our own libraries.
Attachment #488277 - Flags: review?(tglek) → review+
tracking-fennec: ? → 2.0b3+
Is this ready to land?
Yes
http://hg.mozilla.org/mozilla-central/rev/08c800800f8d
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Depends on: 686282
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: