Closed Bug 290122 Opened 21 years ago Closed 21 years ago

Compile source files with absolute pathnames on AIX

Categories

(NSPR :: NSPR, defect, P3)

4.5.1
Other
AIX
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: julien.pierre, Assigned: wtc)

Details

Attachments

(1 file, 1 obsolete file)

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 .
Priority: -- → P3
Target Milestone: --- → 4.6
Version: 4.6 → 4.5.1
Attached patch set NEED_ABSOLUTE_PATH on AIX (obsolete) — Splinter Review
Attachment #180553 - Flags: review?(wtchang)
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-
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.
Yes, the dbx on AIX is different, at the one I have. It won't automatically find source files unless compiled with full pathnames.
(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.
Wan-Teh, Your proposed change in comment #2 is fine. Please check it in to the NSPR tip for 4.6. Thanks !
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.
(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]"
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.
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.
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)
Attachment #180627 - Flags: review?(julien.pierre.bugs) → review+
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+
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+
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
Closed: 21 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: