Compile source files with absolute pathnames on AIX

RESOLVED FIXED in 4.6

Status

P3
normal
RESOLVED FIXED
14 years ago
14 years ago

People

(Reporter: julien.pierre, Assigned: wtc)

Tracking

4.5.1
Other
AIX

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment, 1 obsolete attachment)

(Reporter)

Description

14 years ago
This is the counterpart to bug 290120 . We need to compile NSPR with absolute
pathnames in order to debug the binaries with dbx and idebug .
(Reporter)

Updated

14 years ago
Priority: -- → P3
Target Milestone: --- → 4.6
Version: 4.6 → 4.5.1
(Reporter)

Comment 1

14 years ago
Created attachment 180553 [details] [diff] [review]
set NEED_ABSOLUTE_PATH on AIX
(Reporter)

Updated

14 years ago
Attachment #180553 - Flags: review?(wtchang)
(Assignee)

Comment 2

14 years ago
Comment on attachment 180553 [details] [diff] [review]
set NEED_ABSOLUTE_PATH on AIX

We should combine this with the existing code for OS2,
like this:

-ifeq ($(OS_ARCH),OS2)
+ifeq (,$(filter-out AIX OS2,$(OS_ARCH)))
 NEED_ABSOLUTE_PATH = 1
 endif
Attachment #180553 - Flags: review?(wtchang) → review-
(Assignee)

Comment 3

14 years ago
Philip, this is an NSPR makefile change in the way
we compile files on AIX.  The proposal is to pass
full pathnames of the source files to the compiler.
(Reporter)

Comment 4

14 years ago
Yes, the dbx on AIX is different, at the one I have. It won't automatically find
source files unless compiled with full pathnames.

Comment 5

14 years ago
(In reply to comment #4)
> Yes, the dbx on AIX is different, at the one I have. It won't automatically find
> source files unless compiled with full pathnames.

This is true, but you can use the "use" command in dbx to specify a search path
for source files. See:
http://publib.boulder.ibm.com/infocenter/pseries/index.jsp?topic=/com.ibm.aix.doc/cmds/aixcmds2/dbx.htm
for more information.
(Reporter)

Comment 6

14 years ago
Wan-Teh,

Your proposed change in comment #2 is fine. Please check it in to the NSPR tip
for 4.6. Thanks !
(Assignee)

Comment 7

14 years ago
One problem I have with using full pathnames of
source files is that the users of our debug libraries
must reproduce a source tree with the exact same
pathname to get the source code; otherwise the debugger
can't find the source files.

The reason is that if the source file is certdb.c,
the debugger will ask you where to find certdb.c, but
if the source file is
/home/wtchang/nss-tip/mozilla/security/nss/lib/certdb/certdb.c,
the debugger won't ask you where to find the file because it's
a full pathname.  If the users of our debug libraries cannot
create /home/wtchang on their machines, the debugger won't
be able to find the source files.  I have run into this problem
on Windows.

Comment 8

14 years ago
(In reply to comment #7)
> The reason is that if the source file is certdb.c,
> the debugger will ask you where to find certdb.c, but
> if the source file is
> /home/wtchang/nss-tip/mozilla/security/nss/lib/certdb/certdb.c,
> the debugger won't ask you where to find the file because it's
> a full pathname.  If the users of our debug libraries cannot
> create /home/wtchang on their machines, the debugger won't
> be able to find the source files.  I have run into this problem
> on Windows.

DBX on AIX offers a fix for this. From the docs:

"To express that source files whose full-path name information begins with
/home/developer are now located under /mnt, enter:

use + [/home/developer=/mnt]"
(Reporter)

Comment 9

14 years ago
Let's examine the current situation on AIX when sources are compiled without a
pathname. The debugger prompts for the location of every single source file in
every subdirectory.

The use command won't help much, because to my knowledge , only the explicit
directory specified with use is searched. dbx will not do a recursive search to
find source files. And since there are no relative pathnames by default in the
current build either, that means you'll have to add lib/xxx, lib/yyy,
include/zzz, etc ... one at a time with the use command. That's not practical.

If your object files contain an absolute location that you can't directly
access, a single use command can also be issued to map /home/wtchang to
/yourtree . This is according to the documentation link that Philip posted.
 

Comment 10

14 years ago
I agree that it is much simpler for developers to use the absolute pathnames
when debugging. I have gotten in the habit of creating a dbx script file where I
add several "use + ..." statements which are executed when dbx starts, but this
sounds like a better solution.
(Assignee)

Comment 11

14 years ago
Created attachment 180627 [details] [diff] [review]
set NEED_ABSOLUTE_PATH on AIX, v1.1

Right now NSPR 4.6 checkins require mozilla.org drivers'
approval.  We need to have a patch in order to request
approval.  Please mark your review+ first.  Thanks.
Attachment #180553 - Attachment is obsolete: true
Attachment #180627 - Flags: superreview?(pkwarren)
Attachment #180627 - Flags: review?(julien.pierre.bugs)
(Reporter)

Updated

14 years ago
Attachment #180627 - Flags: review?(julien.pierre.bugs) → review+

Comment 12

14 years ago
Comment on attachment 180627 [details] [diff] [review]
set NEED_ABSOLUTE_PATH on AIX, v1.1

Not an sr but I approve this patch from an AIX platform owner perspective.
Attachment #180627 - Flags: superreview?(pkwarren) → superreview+
(Assignee)

Comment 13

14 years ago
Comment on attachment 180627 [details] [diff] [review]
set NEED_ABSOLUTE_PATH on AIX, v1.1

Requesting aviary1.1a and mozilla1.8b2 approvals.

This patch has a low risk.  We want to pass full pathnames
of the source files to the compiler to help the debugger
find the files.  It has been reviewed by Julien Pierre
of Sun and Philip Warren of IBM.
Attachment #180627 - Flags: approval1.8b2?
Attachment #180627 - Flags: approval-aviary1.1a?
Comment on attachment 180627 [details] [diff] [review]
set NEED_ABSOLUTE_PATH on AIX, v1.1

a=caillon
Attachment #180627 - Flags: approval1.8b2?
Attachment #180627 - Flags: approval1.8b2+
Attachment #180627 - Flags: approval-aviary1.1a?
Attachment #180627 - Flags: approval-aviary1.1a+
(Assignee)

Comment 15

14 years ago
Fix checked into the NSPR trunk (NSPR 4.6) and the
NSPRPUB_PRE_4_2_CLIENT_BRANCH (Mozilla 1.8 Beta 2).
Status: NEW → RESOLVED
Last Resolved: 14 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.