Closed Bug 228899 Opened 20 years ago Closed 20 years ago
ATK bridge does not initialize for AIX
1.27 KB, patch
|Details | Diff | Splinter Review|
1.31 KB, text/plain
642 bytes, patch
|Details | Diff | Splinter Review|
User-Agent: Mozilla/5.0 (X11; U; AIX 00FFFFFF4C00; en-US; rv:1.4.1) Gecko/20031106 Build Identifier: Mozilla/5.0 (X11; U; AIX 000675724C00; en-US; rv:1.6b) Gecko/20031216 The ATK bridge does not get initialized for AIX. This is due to the libatk-bridge library not being found. Reproducible: Always Steps to Reproduce: 1. Start Mozilla with accessibilty 2. ATK bridge does not initialize 3. Actual Results: ATK bridge library is not loaded. Expected Results: ATK bridge library should load.
To explain the NSPR change, here is the documentation for RTLD_MEMBER from the dlopen documenation (http://publib16.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/basetrf1/dlopen.htm): "RTLD_MEMBER The dlopen subroutine can be used to load a module that is a member of an archive. The L_LOADMEMBER flag is used when the load subroutine is called. The module name FilePath names the archive and archive member according to the rules outlined in the load subroutine." Recent libtool releases for AIX have begun putting shared libraries into archive files. The Gnome 2.2 (and subsequent Gnome releases) use these recent libtool versions, so the ATK library cannot be loaded the same as on other platforms.
wtc: Can you please look at the NSPR change in this patch?
Comment on attachment 137673 [details] [diff] [review] changes necessary for mozilla to load atk bridge on AIX Philip, The NSPR change means we will always pass the RTLD_MEMBER flag to dlopen on AIX. If you can verify (by citing the appropriate man page or checking with the right people in the AIX team) that the RTLD_MEMBER is ignored when the 'name' specifies a regular shared library (i.e., doesn't contain parentheses), then this change is good. Otherwise, we should only add the RTLD_MEMBER flag when 'name' contains parentheses.
Comment on attachment 137673 [details] [diff] [review] changes necessary for mozilla to load atk bridge on AIX r=kyle for the atk changes. Please address wtc's concern about the nspr change before you go further.
Attachment #137673 - Flags: review?(kyle.yuan) → review+
Here is the information from the manpage for load subroutine and how it uses that flag: L_LOADMEMBER Indicates that the ModuleName parameter may specify an archive member. The ModuleName argument is searched for parentheses, and if found the parameter is treated as a filename/member name pair. If this flag is present and the ModuleName parameter does not contain parenthesis the entire ModuleName parameter is treated as a filename specification. Under either condition the filename is expected to be found within the library path or the current directory. The entire manpage can be found at http://publib16.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/basetrf1/load.htm#a1289a2c It looks like we should be okay. If there are still concerns, please let us know and we can add the extra code to look for the parentheses. Thanks.
That's good. Is RTLD_MEMBER available in AIX 4.3? Could you run the following NSPR tests on your AIX system and attach the test outputs to this bug? % cvs co -A mozilla/nsprpub Apply your NSPR patch. % cd mozilla/nsprpub % ./configure % gmake % cd pr/tests % gmake % ./dlltest -d % ./ipv6 -V www.ibm.com % ./libfilename -d % ./version -d
Here is a log of the test results with the NSPR change applied.
RTLD_MEMBER is supported on AIX 4.3 as well. IBM has removed the AIX 4.3 documentation from the public website as it is now out of service, but I did find the documentation installed on another public website: http://nscp.upenn.edu/aix4.3html/libs/basetrf1/dlopen.htm We had been building and testing with this change on AIX 4.3 previously, and noticed no problems.
Comment on attachment 137673 [details] [diff] [review] changes necessary for mozilla to load atk bridge on AIX Michael, Philip, thank you very much for looking up the documentation and running the NSPR tests. r=wtc on the NSPR change in this patch.
Checked in non-NSPR fix. Checking in nsAppRootAccessible.cpp; /cvsroot/mozilla/accessible/src/atk/nsAppRootAccessible.cpp,v <-- nsAppRootAccessible.cpp new revision: 1.8; previous revision: 1.7 done
Assignee: aaronlev5 → pkw
I've checked in the NSPR change on the NSPR trunk (NSPR 4.5.1) and NSPRPUB_PRE_4_2_CLIENT_BRANCH (Mozilla 1.7a). The change I checked in is different from the NSPR change in attachment 137673 [details] [diff] [review]. I initialize 'dl_flags' to RTLD_MEMBER rather than OR'ing RTLD_MEMBER in later. Michael, Philip, please test my change (already checked in).
Marking as fixed. Will test NSPR changes in tomorrow's build.
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
I have tested the daily build (1/21) and the library now loads properly.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.