Closed Bug 40941 Opened 24 years ago Closed 24 years ago

Patches for Linux/IA64

Categories

(NSPR :: NSPR, defect, P3)

x86
Linux
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: jim_nance, Assigned: larryh)

Details

Attachments

(6 files)

nspr needs a few tweeks to get it to build under Linux/ia64.
I have attched some patches, but I dont really understand
the nspr build process, particulary if autoconfig is being
used, so it would be good if some could take a close look
at these.

I would like these to get checked into both the browser branch
and the nspr tip if that is possible.
I forgot one:

[jnance@tl3 mozilla]$ cvs diff -u nsprpub/config/Linux.mk
Index: nsprpub/config/Linux.mk
===================================================================
RCS file: /cvsroot/mozilla/nsprpub/config/Linux.mk,v
retrieving revision 3.16.2.2
diff -u -r3.16.2.2 Linux.mk
--- Linux.mk    2000/04/04 00:00:57     3.16.2.2
+++ Linux.mk    2000/05/30 01:48:45
@@ -53,7 +53,11 @@
 ifeq (,$(filter-out arm% sa110,$(OS_TEST)))
 CPU_ARCH               := arm
 else
+ifeq (ia64,$(findstring ia64,$(OS_TEST)))
+CPU_ARCH               := ia64
+else
 CPU_ARCH               := $(OS_TEST)
+endif
 endif
 endif
 CPU_ARCH_TAG           = _$(CPU_ARCH)
This can be checked into the NSPR tip
after review.

Before we can check this into
NSPRPUB_CLIENT_BRANCH, it needs to
pass our tests.  The NSPR tests are
in mozilla/nsprpub/pr/tests.  Use
the test harness runtests.ksh in
that directory to run all the relevant
tests.

Larry, could you review these patches
for Linux/IA64?  Thanks.
Assignee: wtc → larryh
Target Milestone: --- → 4.1
Version: 3.0 → 4.0
Status: NEW → ASSIGNED
I ran the test harnesses on the ai64 box and most of the tests are ok.  bash
kept crashing so I had to run most of it by hand.  I'll post the results later.
I (larryh) have picked up an account on sourceforge.org for testing the port of 
NSPR to Linux Trillium (IA-64). Got SSH to work.

I hand refitted the patches referenced earlier in the report. They did not fit 
NSPR's current tip. NSPR built OK. There are number of troublesome warnings 
suggesting inappropriate cast of pointer to int, maybe no worse than on 32 bit 
Linux, but noticable because of the IA-64 target. I'll check these out later.

The test cases built. Same kinds of warnings on compiles.

The IA-64 machines do not have a korn shell installed; the test script 
runtests.ksh wants a kornshell. I hacked the scripts to run with bash for the 
moment. I logged a request with the sourceforge.org sysadmins to put a korn 
shell. Chris Blizzard reports that ksh segfaults for him; that's probably why it 
is not on the IA-64 machines. ... The hacked runtests.ksh script is running now. 
Most things appear to be running fine.

Multiwait fails. A poll to an unconnected socket returns SIGHUP. This is 
different behavior from RH 6.1 (kernel 2.2.12), which blocks until the socket is 
connected and usable. ... more on this later.
Some comments on the patch (id=9479) I just attached.

I did not change Linux.mk because "uname -m" returns
"ia64", which is exactly what we want.

In _linux.h, I did not define _MD_GET_SP, etc. for ia64
because I could not get classic NSPR to work.  I want to
make compilation fail when people try to build classic
NSPR on ia64.
Checking in pr/include/md/_linux.cfg;
/cvsroot/mozilla/nsprpub/pr/include/md/_linux.cfg,v  <--  _linux.cfg
new revision: 3.9; previous revision: 3.8
done
Checking in pr/include/md/_linux.h;
/cvsroot/mozilla/nsprpub/pr/include/md/_linux.h,v  <--  _linux.h
new revision: 3.28; previous revision: 3.27
done
David Mosberger of HP Labs (davidm@hpl.hp.com) noticed 
that my first implementation of PR_AtomicAdd was wrong and
reviewed my revised implementation.

Checked in the assembly language implementation of the
atomic routines.
/cvsroot/mozilla/nsprpub/configure, revision 1.22
/cvsroot/mozilla/nsprpub/configure.in, revision 1.25
/cvsroot/mozilla/nsprpub/pr/include/md/_linux.h, revision 3.32
/cvsroot/mozilla/nsprpub/pr/src/md/unix/Makefile, revision 3.32
/cvsroot/mozilla/nsprpub/pr/src/md/unix/Makefile.in, revision 1.17
/cvsroot/mozilla/nsprpub/pr/src/md/unix/objs.mk, revision 3.32
/cvsroot/mozilla/nsprpub/pr/src/md/unix/os_Linux_ia64.s, initial revision: 3.1
marking as fixed.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
I checked in the following patch that I received from Bill Nottingham
<notting@redhat.com> on the trunk of NSPR.  It is for NSPR user-level
threads, which we no longer use.  (We are using pthreads.)  I don't
know if it works, but I still checked it in so that it is not lost.

Index: _linux.h
===================================================================
RCS file: /cvsroot/mozilla/nsprpub/pr/include/md/_linux.h,v
retrieving revision 3.32
diff -u -r3.32 _linux.h
--- _linux.h    2000/06/20 22:22:21     3.32
+++ _linux.h    2001/06/09 19:49:14
@@ -177,6 +177,16 @@
 /* XXX not sure if this is correct, or maybe it should be 17? */
 #define PR_NUM_GCREGS 9

+#elif defined(__ia64__)
+
+#define _MD_GET_SP(_t)      ((long *)((_t)->md.context[0].__jmpbuf)[0])
+#define _MD_SET_FP(_t, val)
+#define _MD_GET_SP_PTR(_t)  &(_MD_GET_SP(_t))
+#define _MD_GET_FP_PTR(_t)  ((void *) 0)
+#define _MD_SP_TYPE         long int
+
+#define PR_NUM_GCREGS       _JBLEN
+
 #elif defined(__mc68000__)
 /* m68k based Linux */
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: