Closed Bug 228899 Opened 20 years ago Closed 20 years ago

ATK bridge does not initialize for AIX

Categories

(Core :: Disability Access APIs, defect)

Other
AIX
defect
Not set
normal

Tracking

()

VERIFIED FIXED

People

(Reporter: mlew, Assigned: pkwarren)

Details

Attachments

(3 files)

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.
Status: UNCONFIRMED → NEW
Ever confirmed: true
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?
Attachment #137673 - Flags: superreview?(Henry.Jia)
Attachment #137673 - Flags: review?(kyle.yuan)
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+
Attachment #137673 - Flags: superreview?(Henry.Jia) → superreview+
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
Attached file NSPR Test Results
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
Status: NEW → ASSIGNED
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.