Update to mozilla 0.8.1

See the release notes for detail:
http://www.mozilla.org/releases/mozilla0.8.1/

Currently only tested(and worked) on -current/i386.
Tested on 1.5.1_ALPHA/mac68k, but did not work(still investigating).
This commit is contained in:
taya 2001-03-30 09:37:47 +00:00
parent 47e087606e
commit 1192687b94
27 changed files with 186 additions and 1700 deletions

View file

@ -1,6 +1,6 @@
# $NetBSD: Makefile,v 1.60 2001/03/28 11:59:33 abs Exp $
# $NetBSD: Makefile,v 1.61 2001/03/30 09:37:47 taya Exp $
MOZ_VER= 0.8
MOZ_VER= 0.8.1
DISTNAME= mozilla-source-${MOZ_VER}
PKGNAME= mozilla-${MOZ_VER}
WRKSRC= ${WRKDIR}/mozilla
@ -56,21 +56,11 @@ SCRIPTS_ENV+= BINMODE=${BINMODE}
SCRIPTS_ENV+= SETENV=${SETENV}
SHAREMODE?= 644
XPTCFILES+= xptcinvoke_asm_ppc_netbsd.s xptcstubs_asm_ppc_netbsd.s
XPTCFILES+= xptcinvoke_ppc_netbsd.cpp xptcstubs_ppc_netbsd.cpp
XPTCFILES+= xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s
XPTCFILES+= xptcinvoke_sparc_netbsd.cpp xptcstubs_sparc_netbsd.cpp
XPTCFILES+= xptcinvoke_arm_netbsd.cpp xptcstubs_arm_netbsd.cpp
post-extract:
.for F in ${XPTCFILES}
${CP} ${FILESDIR}/${F} ${WRKSRC}/xpcom/reflect/xptcall/src/md/unix/${F}
.endfor
.include "../../mk/bsd.prefs.mk"
pre-configure:
(cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf)
(cd ${WRKSRC}/nsprpub && ${LOCALBASE}/bin/autoconf)
do-build:
@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS}

View file

@ -1,3 +1,3 @@
$NetBSD: md5,v 1.22 2001/02/23 22:32:13 tron Exp $
$NetBSD: md5,v 1.23 2001/03/30 09:37:48 taya Exp $
MD5 (mozilla-source-0.8.tar.bz2) = c2c5e6d1257b9da80ccb6b424974b1c3
SHA1 (mozilla-source-0.8.1.tar.bz2) = 3da3c9b236cdd662e98b2c655ce343478cdbaccb

View file

@ -1,13 +1,7 @@
$NetBSD: patch-sum,v 1.45 2001/02/17 11:03:27 taya Exp $
$NetBSD: patch-sum,v 1.46 2001/03/30 09:37:48 taya Exp $
MD5 (patch-aa) = e245022fb0da3886d6801b608b40f397
MD5 (patch-ab) = 9c0f2acac8e4add32f51aac86663b9a4
MD5 (patch-ac) = 37c5e93a87f43262c38c9fe46a513740
MD5 (patch-af) = c9236a83a307ec1ffa1a440ba4686507
MD5 (patch-ag) = 05078a1e8064f7b4c05c6b32a81b1eb0
MD5 (patch-ah) = 8f6975c0fb5454958416f2b87d789c99
MD5 (patch-aj) = 355b0025e6cf2273acd1ba56a4f40d5e
MD5 (patch-ak) = ca73d68752d0b4df37fa09874729765a
MD5 (patch-an) = 326f7396ebdc736b7a600aa17d4daf61
MD5 (patch-ao) = c856ee47e1b24580f61af634faa1e2bd
MD5 (patch-aq) = 734f5fb211b0d290f42c4463f1d7c464
SHA1 (patch-ao) = de139891a25f136c0192e2089ff81c881a3cf396
SHA1 (patch-aq) = 1d380eca30f686cfa44b8f8f2e35cb0f1a802b12
SHA1 (patch-ar) = 89da463a694f4250e15f5a622a270a7ad68252ed
SHA1 (patch-as) = 470175fc894b0bcf844ab4335613893040956ae7
SHA1 (patch-at) = a1ed1da212a11a6af33cd5b270d460c329d9998f

View file

@ -1,198 +0,0 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
/* Platform specific code to invoke XPCOM methods on native objects */
#include "xptcprivate.h"
// Remember that these 'words' are 32bit DWORDS
static PRUint32
invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
{
PRUint32 result = 0;
for(PRUint32 i = 0; i < paramCount; i++, s++)
{
if(s->IsPtrData())
{
result++;
continue;
}
switch(s->type)
{
case nsXPTType::T_I8 :
case nsXPTType::T_I16 :
case nsXPTType::T_I32 :
result++;
break;
case nsXPTType::T_I64 :
result+=2;
break;
case nsXPTType::T_U8 :
case nsXPTType::T_U16 :
case nsXPTType::T_U32 :
result++;
break;
case nsXPTType::T_U64 :
result+=2;
break;
case nsXPTType::T_FLOAT :
result++;
break;
case nsXPTType::T_DOUBLE :
result+=2;
break;
case nsXPTType::T_BOOL :
case nsXPTType::T_CHAR :
case nsXPTType::T_WCHAR :
result++;
break;
default:
// all the others are plain pointer types
result++;
break;
}
}
return result;
}
static void
invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount, nsXPTCVariant* s)
{
for(PRUint32 i = 0; i < paramCount; i++, d++, s++)
{
if(s->IsPtrData())
{
*((void**)d) = s->ptr;
continue;
}
switch(s->type)
{
case nsXPTType::T_I8 : *((PRInt8*) d) = s->val.i8; break;
case nsXPTType::T_I16 : *((PRInt16*) d) = s->val.i16; break;
case nsXPTType::T_I32 : *((PRInt32*) d) = s->val.i32; break;
case nsXPTType::T_I64 : *((PRInt64*) d) = s->val.i64; d++; break;
case nsXPTType::T_U8 : *((PRUint8*) d) = s->val.u8; break;
case nsXPTType::T_U16 : *((PRUint16*)d) = s->val.u16; break;
case nsXPTType::T_U32 : *((PRUint32*)d) = s->val.u32; break;
case nsXPTType::T_U64 : *((PRUint64*)d) = s->val.u64; d++; break;
case nsXPTType::T_FLOAT : *((float*) d) = s->val.f; break;
case nsXPTType::T_DOUBLE : *((double*) d) = s->val.d; d++; break;
case nsXPTType::T_BOOL : *((PRBool*) d) = s->val.b; break;
case nsXPTType::T_CHAR : *((char*) d) = s->val.c; break;
case nsXPTType::T_WCHAR : *((wchar_t*) d) = s->val.wc; break;
default:
// all the others are plain pointer types
*((void**)d) = s->val.p;
break;
}
}
}
extern "C"
struct my_params_struct {
nsISupports* that;
PRUint32 Index;
PRUint32 Count;
nsXPTCVariant* params;
PRUint32 fn_count;
PRUint32 fn_copy;
};
XPTC_PUBLIC_API(nsresult)
XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
PRUint32 paramCount, nsXPTCVariant* params)
{
PRUint32 result;
struct my_params_struct my_params;
my_params.that = that;
my_params.Index = methodIndex;
my_params.Count = paramCount;
my_params.params = params;
my_params.fn_copy = (PRUint32) &invoke_copy_to_stack;
my_params.fn_count = (PRUint32) &invoke_count_words;
/* This is to call a given method of class that.
* The parameters are in params, the number is in paramCount.
* The routine will issue calls to count the number of words
* required for argument passing and to copy the arguments to
* the stack.
* Since APCS passes the first 3 params in r1-r3, we need to
* load the first three words from the stack and correct the stack
* pointer (sp) in the appropriate way. This means:
*
* 1.) more than 3 arguments: load r1-r3, correct sp and remember No.
* of bytes left on the stack in r4
*
* 2.) <= 2 args: load r1-r3 (we won't be causing a stack overflow I hope),
* restore sp as if nothing had happened and set the marker r4 to zero.
*
* Afterwards sp will be restored using the value in r4 (which is not a temporary register
* and will be preserved by the function/method called according to APCS [ARM Procedure
* Calling Standard]).
*
* !!! IMPORTANT !!!
* This routine makes assumptions about the vtable layout of the c++ compiler. It's implemented
* for arm-linux GNU g++ >= 2.8.1 (including egcs and gcc-2.95.[1-3])!
*
*/
__asm__ __volatile__(
"ldr r1, [%1, #12] \n\t" /* prepare to call invoke_count_words */
"ldr ip, [%1, #16] \n\t" /* r0=paramCount, r1=params */
"ldr r0, [%1, #8] \n\t"
"mov lr, pc \n\t" /* call it... */
"mov pc, ip \n\t"
"mov r4, r0, lsl #2 \n\t" /* This is the amount of bytes needed. */
"sub sp, sp, r4 \n\t" /* use stack space for the args... */
"mov r0, sp \n\t" /* prepare a pointer an the stack */
"ldr r1, [%1, #8] \n\t" /* =paramCount */
"ldr r2, [%1, #12] \n\t" /* =params */
"ldr ip, [%1, #20] \n\t" /* =invoke_copy_to_stack */
"mov lr, pc \n\t" /* copy args to the stack like the */
"mov pc, ip \n\t" /* compiler would. */
"ldr r0, [%1] \n\t" /* =that */
"ldr r1, [r0, #0] \n\t" /* get that->vtable offset */
"ldr r2, [%1, #4] \n\t"
"add r2, r1, r2, lsl #3\n\t" /* a vtable_entry(x)=8 + (8 bytes * x) */
"add r2, r2, #8 \n\t" /* with this compilers */
"ldr r3, [r2] \n\t" /* get virtual offset from vtable */
"mov r3, r3, lsl #16 \n\t"
"add r0, r0, r3, asr #16\n\t"
"ldr ip, [r2, #4] \n\t" /* get method address from vtable */
"cmp r4, #12 \n\t" /* more than 3 arguments??? */
"ldmgtia sp!, {r1, r2, r3}\n\t" /* yes: load arguments for r1-r3 */
"subgt r4, r4, #12 \n\t" /* and correct the stack pointer */
"ldmleia sp, {r1, r2, r3}\n\t" /* no: load r1-r3 from stack */
"addle sp, sp, r4 \n\t" /* and restore stack pointer */
"movle r4, #0 \n\t" /* a mark for restoring sp */
"mov lr, pc \n\t" /* call mathod */
"mov pc, ip \n\t"
"add sp, sp, r4 \n\t" /* restore stack pointer */
"mov %0, r0 \n\t" /* the result... */
: "=r" (result)
: "r" (&my_params)
: "r0", "r1", "r2", "r3", "r4", "ip", "lr"
);
return result;
}

View file

@ -1,114 +0,0 @@
# -*- Mode: Asm -*-
#
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1999 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
# Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
# beard@netscape.com (Patrick Beard)
# waterson@netscape.com (Chris Waterson)
#
.set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4
.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14
.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19
.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24
.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29
.set r30,30; .set r31,31
.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4
.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9
.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14
.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19
.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24
.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
.set f30,30; .set f31,31
.section ".text"
.align 2
.globl XPTC_InvokeByIndex
.type XPTC_InvokeByIndex,@function
#
# XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
# PRUint32 paramCount, nsXPTCVariant* params)
#
XPTC_InvokeByIndex:
stwu sp,-32(sp) # setup standard stack frame
mflr r0 # save LR
stw r3,8(sp) # r3 <= that
stw r4,12(sp) # r4 <= methodIndex
stw r30,16(sp)
stw r31,20(sp)
stw r0,36(sp) # store LR backchain
mr r31,sp
rlwinm r10,r5,3,0,27 # r10 = (ParamCount * 2 * 4) & ~0x0f
addi r0,r10,96 # reserve stack for GPR and FPR register save area r0 = r10 + 96
lwz r9,0(sp) # r9 = backchain
neg r0,r0
stwux r9,sp,r0 # reserve stack sapce and save SP backchain
addi r3,sp,8 # r3 <= args
mr r4,r5 # r4 <= paramCount
mr r5,r6 # r5 <= params
add r6,r3,r10 # r6 <= gpregs ( == args + r10 )
mr r30,r6 # store in r30 for use later...
addi r7,r6,32 # r7 <= fpregs ( == gpregs + 32 )
bl invoke_copy_to_stack@local # (args, paramCount, params, gpregs, fpregs)
lfd f1,32(r30) # load FP registers with method parameters
lfd f2,40(r30)
lfd f3,48(r30)
lfd f4,56(r30)
lfd f5,64(r30)
lfd f6,72(r30)
lfd f7,80(r30)
lfd f8,88(r30)
lwz r3,8(r31) # r3 <= that
lwz r4,12(r31) # r4 <= methodIndex
lwz r5,0(r3) # r5 <= vtable ( == *that )
slwi r4,r4,3 # convert to offset ( *= 8 )
addi r4,r4,8 # skip first two vtable entries
add r4,r4,r5
lhz r0,0(r4) # virtual base offset
extsh r0,r0
add r3,r3,r0
lwz r0,4(r4) # r0 <= methodpointer ( == vtable + offset )
lwz r4,4(r30) # load GP regs with method parameters
lwz r5,8(r30)
lwz r6,12(r30)
lwz r7,16(r30)
lwz r8,20(r30)
lwz r9,24(r30)
lwz r10,28(r30)
mtlr r0 # copy methodpointer to LR
blrl # call method
lwz r30,16(r31) # restore r30 & r31
lwz r31,20(r31)
lwz r11,0(sp) # clean up the stack
lwz r0,4(r11)
mtlr r0
mr sp,r11
blr

View file

@ -1,71 +0,0 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
/* Platform specific code to invoke XPCOM methods on native objects */
.global XPTC_InvokeByIndex
/*
XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
PRUint32 paramCount, nsXPTCVariant* params);
*/
XPTC_InvokeByIndex:
save %sp,-(64 + 16),%sp ! room for the register window and
! struct pointer, rounded up to 0 % 16
mov %i2,%o0 ! paramCount
call invoke_count_words ! returns the required stack size in %o0
mov %i3,%o1 ! params
sll %o0,2,%l0 ! number of bytes
sub %sp,%l0,%sp ! create the additional stack space
mov %sp,%o0 ! pointer for copied args
add %o0,72,%o0 ! step past the register window, the
! struct result pointer and the 'this' slot
mov %i2,%o1 ! paramCount
call invoke_copy_to_stack
mov %i3,%o2 ! params
!
! calculate the target address from the vtable
!
add %i1,1,%i1 ! vTable is zero-based, index is 1 based (?)
ld [%i0],%l1 ! *that --> vTable
sll %i1,3,%i1
add %i1,%l1,%l1 ! vTable[index * 8], l1 now points to vTable entry
lduh [%l1],%l0 ! this adjustor
sll %l0,16,%l0 ! sign extend to 32 bits
sra %l0,16,%l0
add %l0,%i0,%i0 ! adjust this
ld [%l1 + 4],%l0 ! target address
.L5: ld [%sp + 88],%o5
.L4: ld [%sp + 84],%o4
.L3: ld [%sp + 80],%o3
.L2: ld [%sp + 76],%o2
.L1: ld [%sp + 72],%o1
.L0:
jmpl %l0,%o7 ! call the routine
! always have a 'this', from the incoming 'that'
mov %i0,%o0
mov %o0,%i0 ! propogate return value
ret
restore

View file

@ -1,132 +0,0 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
* beard@netscape.com (Patrick Beard)
* waterson@netscape.com (Chris Waterson)
*/
// Platform specific code to invoke XPCOM methods on native objects
// The purpose of XPTC_InvokeByIndex() is to map a platform
// indepenpent call to the platform ABI. To do that,
// XPTC_InvokeByIndex() has to determine the method to call via vtable
// access. The parameters for the method are read from the
// nsXPTCVariant* and prepared for th native ABI. For the Linux/PPC
// ABI this means that the first 8 integral and floating point
// parameters are passed in registers.
#include "xptcprivate.h"
// 8 integral parameters are passed in registers
#define GPR_COUNT 8
// 8 floating point parameters are passed in registers, floats are
// promoted to doubles when passed in registers
#define FPR_COUNT 8
extern "C" PRUint32
invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
{
return PRUint32(((paramCount * 2) + 3) & ~3);
}
extern "C" void
invoke_copy_to_stack(PRUint32* d,
PRUint32 paramCount,
nsXPTCVariant* s,
PRUint32* gpregs,
double* fpregs)
{
PRUint32 gpr = 1; // skip one GP reg for 'that'
PRUint32 fpr = 0;
PRUint32 tempu32;
PRUint64 tempu64;
for(uint32 i = 0; i < paramCount; i++, s++) {
if(s->IsPtrData())
tempu32 = (PRUint32) s->ptr;
else {
switch(s->type) {
case nsXPTType::T_FLOAT: break;
case nsXPTType::T_DOUBLE: break;
case nsXPTType::T_I8: tempu32 = s->val.i8; break;
case nsXPTType::T_I16: tempu32 = s->val.i16; break;
case nsXPTType::T_I32: tempu32 = s->val.i32; break;
case nsXPTType::T_I64: tempu64 = s->val.i64; break;
case nsXPTType::T_U8: tempu32 = s->val.u8; break;
case nsXPTType::T_U16: tempu32 = s->val.u16; break;
case nsXPTType::T_U32: tempu32 = s->val.u32; break;
case nsXPTType::T_U64: tempu64 = s->val.u64; break;
case nsXPTType::T_BOOL: tempu32 = s->val.b; break;
case nsXPTType::T_CHAR: tempu32 = s->val.c; break;
case nsXPTType::T_WCHAR: tempu32 = s->val.wc; break;
default: tempu32 = (PRUint32) s->val.p; break;
}
}
if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) {
if (fpr < FPR_COUNT)
fpregs[fpr++] = s->val.d;
else {
if ((PRUint32) d & 4) d++; // doubles are 8-byte aligned on stack
*((double*) d) = s->val.d;
d += 2;
if (gpr < GPR_COUNT)
gpr += 2;
}
}
else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
if (fpr < FPR_COUNT)
fpregs[fpr++] = s->val.f; // if passed in registers, floats are promoted to doubles
else {
*((float*) d) = s->val.f;
d += 1;
if (gpr < GPR_COUNT)
gpr += 1;
}
}
else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64
|| s->type == nsXPTType::T_U64)) {
if ((gpr + 1) < GPR_COUNT) {
if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6
*((PRUint64*) &gpregs[gpr]) = tempu64;
gpr += 2;
}
else {
if ((PRUint32) d & 4) d++; // longlongs are 8-byte aligned on stack
*((PRUint64*) d) = tempu64;
d += 2;
}
}
else {
if (gpr < GPR_COUNT)
gpregs[gpr++] = tempu32;
else
*d++ = tempu32;
}
}
}
extern "C"
XPTC_PUBLIC_API(nsresult)
XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
PRUint32 paramCount, nsXPTCVariant* params);

View file

@ -1,141 +0,0 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
/* Platform specific code to invoke XPCOM methods on native objects */
#include "xptcprivate.h"
/* solaris defines __sparc for workshop compilers and
linux defines __sparc__ */
#if !defined(__sparc) && !defined(__sparc__)
#error "This code is for Sparc only"
#endif
typedef unsigned nsXPCVariant;
extern "C" PRUint32
invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
{
PRUint32 result = 0;
for(PRUint32 i = 0; i < paramCount; i++, s++)
{
if(s->IsPtrData())
{
result++;
continue;
}
switch(s->type)
{
case nsXPTType::T_I8 :
case nsXPTType::T_I16 :
case nsXPTType::T_I32 :
result++;
break;
case nsXPTType::T_I64 :
result+=2;
break;
case nsXPTType::T_U8 :
case nsXPTType::T_U16 :
case nsXPTType::T_U32 :
result++;
break;
case nsXPTType::T_U64 :
result+=2;
break;
case nsXPTType::T_FLOAT :
result++;
break;
case nsXPTType::T_DOUBLE :
result+=2;
break;
case nsXPTType::T_BOOL :
case nsXPTType::T_CHAR :
case nsXPTType::T_WCHAR :
result++;
break;
default:
// all the others are plain pointer types
result++;
break;
}
}
// nuts, I know there's a cooler way of doing this, but it's late
// now and it'll probably come to me in the morning.
if (result & 0x3) result += 4 - (result & 0x3); // ensure q-word alignment
return result;
}
extern "C" PRUint32
invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount, nsXPTCVariant* s)
{
/*
We need to copy the parameters for this function to locals and use them
from there since the parameters occupy the same stack space as the stack
we're trying to populate.
*/
uint32 *l_d = d;
nsXPTCVariant *l_s = s;
uint32 l_paramCount = paramCount;
uint32 regCount = 0; // return the number of registers to load from the stack
typedef struct {
uint32 hi;
uint32 lo;
} DU; // have to move 64 bit entities as 32 bit halves since
// stack slots are not guaranteed 16 byte aligned
for(uint32 i = 0; i < l_paramCount; i++, l_d++, l_s++)
{
if (regCount < 5) regCount++;
if(l_s->IsPtrData())
{
*((void**)l_d) = l_s->ptr;
continue;
}
switch(l_s->type)
{
case nsXPTType::T_I8 : *((int32*) l_d) = l_s->val.i8; break;
case nsXPTType::T_I16 : *((int32*) l_d) = l_s->val.i16; break;
case nsXPTType::T_I32 : *((int32*) l_d) = l_s->val.i32; break;
case nsXPTType::T_I64 :
case nsXPTType::T_U64 :
case nsXPTType::T_DOUBLE : *((uint32*) l_d++) = ((DU *)l_s)->hi;
if (regCount < 5) regCount++;
*((uint32*) l_d) = ((DU *)l_s)->lo;
break;
case nsXPTType::T_U8 : *((uint32*) l_d) = l_s->val.u8; break;
case nsXPTType::T_U16 : *((uint32*) l_d) = l_s->val.u16; break;
case nsXPTType::T_U32 : *((uint32*) l_d) = l_s->val.u32; break;
case nsXPTType::T_FLOAT : *((float*) l_d) = l_s->val.f; break;
case nsXPTType::T_BOOL : *((PRBool*) l_d) = l_s->val.b; break;
case nsXPTType::T_CHAR : *((uint32*) l_d) = l_s->val.c; break;
case nsXPTType::T_WCHAR : *((int32*)l_d) = l_s->val.wc; break;
default:
// all the others are plain pointer types
*((void**)l_d) = l_s->val.p;
break;
}
}
return regCount;
}

View file

@ -1,130 +0,0 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
/* Implement shared vtbl methods. */
#include "xptcprivate.h"
nsresult
PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args)
{
#define PARAM_BUFFER_COUNT 16
nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
nsXPTCMiniVariant* dispatchParams = NULL;
nsIInterfaceInfo* iface_info = NULL;
const nsXPTMethodInfo* info;
PRUint8 paramCount;
PRUint8 i;
nsresult result = NS_ERROR_FAILURE;
NS_ASSERTION(self,"no self");
self->GetInterfaceInfo(&iface_info);
NS_ASSERTION(iface_info,"no interface info");
iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
NS_ASSERTION(info,"no interface info");
paramCount = info->GetParamCount();
// setup variant array pointer
if(paramCount > PARAM_BUFFER_COUNT)
dispatchParams = new nsXPTCMiniVariant[paramCount];
else
dispatchParams = paramBuffer;
NS_ASSERTION(dispatchParams,"no place for params");
PRUint32* ap = args;
for(i = 0; i < paramCount; i++, ap++)
{
const nsXPTParamInfo& param = info->GetParam(i);
const nsXPTType& type = param.GetType();
nsXPTCMiniVariant* dp = &dispatchParams[i];
if(param.IsOut() || !type.IsArithmetic())
{
dp->val.p = (void*) *ap;
continue;
}
// else
switch(type)
{
case nsXPTType::T_I8 : dp->val.i8 = *((PRInt8*) ap); break;
case nsXPTType::T_I16 : dp->val.i16 = *((PRInt16*) ap); break;
case nsXPTType::T_I32 : dp->val.i32 = *((PRInt32*) ap); break;
case nsXPTType::T_I64 : dp->val.i64 = *((PRInt64*) ap); ap++; break;
case nsXPTType::T_U8 : dp->val.u8 = *((PRUint8*) ap); break;
case nsXPTType::T_U16 : dp->val.u16 = *((PRUint16*)ap); break;
case nsXPTType::T_U32 : dp->val.u32 = *((PRUint32*)ap); break;
case nsXPTType::T_U64 : dp->val.u64 = *((PRUint64*)ap); ap++; break;
case nsXPTType::T_FLOAT : dp->val.f = *((float*) ap); break;
case nsXPTType::T_DOUBLE : dp->val.d = *((double*) ap); ap++; break;
case nsXPTType::T_BOOL : dp->val.b = *((PRBool*) ap); break;
case nsXPTType::T_CHAR : dp->val.c = *((char*) ap); break;
case nsXPTType::T_WCHAR : dp->val.wc = *((wchar_t*) ap); break;
default:
NS_ASSERTION(0, "bad type");
break;
}
}
result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams);
NS_RELEASE(iface_info);
if(dispatchParams != paramBuffer)
delete [] dispatchParams;
return result;
}
/*
* These stubs move just move the values passed in registers onto the stack,
* so they are contiguous with values passed on the stack, and then calls
* PrepareAndDispatch() to do the dirty work.
*/
#define STUB_ENTRY(n) \
__asm__( \
".global _Stub"#n"__14nsXPTCStubBase\n\t" \
"_Stub"#n"__14nsXPTCStubBase:\n\t" \
"stmfd sp!, {r1, r2, r3} \n\t" \
"mov ip, sp \n\t" \
"stmfd sp!, {fp, ip, lr, pc} \n\t" \
"sub fp, ip, #4 \n\t" \
"mov r1, #"#n" \n\t" /* = methodIndex */ \
"add r2, sp, #16 \n\t" \
"bl _PrepareAndDispatch__FP14nsXPTCStubBaseUiPUi \n\t" \
"ldmea fp, {fp, sp, lr} \n\t" \
"add sp, sp, #12 \n\t" \
"mov pc, lr \n\t" \
);
#define SENTINEL_ENTRY(n) \
nsresult nsXPTCStubBase::Sentinel##n() \
{ \
NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
return NS_ERROR_NOT_IMPLEMENTED; \
}
#include "xptcstubsdef.inc"

View file

@ -1,89 +0,0 @@
# -*- Mode: Asm -*-
#
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1999 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
# Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
# beard@netscape.com (Patrick Beard)
# waterson@netscape.com (Chris Waterson)
#
.set r0,0; .set sp,1; .set RTOC,2; .set r3,3; .set r4,4
.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14
.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19
.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24
.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29
.set r30,30; .set r31,31
.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4
.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9
.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14
.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19
.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24
.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
.set f30,30; .set f31,31
.section ".text"
.align 2
.globl SharedStub
.type SharedStub,@function
SharedStub:
stwu sp,-112(sp) # room for
# linkage (8),
# gprData (32),
# fprData (64),
# stack alignment(8)
mflr r0
stw r0,116(sp) # save LR backchain
stw r4,12(sp) # save GP registers
stw r5,16(sp) # (n.b. that we don't save r3
stw r6,20(sp) # because PrepareAndDispatch() is savvy)
stw r7,24(sp)
stw r8,28(sp)
stw r9,32(sp)
stw r10,36(sp)
stfd f1,40(sp) # save FP registers
stfd f2,48(sp)
stfd f3,56(sp)
stfd f4,64(sp)
stfd f5,72(sp)
stfd f6,80(sp)
stfd f7,88(sp)
stfd f8,96(sp)
# r3 has the 'self' pointer already
mr r4,r11 # r4 <= methodIndex selector, passed
# via r11 in the nsXPTCStubBase::StubXX() call
addi r5,sp,120 # r5 <= pointer to callers args area,
# beyond r3-r10/f1-f8 mapped range
addi r6,sp,8 # r6 <= gprData
addi r7,sp,40 # r7 <= fprData
bl PrepareAndDispatch@local # Go!
lwz r0,116(sp) # restore LR
mtlr r0
la sp,112(sp) # clean up the stack
blr

View file

@ -1,65 +0,0 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
.global SharedStub
/*
in the frame for the function that called SharedStub are the
rest of the parameters we need
*/
SharedStub:
! we don't create a new frame yet, but work within the frame of the calling
! function to give ourselves the other parameters we want
mov %o0, %o1 ! shuffle the index up to 2nd place
mov %i0, %o0 ! the original 'this'
add %fp, 72, %o2 ! previous stack top adjusted to the first argument slot (beyond 'this')
! save off the original incoming parameters that arrived in
! registers, the ABI guarantees the space for us to do this
st %i1, [%fp + 72]
st %i2, [%fp + 76]
st %i3, [%fp + 80]
st %i4, [%fp + 84]
st %i5, [%fp + 88]
! now we can build our own stack frame
save %sp,-(64 + 32),%sp ! room for the register window and
! struct pointer, rounded up to 0 % 32
! our function now appears to have been called
! as SharedStub(nsISupports* that, PRUint32 index, PRUint32* args)
! so we can just copy these through
mov %i0, %o0
mov %i1, %o1
mov %i2, %o2
call PrepareAndDispatch
nop
mov %o0,%i0 ! propogate return value
b .LL1
nop
.LL1:
ret
restore
.size SharedStub, .-SharedStub
.type SharedStub, #function

View file

@ -1,202 +0,0 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
* beard@netscape.com (Patrick Beard)
* waterson@netscape.com (Chris Waterson)
*/
// Implement shared vtbl methods.
#include "xptcprivate.h"
// The Linux/PPC ABI (aka PPC/SYSV ABI) passes the first 8 integral
// parameters and the first 8 floating point parameters in registers
// (r3-r10 and f1-f8), no stack space is allocated for these by the
// caller. The rest of the parameters are passed in the callers stack
// area. The stack pointer has to retain 16-byte alignment, longlongs
// and doubles are aligned on 8-byte boundaries.
#define PARAM_BUFFER_COUNT 16
#define GPR_COUNT 8
#define FPR_COUNT 8
// PrepareAndDispatch() is called by SharedStub() and calls the actual method.
//
// - 'args[]' contains the arguments passed on stack
// - 'gprData[]' contains the arguments passed in integer registers
// - 'fprData[]' contains the arguments passed in floating point registers
//
// The parameters are mapped into an array of type 'nsXPTCMiniVariant'
// and then the method gets called.
extern "C" nsresult
PrepareAndDispatch(nsXPTCStubBase* self,
PRUint32 methodIndex,
PRUint32* args,
PRUint32 *gprData,
double *fprData)
{
nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
nsXPTCMiniVariant* dispatchParams = NULL;
nsIInterfaceInfo* iface_info = NULL;
const nsXPTMethodInfo* info;
PRUint32 paramCount;
PRUint32 i;
nsresult result = NS_ERROR_FAILURE;
NS_ASSERTION(self,"no self");
self->GetInterfaceInfo(&iface_info);
NS_ASSERTION(iface_info,"no interface info");
if (! iface_info)
return NS_ERROR_UNEXPECTED;
iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
NS_ASSERTION(info,"no method info");
if (! info)
return NS_ERROR_UNEXPECTED;
paramCount = info->GetParamCount();
// setup variant array pointer
if(paramCount > PARAM_BUFFER_COUNT)
dispatchParams = new nsXPTCMiniVariant[paramCount];
else
dispatchParams = paramBuffer;
NS_ASSERTION(dispatchParams,"no place for params");
if (! dispatchParams)
return NS_ERROR_OUT_OF_MEMORY;
PRUint32* ap = args;
PRUint32 gpr = 1; // skip one GPR register
PRUint32 fpr = 0;
PRUint32 tempu32;
PRUint64 tempu64;
for(i = 0; i < paramCount; i++) {
const nsXPTParamInfo& param = info->GetParam(i);
const nsXPTType& type = param.GetType();
nsXPTCMiniVariant* dp = &dispatchParams[i];
if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
if (fpr < FPR_COUNT)
dp->val.d = fprData[fpr++];
else {
if ((PRUint32) ap & 4) ap++; // doubles are 8-byte aligned on stack
dp->val.d = *(double*) ap;
ap += 2;
if (gpr < GPR_COUNT)
gpr += 2;
}
continue;
}
else if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
if (fpr < FPR_COUNT)
dp->val.f = (float) fprData[fpr++]; // in registers floats are passed as doubles
else {
dp->val.f = *(float*) ap;
ap += 1;
if (gpr < GPR_COUNT)
gpr += 1;
}
continue;
}
else if (!param.IsOut() && (type == nsXPTType::T_I64
|| type == nsXPTType::T_U64)) {
if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6
if ((gpr + 1) < GPR_COUNT) {
tempu64 = *(PRUint64*) &gprData[gpr];
gpr += 2;
}
else {
if ((PRUint32) ap & 4) ap++; // longlongs are 8-byte aligned on stack
tempu64 = *(PRUint64*) ap;
ap += 2;
}
}
else {
if (gpr < GPR_COUNT)
tempu32 = gprData[gpr++];
else
tempu32 = *ap++;
}
if(param.IsOut() || !type.IsArithmetic()) {
dp->val.p = (void*) tempu32;
continue;
}
switch(type) {
case nsXPTType::T_I8: dp->val.i8 = (PRInt8) tempu32; break;
case nsXPTType::T_I16: dp->val.i16 = (PRInt16) tempu32; break;
case nsXPTType::T_I32: dp->val.i32 = (PRInt32) tempu32; break;
case nsXPTType::T_I64: dp->val.i64 = (PRInt64) tempu64; break;
case nsXPTType::T_U8: dp->val.u8 = (PRUint8) tempu32; break;
case nsXPTType::T_U16: dp->val.u16 = (PRUint16) tempu32; break;
case nsXPTType::T_U32: dp->val.u32 = (PRUint32) tempu32; break;
case nsXPTType::T_U64: dp->val.u64 = (PRUint64) tempu64; break;
case nsXPTType::T_BOOL: dp->val.b = (PRBool) tempu32; break;
case nsXPTType::T_CHAR: dp->val.c = (char) tempu32; break;
case nsXPTType::T_WCHAR: dp->val.wc = (wchar_t) tempu32; break;
default:
NS_ASSERTION(0, "bad type");
break;
}
}
result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams);
NS_RELEASE(iface_info);
if (dispatchParams != paramBuffer)
delete [] dispatchParams;
return result;
}
// Load r11 with the constant 'n' and branch to SharedStub().
//
// XXX Yes, it's ugly that we're relying on gcc's name-mangling here;
// however, it's quick, dirty, and'll break when the ABI changes on
// us, which is what we want ;-).
#define STUB_ENTRY(n) \
__asm__ ( \
".section \".text\" \n\t" \
".align 2 \n\t" \
".globl Stub"#n"__14nsXPTCStubBase \n\t" \
".type Stub"#n"__14nsXPTCStubBase,@function \n\n" \
\
"Stub"#n"__14nsXPTCStubBase: \n\t" \
"li 11,"#n" \n\t" \
"b SharedStub@local \n" \
);
#define SENTINEL_ENTRY(n) \
nsresult nsXPTCStubBase::Sentinel##n() \
{ \
NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
return NS_ERROR_NOT_IMPLEMENTED; \
}
#include "xptcstubsdef.inc"

View file

@ -1,131 +0,0 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
/* Implement shared vtbl methods. */
#include "xptcprivate.h"
#if defined(sparc) || defined(__sparc__)
extern "C" nsresult
PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, uint32* args)
{
typedef struct {
uint32 hi;
uint32 lo;
} DU; // have to move 64 bit entities as 32 bit halves since
// stack slots are not guaranteed 16 byte aligned
#define PARAM_BUFFER_COUNT 16
nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
nsXPTCMiniVariant* dispatchParams = NULL;
nsIInterfaceInfo* iface_info = NULL;
const nsXPTMethodInfo* info;
PRUint8 paramCount;
PRUint8 i;
nsresult result = NS_ERROR_FAILURE;
NS_ASSERTION(self,"no self");
self->GetInterfaceInfo(&iface_info);
NS_ASSERTION(iface_info,"no interface info");
iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
NS_ASSERTION(info,"no interface info");
paramCount = info->GetParamCount();
// setup variant array pointer
if(paramCount > PARAM_BUFFER_COUNT)
dispatchParams = new nsXPTCMiniVariant[paramCount];
else
dispatchParams = paramBuffer;
NS_ASSERTION(dispatchParams,"no place for params");
PRUint32* ap = args;
for(i = 0; i < paramCount; i++, ap++)
{
const nsXPTParamInfo& param = info->GetParam(i);
const nsXPTType& type = param.GetType();
nsXPTCMiniVariant* dp = &dispatchParams[i];
if(param.IsOut() || !type.IsArithmetic())
{
dp->val.p = (void*) *ap;
continue;
}
// else
switch(type)
{
case nsXPTType::T_I8 : dp->val.i8 = *((PRInt32*) ap); break;
case nsXPTType::T_I16 : dp->val.i16 = *((PRInt32*) ap); break;
case nsXPTType::T_I32 : dp->val.i32 = *((PRInt32*) ap); break;
case nsXPTType::T_DOUBLE :
case nsXPTType::T_U64 :
case nsXPTType::T_I64 : ((DU *)dp)->hi = ((DU *)ap)->hi;
((DU *)dp)->lo = ((DU *)ap)->lo;
ap++;
break;
case nsXPTType::T_U8 : dp->val.u8 = *((PRUint32*) ap); break;
case nsXPTType::T_U16 : dp->val.u16 = *((PRUint32*)ap); break;
case nsXPTType::T_U32 : dp->val.u32 = *((PRUint32*)ap); break;
case nsXPTType::T_FLOAT : dp->val.f = *((float*) ap); break;
case nsXPTType::T_BOOL : dp->val.b = *((PRBool*) ap); break;
case nsXPTType::T_CHAR : dp->val.c = *((PRUint32*) ap); break;
case nsXPTType::T_WCHAR : dp->val.wc = *((PRInt32*) ap); break;
default:
NS_ASSERTION(0, "bad type");
break;
}
}
result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams);
NS_RELEASE(iface_info);
if(dispatchParams != paramBuffer)
delete [] dispatchParams;
return result;
}
extern "C" int SharedStub(int, int*);
#define STUB_ENTRY(n) \
nsresult nsXPTCStubBase::Stub##n() \
{ \
int dummy; /* defeat tail-call optimization */ \
return SharedStub(n, &dummy); \
}
#define SENTINEL_ENTRY(n) \
nsresult nsXPTCStubBase::Sentinel##n() \
{ \
NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
return NS_ERROR_NOT_IMPLEMENTED; \
}
#include "xptcstubsdef.inc"
#endif /* sparc || __sparc__ */

View file

@ -1,22 +0,0 @@
$NetBSD: patch-aa,v 1.18 2001/02/17 11:03:28 taya Exp $
diff -ru ../Orig/mozilla/config/autoconf.mk.in ./config/autoconf.mk.in
--- ../Orig/mozilla/config/autoconf.mk.in Wed Feb 7 09:10:17 2001
+++ ./config/autoconf.mk.in Sat Feb 17 02:07:16 2001
@@ -76,7 +76,6 @@
NO_NETSCAPE_STATIC = @NO_STATIC_LIB@
ENABLE_TESTS = @ENABLE_TESTS@
BUILD_IDLC = @BUILD_IDLC@
-NEED_BASE_DLL_NAME_ALSO = @NEED_BASE_DLL_NAME_ALSO@
MOZ_ENDER_LITE = @MOZ_ENDER_LITE@
MOZ_LDAP_XPCOM = @MOZ_LDAP_XPCOM@
XPCOM_USE_LEA = @XPCOM_USE_LEA@
@@ -255,8 +254,6 @@
MKSHLIB_UNFORCE_ALL = @MKSHLIB_UNFORCE_ALL@
DSO_LDOPTS = @DSO_LDOPTS@
DLL_SUFFIX = @DLL_SUFFIX@
-SHLIB_LDSTARTFILE = @SHLIB_LDSTARTFILE@
-SHLIB_LDENDFILE = @SHLIB_LDENDFILE@
endif
NO_LD_ARCHIVE_FLAGS = @NO_LD_ARCHIVE_FLAGS@

View file

@ -1,103 +0,0 @@
$NetBSD: patch-ab,v 1.19 2001/02/17 11:03:28 taya Exp $
diff -ru ../Orig/mozilla/configure.in ./configure.in
--- ../Orig/mozilla/configure.in Sat Feb 10 06:30:09 2001
+++ ./configure.in Sat Feb 17 02:07:20 2001
@@ -380,9 +380,6 @@
LIB_SUFFIX=a
TARGET_MD_ARCH=unix
DIRENT_INO=d_ino
-NEED_BASE_DLL_NAME_ALSO=
-SHLIB_LDSTARTFILE=
-SHLIB_LDENDFILE=
MOZ_JPEG_CFLAGS=
MOZ_JPEG_LIBS='-L$(DIST)/lib -ljpeg'
@@ -734,31 +731,18 @@
if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
DLL_SUFFIX=".so"
DSO_PIC_CFLAGS='-fPIC -DPIC'
- DSO_LDOPTS='-x -shared -soname lib$(LIBRARY_NAME)$(DLL_SUFFIX)'
- SHLIB_LDSTARTFILE=/usr/lib/crtbeginS.o
- SHLIB_LDENDFILE=/usr/lib/crtendS.o
+ DSO_LDOPTS='-shared -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX)'
+ BIN_FLAGS='-Wl,--export-dynamic'
else
DSO_PIC_CFLAGS='-fPIC -DPIC'
DLL_SUFFIX=".so.1.0"
- DSO_LDOPTS='-x -shared'
- SHLIB_LDSTARTFILE=/usr/lib/c++rt0.o
+ DSO_LDOPTS='-shared'
fi
- # At least for 1.3 and up, ld supports this, despite the test failing above.
- MKSHLIB_FORCE_ALL='--whole-archive'
- MKSHLIB_UNFORCE_ALL='--no-whole-archive'
- case $OS_TEST in
- alpha)
- dnl NetBSD/alpha can't find a shared lib
- dnl (.so.1.0) unless there's a .so as well.
- NEED_BASE_DLL_NAME_ALSO=1
- ;;
- *86)
- MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
- MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
- ;;
- esac
+ # This will fail on a.out systems prior to 1.5.1_ALPHA.
+ MKSHLIB_FORCE_ALL='-Wl,--whole-archive'
+ MKSHLIB_UNFORCE_ALL='-Wl,--no-whole-archive'
if test "$LIBRUNPATH"; then
- DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
+ DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
fi
;;
@@ -1003,11 +987,6 @@
esac
-dnl See above (netbsd)
-AC_SUBST(NEED_BASE_DLL_NAME_ALSO)
-AC_SUBST(SHLIB_LDSTARTFILE)
-AC_SUBST(SHLIB_LDENDFILE)
-
dnl Only one oddball right now (QNX), but this gives us flexibility
dnl if any other platforms need to override this in the future.
AC_DEFINE_UNQUOTED(D_INO,$DIRENT_INO)
@@ -1244,12 +1223,6 @@
AM_PATH_GTK($GTK_VERSION,,
AC_MSG_ERROR(Test for GTK failed.))
-case "$target" in
-i386-*-netbsd*)
- GTK_LIBS=`echo $GTK_LIBS | sed -e 's/-Wl,//g'`
- ;;
-esac
-
dnl ========================================================
dnl = =
dnl = --with-java-supplement =
@@ -1755,13 +1728,6 @@
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
-case "$target" in
-i386-*-netbsd*)
- GLIB_LIBS=`echo $GLIB_LIBS | sed -e 's/-Wl,//g'`
- LIBIDL_LIBS=`echo $LIBIDL_LIBS | sed -e 's/-Wl,//g'`
- ;;
-esac
-
dnl Checks for typedefs, structures, and compiler characteristics.
dnl ========================================================
AC_C_CONST
@@ -2147,6 +2113,9 @@
CXXFLAGS="$CXXFLAGS -mt"
fi
;;
+ *-*-netbsd*)
+ USE_PTHREADS=
+ _PTHREAD_LDFLAGS=
esac
fi

View file

@ -1,31 +0,0 @@
$NetBSD: patch-ac,v 1.13 2000/10/30 17:03:38 mycroft Exp $
--- nsprpub/config/NetBSD.mk.orig Thu Jul 6 21:04:45 2000
+++ nsprpub/config/NetBSD.mk Mon Oct 30 17:01:51 2000
@@ -52,16 +52,23 @@
DLL_SUFFIX = so
else
DLL_SUFFIX = so.1.0
+# XXX work around a bug in the a.out ld(1).
+OS_LIBS =
endif
DSO_CFLAGS = -fPIC -DPIC
DSO_LDFLAGS =
-DSO_LDOPTS = -x -shared
+DSO_LDOPTS = -shared
+ifeq ($(OBJECT_FMT),ELF)
+DSO_LDOPTS +=-Wl,-soname,lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
+endif
ifdef LIBRUNPATH
-DSO_LDOPTS += -R$(LIBRUNPATH)
+#DSO_LDOPTS += -R$(LIBRUNPATH)
+DSO_LDOPTS += -Wl,-R$(LIBRUNPATH)
endif
-MKSHLIB = $(LD) $(DSO_LDOPTS)
+#MKSHLIB = $(LD) $(DSO_LDOPTS)
+MKSHLIB = $(CC) $(DSO_LDOPTS)
G++INCLUDES = -I/usr/include/g++

View file

@ -1,50 +0,0 @@
$NetBSD: patch-af,v 1.12 2001/01/16 16:01:22 taya Exp $
diff -ru ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in ./xpcom/reflect/xptcall/src/md/unix/Makefile.in
--- ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in Tue Nov 28 14:27:19 2000
+++ ./xpcom/reflect/xptcall/src/md/unix/Makefile.in Mon Jan 15 15:38:34 2001
@@ -105,11 +105,11 @@
#
# NetBSD/ARM
#
-#ifeq ($(OS_ARCH),NetBSD)
-#ifneq (,$(filter arm32 armv4l sa110,$(OS_TEST)))
-#CPPSRCS := xptcinvoke_arm.cpp xptcstubs_arm.cpp
-#endif
-#endif
+ifeq ($(OS_ARCH),NetBSD)
+ifneq (,$(filter arm32 armv4l sa110,$(OS_TEST)))
+CPPSRCS := xptcinvoke_arm_netbsd.cpp xptcstubs_arm_netbsd.cpp
+endif
+endif
######################################################################
# HPPA
@@ -181,6 +181,11 @@
ASFILES := xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s
endif
+ifneq (,$(filter NetBSDmacppc NetBSDbebox NetBSDofppc NetBSDprep NetBSDamigappc,$(OS_ARCH)$(OS_TEST)))
+CPPSRCS := xptcinvoke_ppc_netbsd.cpp xptcstubs_ppc_netbsd.cpp
+ASFILES := xptcinvoke_asm_ppc_netbsd.s xptcstubs_asm_ppc_netbsd.s
+endif
+
ifeq ($(OS_ARCH),Rhapsody)
CPPSRCS := xptcinvoke_ppc_rhapsody.cpp xptcstubs_ppc_rhapsody.cpp
ASFILES := xptcinvoke_asm_ppc_rhapsody.s xptcstubs_asm_ppc_rhapsody.s
@@ -196,6 +201,15 @@
ifneq (,$(findstring sparc,$(OS_TEST)))
CPPSRCS := xptcinvoke_sparc_solaris.cpp xptcstubs_sparc_solaris.cpp
ASFILES := xptcinvoke_asm_sparc_linux.s xptcstubs_asm_sparc_solaris.s
+endif
+endif
+#
+# NetBSD/SPARC
+#
+ifeq ($(OS_ARCH),NetBSD)
+ifneq (,$(findstring sparc,$(OS_TEST)))
+CPPSRCS := xptcinvoke_sparc_netbsd.cpp xptcstubs_sparc_netbsd.cpp
+ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s
endif
endif
#

View file

@ -1,42 +0,0 @@
$NetBSD: patch-ag,v 1.9 2001/01/16 16:01:22 taya Exp $
diff -ru ../Orig/mozilla/config/rules.mk ./config/rules.mk
--- ../Orig/mozilla/config/rules.mk Wed Dec 13 06:28:24 2000
+++ ./config/rules.mk Mon Jan 15 15:37:54 2001
@@ -373,6 +373,27 @@
endif
#
+# On NetBSD a.out systems, use -Bsymbolic. This fixes what would otherwise be
+# fatal symbol name clashes between components.
+#
+ifeq ($(OS_ARCH),NetBSD)
+ifeq ($(DLL_SUFFIX),.so.1.0)
+ifdef IS_COMPONENT
+EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
+endif
+endif
+endif
+
+ifeq ($(OS_ARCH),NetBSD)
+ifneq (,$(filter arc cobalt hpcmips mipsco newsmips pmax sgimips,$(OS_TEST)))
+ifeq ($(MODULE),layout)
+OS_CFLAGS += -Wa,-xgot
+OS_CXXFLAGS += -Wa,-xgot
+endif
+endif
+endif
+
+#
# HP-UXBeOS specific section: for COMPONENTS only, add -Bsymbolic flag
# which uses internal symbols first
#
@@ -1413,7 +1434,7 @@
@echo "OS_CFLAGS = $(OS_CFLAGS)"
@echo "COMPILE_CFLAGS = $(COMPILE_CFLAGS)"
@echo "CXXFLAGS = $(CXXFLAGS)"
- @echo "OS_CXXFLAGS = $(OS_CFXXFLAGS)"
+ @echo "OS_CXXFLAGS = $(OS_CXXFLAGS)"
@echo "COMPILE_CXXFLAGS = $(COMPILE_CXXFLAGS)"
@echo "LDFLAGS = $(LDFLAGS)"
@echo "OS_LDFLAGS = $(OS_LDFLAGS)"

View file

@ -1,13 +0,0 @@
$NetBSD: patch-ah,v 1.6 2000/10/29 01:15:16 mycroft Exp $
--- js/src/jsdtoa.c.orig Sat Oct 28 17:45:14 2000
+++ js/src/jsdtoa.c Sat Oct 28 17:44:45 2000
@@ -241,7 +241,7 @@
* differently: the 32 bit words are in little endian byte order, the two words
* are stored in big endian`s way.
*/
-#if defined (IEEE_8087) && !defined(__arm)
+#if defined (IEEE_8087) && !defined(__arm) && !defined(__arm32__) && !defined(__arm26__)
#define word0(x) ((ULong *)&x)[1]
#define word1(x) ((ULong *)&x)[0]
#else

View file

@ -1,42 +0,0 @@
$NetBSD: patch-aj,v 1.7 2001/01/16 16:01:23 taya Exp $
diff -ru ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_netbsd_m68k.cpp ./xpcom/reflect/xptcall/src/md/unix/xptcinvoke_netbsd_m68k.cpp
--- ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_netbsd_m68k.cpp Sat Nov 6 12:39:07 1999
+++ ./xpcom/reflect/xptcall/src/md/unix/xptcinvoke_netbsd_m68k.cpp Mon Jan 15 15:37:55 2001
@@ -129,6 +129,7 @@
"jbsr _invoke_count_words\n\t" /* count words */
"addql #8, sp\n\t"
"lsll #2, d0\n\t" /* *= 4 */
+ "movl sp, a2\n\t" /* save original sp */
"subl d0, sp\n\t" /* make room for params */
"movl sp, a0\n\t"
"movl %4, sp@-\n\t"
@@ -137,18 +138,22 @@
"jbsr _invoke_copy_to_stack\n\t" /* copy params */
"addl #12, sp\n\t"
"movl %1, a0\n\t"
- "movl a0, sp@-\n\t"
- "movl a0@, a0\n\t"
+ "movl a0@, a1\n\t"
"movl %2, d0\n\t" /* function index */
- "movl a0@(12,d0:l:8), a0\n\t"
- "jbsr a0@\n\t" /* safe to not cleanup sp */
- "movl d0, %0"
+ "movl a0, d1\n\t"
+ "movw a1@(8,d0:l:8), a0\n\t"
+ "addl a0, d1\n\t"
+ "movl a1@(12,d0:l:8), a1\n\t"
+ "movl d1, sp@-\n\t"
+ "jbsr a1@\n\t"
+ "movl a2, sp\n\t" /* restore original sp */
+ "movl d0, %0\n\t"
: "=g" (result) /* %0 */
: "g" (that), /* %1 */
"g" (methodIndex), /* %2 */
"g" (paramCount), /* %3 */
"g" (params) /* %4 */
- : "a0", "a1", "d0", "d1", "memory"
+ : "a0", "a1", "a2", "d0", "d1", "memory"
);
return result;

View file

@ -1,41 +0,0 @@
$NetBSD: patch-ak,v 1.8 2001/01/16 16:01:23 taya Exp $
diff -ru ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_netbsd_m68k.cpp ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_netbsd_m68k.cpp
--- ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_netbsd_m68k.cpp Sat Nov 6 12:39:10 1999
+++ ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_netbsd_m68k.cpp Mon Jan 15 19:12:42 2001
@@ -108,22 +108,19 @@
}
}
-#define STUB_ENTRY(n) \
-nsresult nsXPTCStubBase::Stub##n() \
-{ \
- register nsresult result; \
- __asm__ __volatile__( \
- "lea a6@(12), a0\n\t" /* args */ \
- "movl a0, sp@-\n\t" \
- "movl #"#n", sp@-\n\t" /* method index */ \
- "movl a6@(8), sp@-\n\t" /* this */ \
- "jbsr _PrepareAndDispatch\n\t" \
- "movl d0, %0" \
- : "=d" (result) /* %0 */ \
- : \
- : "a0", "a1", "d0", "d1", "memory" ); \
- return result; \
-}
+#define STUB_ENTRY(n) \
+__asm__( \
+ ".global _Stub"#n"__14nsXPTCStubBase\n\t" \
+"_Stub"#n"__14nsXPTCStubBase:\n\t" \
+ "link a6,#0 \n\t" \
+ "lea a6@(12), a0 \n\t" /* pointer to args */ \
+ "movl a0, sp@- \n\t" \
+ "movl #"#n", sp@- \n\t" /* method index */ \
+ "movl a6@(8), sp@- \n\t" /* this */ \
+ "jbsr _PrepareAndDispatch \n\t" \
+ "unlk a6 \n\t" \
+ "rts \n\t" \
+);
#define SENTINEL_ENTRY(n) \
nsresult nsXPTCStubBase::Sentinel##n() \

View file

@ -1,32 +0,0 @@
$NetBSD: patch-an,v 1.4 2001/02/17 11:03:28 taya Exp $
diff -ru ../Orig/mozilla/htmlparser/tests/outsinks/Convert.cpp ./htmlparser/tests/outsinks/Convert.cpp
--- ../Orig/mozilla/htmlparser/tests/outsinks/Convert.cpp Fri Jan 26 04:37:23 2001
+++ ./htmlparser/tests/outsinks/Convert.cpp Sat Feb 17 02:09:57 2001
@@ -62,12 +62,12 @@
// Inefficiently read from the file:
nsString inString;
- char c;
+ int c;
int index = 0;
int different = 0;
while ((c = getc(file)) != EOF)
{
- inString.AppendWithConversion(c);
+ inString.AppendWithConversion((char) c);
// CVS isn't doing newline comparisons on these files for some reason.
// So compensate for possible newline problems in the CVS file:
if (c == '\n' && str[index] == '\r')
@@ -302,9 +302,9 @@
// Read in the string: very inefficient, but who cares?
nsString inString;
- char c;
+ int c;
while ((c = getc(file)) != EOF)
- inString.AppendWithConversion(c);
+ inString.AppendWithConversion((char) c);
if (file != stdin)
fclose(file);

View file

@ -0,0 +1,58 @@
$NetBSD: patch-ar,v 1.1 2001/03/30 09:37:50 taya Exp $
diff -ru ../Orig/mozilla/nsprpub/configure.in ./nsprpub/configure.in
--- ../Orig/mozilla/nsprpub/configure.in Sun Mar 11 15:24:30 2001
+++ ./nsprpub/configure.in Sat Mar 24 01:33:09 2001
@@ -1073,24 +1073,29 @@
AC_DEFINE(XP_UNIX)
AC_DEFINE(NETBSD)
AC_DEFINE(HAVE_BSD_FLOCK)
+ USE_NSPR_THREADS=1
+ MDCPUCFG_H=_netbsd.cfg
+ PR_MD_CSRCS=netbsd.c
+
+ DSO_CFLAGS='-fPIC -DPIC'
+ CFLAGS="$CFLAGS -ansi -Wall -pipe"
+ CXXFLAGS="$CXXFLAGS -ansi -Wall -pipe"
+ MKSHLIB='$(CC) -o $@ $(DSO_LDOPTS)'
+
if test -z "$OBJECT_FMT"; then
if echo __ELF__ | ${CC-cc} -E - | grep -q __ELF__ 2>/dev/null; then
- OBJECT_FMT=a.out;
+ OBJECT_FMT=a.out
+ DLL_SUFFIX=so.1.0
+ DSO_LDOPTS='-shared'
else
OBJECT_FMT=ELF
+ DLL_SUFFIX=so
+ DSO_LDOPTS='-shared -Wl,-soname,lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)'
fi
fi
- if test "$OBJECT_FMT" = "ELF"; then
- DLL_SUFFIX=so
- else
- DLL_SUFFIX=so.1.0
- fi
- CFLAGS="$CFLAGS -ansi -Wall -pipe"
- CXXFLAGS="$CXXFLAGS -ansi -Wall -pipe"
- DSO_CFLAGS='-fPIC -DPIC'
- DSO_LDOPTS='-x -shared'
+
if test "$LIBRUNPATH"; then
- DSO_LDOPTS="$DSO_LDOPTS -R$(LIBRUNPATH)"
+ DSO_LDOPTS="$DSO_LDOPTS -Wl,-R$LIBRUNPATH"
fi
;;
@@ -1777,11 +1782,6 @@
_PTHREAD_LDFLAGS=
USE_USER_PTHREADS=
;;
-*-netbsd*)
- if test -z "$USE_PTHREADS"; then
- OS_LIBS="$OS_LIBS -lc"
- fi
- ;;
*-solaris*)
if test -n "$USE_NATIVE_THREADS"; then
AC_DEFINE(_PR_GLOBAL_THREADS_ONLY)

View file

@ -0,0 +1,68 @@
$NetBSD: patch-as,v 1.1 2001/03/30 09:37:50 taya Exp $
diff -ru ../Orig/mozilla/netwerk/dns/src/nsDnsService.cpp ./netwerk/dns/src/nsDnsService.cpp
--- ../Orig/mozilla/netwerk/dns/src/nsDnsService.cpp Fri Mar 23 23:23:37 2001
+++ ./netwerk/dns/src/nsDnsService.cpp Sat Mar 24 01:35:04 2001
@@ -943,6 +943,11 @@
nsAutoMonitor mon(mLookupQMon);
+ // Don't wait on the monitor if we're in the process
+ // of shutting down the DNS service.
+ if (mShutdownInProgress)
+ return NS_OK;
+
// Wait for notification of a queued request.
if (!mLookupQ)
mon.Wait();
@@ -967,22 +972,21 @@
////////////////////////////////////////////////////////////////////////////////
nsDNSService::nsDNSService()
- : mState(NS_OK),
- mMonitor(nsnull),
- mLookups(64)
+ : mState(NS_OK)
+ , mMonitor(nsnull)
+ , mLookups(64)
#if defined(XP_UNIX)
, mLookupQ(nsnull)
+ , mLookupQMon(nsnull)
+ , mShutdownInProgress(PR_FALSE)
#endif
#ifdef DNS_TIMING
- ,
- mCount(0),
- mTimes(0),
- mSquaredTimes(0),
- mOut(nsnull)
-
+ , mCount(0)
+ , mTimes(0)
+ , mSquaredTimes(0)
+ , mOut(nsnull)
#endif
- ,
- mMyIPAddress(0)
+ , mMyIPAddress(0)
{
NS_INIT_REFCNT();
@@ -1262,9 +1266,7 @@
if (NS_FAILED(rv)) return rv;
if (lookup) {
- //
// Got a request!!
- //
lookup->DoSyncLookup();
NS_RELEASE(lookup);
} else
@@ -1544,6 +1546,7 @@
// Clear the lookup queue and wake up the worker thread.
//
nsAutoMonitor mon2(mLookupQMon);
+ mShutdownInProgress = PR_TRUE;
if (mLookupQ) {
mLookupQ->ClearNextLookup();
NS_RELEASE(mLookupQ);

View file

@ -0,0 +1,15 @@
$NetBSD: patch-at,v 1.1 2001/03/30 09:37:50 taya Exp $
diff -ru ../Orig/mozilla/netwerk/dns/src/nsDnsService.h ./netwerk/dns/src/nsDnsService.h
--- ../Orig/mozilla/netwerk/dns/src/nsDnsService.h Fri Feb 23 09:15:35 2001
+++ ./netwerk/dns/src/nsDnsService.h Sat Mar 24 01:35:05 2001
@@ -111,6 +111,9 @@
// Called by the DNS thread to get the next lookup to process.
// Blocks until a lookup is available.
nsresult DequeueLookup(nsDNSLookup **);
+
+ // Needed if the DNS thread is not already waiting on the lookup monitor.
+ PRBool mShutdownInProgress;
#endif
#ifdef DNS_TIMING

View file

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST-ELF,v 1.9 2001/02/17 11:03:28 taya Exp $
@comment $NetBSD: PLIST-ELF,v 1.10 2001/03/30 09:37:50 taya Exp $
bin/mozilla
@comment begin PROGRAMS
lib/mozilla/mozilla-bin
@ -8,7 +8,6 @@ lib/mozilla/regExport
lib/mozilla/regchrome
lib/mozilla/regxpcom
lib/mozilla/timebombgen
lib/mozilla/vreg
lib/mozilla/xpidl
lib/mozilla/xpt_dump
lib/mozilla/xpt_link
@ -31,6 +30,7 @@ lib/mozilla/components/libeditor.so
lib/mozilla/components/libembedcomponents.so
lib/mozilla/components/libgfx_gtk.so
lib/mozilla/components/libgfxps.so
lib/mozilla/components/libgkcontent.so
lib/mozilla/components/libgklayout.so
lib/mozilla/components/libgkplugin.so
lib/mozilla/components/libgkview.so
@ -117,12 +117,13 @@ lib/mozilla/plugins/libnullplugin.so
@comment end DSO
@comment begin DATA
lib/mozilla/bloaturls.txt
lib/mozilla/chrome/blue.jar
lib/mozilla/chrome/US.jar
lib/mozilla/chrome/chatzilla.jar
lib/mozilla/chrome/classic.jar
lib/mozilla/chrome/comm.jar
lib/mozilla/chrome/embed.jar
lib/mozilla/chrome/en-US.jar
lib/mozilla/chrome/en-unix.jar
lib/mozilla/chrome/installed-chrome.txt
lib/mozilla/chrome/messenger.jar
lib/mozilla/chrome/modern.jar
@ -136,11 +137,13 @@ lib/mozilla/components/caps.xpt
lib/mozilla/components/chardet.xpt
lib/mozilla/components/chatzilla-service.js
lib/mozilla/components/chrome.xpt
lib/mozilla/components/content_base.xpt
lib/mozilla/components/cookieviewer.xpt
lib/mozilla/components/directory.xpt
lib/mozilla/components/docshell.xpt
lib/mozilla/components/dom.xpt
lib/mozilla/components/editor.xpt
lib/mozilla/components/embed_base.xpt
lib/mozilla/components/exthandler.xpt
lib/mozilla/components/gfx.xpt
lib/mozilla/components/history.xpt
@ -152,6 +155,7 @@ lib/mozilla/components/jsurl.xpt
lib/mozilla/components/layout.xpt
lib/mozilla/components/layout_base.xpt
lib/mozilla/components/layout_xul.xpt
lib/mozilla/components/layout_xul_outliner.xpt
lib/mozilla/components/locale.xpt
lib/mozilla/components/mailnews.xpt
lib/mozilla/components/mime.xpt
@ -216,7 +220,6 @@ lib/mozilla/components/widget.xpt
lib/mozilla/components/windowwatcher.xpt
lib/mozilla/components/xml-rpc.xpt
lib/mozilla/components/xmlextras.xpt
lib/mozilla/components/xmlsoap.xpt
lib/mozilla/components/xpcom_base.xpt
lib/mozilla/components/xpcom_components.xpt
lib/mozilla/components/xpcom_ds.xpt
@ -225,6 +228,8 @@ lib/mozilla/components/xpcom_threads.xpt
lib/mozilla/components/xpcom_xpti.xpt
lib/mozilla/components/xpconnect.xpt
lib/mozilla/components/xpinstall.xpt
lib/mozilla/components/xuldoc.xpt
lib/mozilla/components/xultmpl.xpt
lib/mozilla/defaults/pref/all.js
lib/mozilla/defaults/pref/config.js
lib/mozilla/defaults/pref/editor.js
@ -233,12 +238,12 @@ lib/mozilla/defaults/pref/mailnews.js
lib/mozilla/defaults/pref/security-prefs.js
lib/mozilla/defaults/pref/unix.js
lib/mozilla/defaults/pref/xpinstall.js
lib/mozilla/defaults/profile/US/bookmarks.html
lib/mozilla/defaults/profile/US/localstore.rdf
lib/mozilla/defaults/profile/US/mimeTypes.rdf
lib/mozilla/defaults/profile/US/panels.rdf
lib/mozilla/defaults/profile/US/search.rdf
lib/mozilla/defaults/profile/bookmarks.html
lib/mozilla/defaults/profile/en-US/bookmarks.html
lib/mozilla/defaults/profile/en-US/localstore.rdf
lib/mozilla/defaults/profile/en-US/mimeTypes.rdf
lib/mozilla/defaults/profile/en-US/panels.rdf
lib/mozilla/defaults/profile/en-US/search.rdf
lib/mozilla/defaults/profile/localstore.rdf
lib/mozilla/defaults/profile/mimeTypes.rdf
lib/mozilla/defaults/profile/panels.rdf
@ -352,8 +357,8 @@ lib/mozilla/searchplugins/mozilla.gif
lib/mozilla/searchplugins/mozilla.src
lib/mozilla/splash.xpm
@comment end DATA
@exec env MOZILLA_FIVE_HOME=%D/lib/mozilla %D/lib/mozilla/regxpcom
@exec env MOZILLA_FIVE_HOME=%D/lib/mozilla %D/lib/mozilla/regchrome
@exec env LD_LIBRARY_PATH=%D/lib/mozilla MOZILLA_FIVE_HOME=%D/lib/mozilla %D/lib/mozilla/regxpcom
@exec env LD_LIBRARY_PATH=%D/lib/mozilla MOZILLA_FIVE_HOME=%D/lib/mozilla %D/lib/mozilla/regchrome
@unexec rm %D/lib/mozilla/component.reg
@unexec rm %D/lib/mozilla/chrome/user-locales.rdf
@unexec rm %D/lib/mozilla/chrome/user-skins.rdf
@ -393,7 +398,7 @@ lib/mozilla/splash.xpm
@dirrm lib/mozilla/icons
@dirrm lib/mozilla/dtd
@dirrm lib/mozilla/defaults/wallet
@dirrm lib/mozilla/defaults/profile/en-US
@dirrm lib/mozilla/defaults/profile/US
@dirrm lib/mozilla/defaults/profile
@dirrm lib/mozilla/defaults/pref
@dirrm lib/mozilla/defaults

View file

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST-a.out,v 1.9 2001/02/17 11:03:28 taya Exp $
@comment $NetBSD: PLIST-a.out,v 1.10 2001/03/30 09:37:51 taya Exp $
bin/mozilla
@comment begin PROGRAMS
lib/mozilla/mozilla-bin
@ -8,7 +8,6 @@ lib/mozilla/regExport
lib/mozilla/regchrome
lib/mozilla/regxpcom
lib/mozilla/timebombgen
lib/mozilla/vreg
lib/mozilla/xpidl
lib/mozilla/xpt_dump
lib/mozilla/xpt_link
@ -31,6 +30,7 @@ lib/mozilla/components/libeditor.so.1.0
lib/mozilla/components/libembedcomponents.so.1.0
lib/mozilla/components/libgfx_gtk.so.1.0
lib/mozilla/components/libgfxps.so.1.0
lib/mozilla/components/libgkcontent.so.1.0
lib/mozilla/components/libgklayout.so.1.0
lib/mozilla/components/libgkplugin.so.1.0
lib/mozilla/components/libgkview.so.1.0
@ -117,12 +117,13 @@ lib/mozilla/plugins/libnullplugin.so.1.0
@comment end DSO
@comment begin DATA
lib/mozilla/bloaturls.txt
lib/mozilla/chrome/blue.jar
lib/mozilla/chrome/US.jar
lib/mozilla/chrome/chatzilla.jar
lib/mozilla/chrome/classic.jar
lib/mozilla/chrome/comm.jar
lib/mozilla/chrome/embed.jar
lib/mozilla/chrome/en-US.jar
lib/mozilla/chrome/en-unix.jar
lib/mozilla/chrome/installed-chrome.txt
lib/mozilla/chrome/messenger.jar
lib/mozilla/chrome/modern.jar
@ -136,11 +137,13 @@ lib/mozilla/components/caps.xpt
lib/mozilla/components/chardet.xpt
lib/mozilla/components/chatzilla-service.js
lib/mozilla/components/chrome.xpt
lib/mozilla/components/content_base.xpt
lib/mozilla/components/cookieviewer.xpt
lib/mozilla/components/directory.xpt
lib/mozilla/components/docshell.xpt
lib/mozilla/components/dom.xpt
lib/mozilla/components/editor.xpt
lib/mozilla/components/embed_base.xpt
lib/mozilla/components/exthandler.xpt
lib/mozilla/components/gfx.xpt
lib/mozilla/components/history.xpt
@ -152,6 +155,7 @@ lib/mozilla/components/jsurl.xpt
lib/mozilla/components/layout.xpt
lib/mozilla/components/layout_base.xpt
lib/mozilla/components/layout_xul.xpt
lib/mozilla/components/layout_xul_outliner.xpt
lib/mozilla/components/locale.xpt
lib/mozilla/components/mailnews.xpt
lib/mozilla/components/mime.xpt
@ -216,7 +220,6 @@ lib/mozilla/components/widget.xpt
lib/mozilla/components/windowwatcher.xpt
lib/mozilla/components/xml-rpc.xpt
lib/mozilla/components/xmlextras.xpt
lib/mozilla/components/xmlsoap.xpt
lib/mozilla/components/xpcom_base.xpt
lib/mozilla/components/xpcom_components.xpt
lib/mozilla/components/xpcom_ds.xpt
@ -225,6 +228,8 @@ lib/mozilla/components/xpcom_threads.xpt
lib/mozilla/components/xpcom_xpti.xpt
lib/mozilla/components/xpconnect.xpt
lib/mozilla/components/xpinstall.xpt
lib/mozilla/components/xuldoc.xpt
lib/mozilla/components/xultmpl.xpt
lib/mozilla/defaults/pref/all.js
lib/mozilla/defaults/pref/config.js
lib/mozilla/defaults/pref/editor.js
@ -233,12 +238,12 @@ lib/mozilla/defaults/pref/mailnews.js
lib/mozilla/defaults/pref/security-prefs.js
lib/mozilla/defaults/pref/unix.js
lib/mozilla/defaults/pref/xpinstall.js
lib/mozilla/defaults/profile/US/bookmarks.html
lib/mozilla/defaults/profile/US/localstore.rdf
lib/mozilla/defaults/profile/US/mimeTypes.rdf
lib/mozilla/defaults/profile/US/panels.rdf
lib/mozilla/defaults/profile/US/search.rdf
lib/mozilla/defaults/profile/bookmarks.html
lib/mozilla/defaults/profile/en-US/bookmarks.html
lib/mozilla/defaults/profile/en-US/localstore.rdf
lib/mozilla/defaults/profile/en-US/mimeTypes.rdf
lib/mozilla/defaults/profile/en-US/panels.rdf
lib/mozilla/defaults/profile/en-US/search.rdf
lib/mozilla/defaults/profile/localstore.rdf
lib/mozilla/defaults/profile/mimeTypes.rdf
lib/mozilla/defaults/profile/panels.rdf
@ -352,8 +357,8 @@ lib/mozilla/searchplugins/mozilla.gif
lib/mozilla/searchplugins/mozilla.src
lib/mozilla/splash.xpm
@comment end DATA
@exec env MOZILLA_FIVE_HOME=%D/lib/mozilla %D/lib/mozilla/regxpcom
@exec env MOZILLA_FIVE_HOME=%D/lib/mozilla %D/lib/mozilla/regchrome
@exec env LD_LIBRARY_PATH=%D/lib/mozilla MOZILLA_FIVE_HOME=%D/lib/mozilla %D/lib/mozilla/regxpcom
@exec env LD_LIBRARY_PATH=%D/lib/mozilla MOZILLA_FIVE_HOME=%D/lib/mozilla %D/lib/mozilla/regchrome
@unexec rm %D/lib/mozilla/component.reg
@unexec rm %D/lib/mozilla/chrome/user-locales.rdf
@unexec rm %D/lib/mozilla/chrome/user-skins.rdf
@ -393,7 +398,7 @@ lib/mozilla/splash.xpm
@dirrm lib/mozilla/icons
@dirrm lib/mozilla/dtd
@dirrm lib/mozilla/defaults/wallet
@dirrm lib/mozilla/defaults/profile/en-US
@dirrm lib/mozilla/defaults/profile/US
@dirrm lib/mozilla/defaults/profile
@dirrm lib/mozilla/defaults/pref
@dirrm lib/mozilla/defaults