Import Mozilla Seamonkey 1.0 (gtk2 version).

The SeaMonkey project is a community effort to deliver production-quality
releases of code derived from the application formerly known as "Mozilla
Application Suite". Whereas the main focus of the Mozilla Foundation is on
Mozilla Firefox and Mozilla Thunderbird, our group of dedicated volunteers
works to ensure that you can have "everything but the kitchen sink" and have
it stable enough for corporate use.
This commit is contained in:
Geert Hendrickx 2006-02-01 13:24:45 +00:00 committed by Thomas Klausner
parent 6000918d27
commit 312a5a8250
57 changed files with 7233 additions and 0 deletions

6
seamonkey/DESCR Normal file
View file

@ -0,0 +1,6 @@
The SeaMonkey project is a community effort to deliver production-quality
releases of code derived from the application formerly known as "Mozilla
Application Suite". Whereas the main focus of the Mozilla Foundation is on
Mozilla Firefox and Mozilla Thunderbird, our group of dedicated volunteers
works to ensure that you can have "everything but the kitchen sink" and have
it stable enough for corporate use.

17
seamonkey/INSTALL Normal file
View file

@ -0,0 +1,17 @@
# $NetBSD: INSTALL,v 1.1.1.1 2006/02/01 13:24:46 ghen Exp $
MOZILLA="@MOZILLA@"
MOZILLA_BIN="@MOZILLA_BIN@"
MOZILLA_FIVE_HOME="${PKG_PREFIX}/lib/${MOZILLA}"
export MOZILLA_FIVE_HOME
case ${STAGE} in
POST-INSTALL)
${MKDIR} -p "./tmpdir-${PKGNAME}"
LD_LIBRARY_PATH="${MOZILLA_FIVE_HOME}" HOME="./tmpdir-${PKGNAME}" \
${MOZILLA_FIVE_HOME}/regxpcom
LD_LIBRARY_PATH="${MOZILLA_FIVE_HOME}" HOME="./tmpdir-${PKGNAME}" \
${MOZILLA_FIVE_HOME}/regchrome
${RM} -fr "./tmpdir-${PKGNAME}"
;;
esac

20
seamonkey/Makefile Normal file
View file

@ -0,0 +1,20 @@
# $NetBSD: Makefile,v 1.1.1.1 2006/02/01 13:24:45 ghen Exp $
MOZILLA= seamonkey
MOZILLA_BIN= seamonkey-bin
MOZ_VER= 1.0
EXTRACT_SUFX= .tar.bz2
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
COMMENT= Full featured gecko-based browser
BUILD_SVG= # yes
BUILD_MATHML= # yes
BUILD_CALENDAR= # yes
_MOZILLA_USE_GTK2= # yes
MOZILLA_USE_XFT= YES
.include "../../wip/seamonkey/Makefile.common"
.include "../../mk/bsd.pkg.mk"

207
seamonkey/Makefile.common Normal file
View file

@ -0,0 +1,207 @@
# $NetBSD: Makefile.common,v 1.1.1.1 2006/02/01 13:24:46 ghen Exp $
MOZ_DIST_VER?= ${MOZ_VER}
DISTNAME?= seamonkey-${MOZ_DIST_VER}.source
PKGNAME= ${MOZILLA}-${MOZ_VER}
MASTER_SITES= http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/${MOZ_VER}/
MASTER_SITES+= ftp://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/${MOZ_VER}/
MASTER_SITES+= http://public.planetmirror.com.au/pub/seamonkey/releases/${MOZ_VER}/
MASTER_SITES+= ftp://public.planetmirror.com.au/pub/seamonkey/releases/${MOZ_VER}/
CATEGORIES= www
MAINTAINER= ghen@NetBSD.org
HOMEPAGE?= http://www.mozilla.org/projects/seamonkey
FILESDIR= ${.CURDIR}/../../wip/seamonkey/files
BUILD_DEPENDS+= zip>=2.3:../../archivers/zip
WRKSRC= ${WRKDIR}/mozilla
USE_LANGUAGES= c c++
USE_TOOLS+= autoconf213 gmake perl pkg-config
GNU_CONFIGURE= yes
INSTALL_EXTRA_TMPL+= ${.CURDIR}/../../wip/seamonkey/INSTALL
CONFIG_GUESS_OVERRIDE= build/autoconf/config.guess
CONFIG_GUESS_OVERRIDE+= nsprpub/build/autoconf/config.guess
CONFIG_GUESS_OVERRIDE+= directory/c-sdk/config/autoconf/config.guess
CONFIG_SUB_OVERRIDE= build/autoconf/config.sub
CONFIG_SUB_OVERRIDE+= nsprpub/build/autoconf/config.sub
CONFIG_SUB_OVERRIDE+= directory/c-sdk/config/autoconf/config.sub
CONFIG_STATUS_OVERRIDE= build/config.status
CONFIG_STATUS_OVERRIDE+= nsprpub/config.status
CONFIG_STATUS_OVERRIDE+= directory/c-sdk/config.status
PKGCONFIG_OVERRIDE+= build/unix/${MOZILLA}-gtkmozembed.pc
PKGCONFIG_OVERRIDE+= build/unix/${MOZILLA}-js.pc
PKGCONFIG_OVERRIDE+= build/unix/${MOZILLA}-nspr.pc
PKGCONFIG_OVERRIDE+= build/unix/${MOZILLA}-nss.pc
PKGCONFIG_OVERRIDE+= build/unix/${MOZILLA}-plugin.pc
PKGCONFIG_OVERRIDE+= build/unix/${MOZILLA}-xpcom.pc
# Some .pc files are filled in by the build process, so we can't fix the
# rpaths until this has happened.
PKGCONFIG_OVERRIDE_STAGE= post-build
CONFIGURE_ARGS+= --enable-application=suite
CONFIGURE_ARGS+= --disable-tests
CONFIGURE_ARGS+= --disable-pedantic
CONFIGURE_ARGS+= --with-system-jpeg=${BUILDLINK_PREFIX.jpeg}
CONFIGURE_ARGS+= --with-system-png=${BUILDLINK_PREFIX.png}
CONFIGURE_ARGS+= --enable-crypto
SHAREMODE?= 644
BUILD_TARGET= # empty
UNLIMIT_RESOURCES= datasize memorysize stacksize
.include "../../graphics/freetype2/buildlink3.mk"
.include "../../graphics/jpeg/buildlink3.mk"
.include "../../graphics/png/buildlink3.mk"
.if defined(_MOZILLA_USE_GTK2)
.include "../../net/libIDL/buildlink3.mk"
.include "../../x11/gtk2/buildlink3.mk"
CONFIGURE_ARGS+= --enable-default-toolkit=gtk2 --disable-gnomevfs
.else
.include "../../graphics/gdk-pixbuf/buildlink3.mk"
.include "../../net/ORBit/buildlink3.mk"
.include "../../x11/gtk/buildlink3.mk"
.include "../../x11/Xrender/buildlink3.mk"
CONFIGURE_ARGS+= --enable-default-toolkit=gtk
.endif
# NetBSD-*-m68k builds, but "regchrome" dumps core.
NOT_FOR_PLATFORM= NetBSD-1.4.*-* NetBSD-*-m68k
MAKE_ENV+= MOZILLA_PKG_NAME=${MOZILLA:Q}
MOZ_LIBDIR= ${PREFIX}/lib/${MOZILLA}
MAKE_ENV+= LIBRUNPATH=${MOZ_LIBDIR:Q}
CONFIGURE_ENV+= LIBRUNPATH=${MOZ_LIBDIR:Q}
LDFLAGS+= ${COMPILER_RPATH_FLAG}${MOZ_LIBDIR}
.if defined(BUILD_SVG)
MAKE_ENV+= MOZ_INTERNAL_LIBART_LGPL=1
CONFIGURE_ENV+= MOZ_INTERNAL_LIBART_LGPL=1
CONFIGURE_ARGS+= --enable-svg
CONFIGURE_ARGS+= --enable-svg-renderer-libart
.endif
.if defined(BUILD_CALENDAR)
CONFIGURE_ARGS+= --enable-calendar
.endif
.if defined(BUILD_MATHML)
CONFIGURE_ARGS+= --enable-mathml
.endif
.if exists(${X11BASE}/include/X11/extensions/Xinerama.h) && \
exists(${X11BASE}/lib/libXinerama.so)
CONFIGURE_ARGS+= --enable-xinerama
.endif
# avoid creating a .mozilla directory in the users home
# directory
SCRIPTS_ENV+= HOME=${WRKDIR:Q}
PLIST_SUBST+= MOZILLA=${MOZILLA:Q}
PLIST_SUBST+= MOZILLA_BIN=${MOZILLA_BIN:Q}
FILES_SUBST+= MOZILLA=${MOZILLA:Q}
FILES_SUBST+= MOZILLA_BIN=${MOZILLA_BIN:Q}
.if ${OBJECT_FMT} == "ELF"
SO_SUFFIX= so
SCRIPTS_ENV+= MOZ_INSTALL_LIB=${INSTALL_PROGRAM:Q}
.elif ${OBJECT_FMT} == "Mach-O"
SO_SUFFIX= dylib
SCRIPTS_ENV+= MOZ_INSTALL_LIB=${INSTALL_LIB:Q}
.else
SO_SUFFIX= so.1.0
SCRIPTS_ENV+= MOZ_INSTALL_LIB=${INSTALL_PROGRAM:Q}
.endif
PLIST_SUBST+= SO_SUFFIX=${SO_SUFFIX:Q}
.if (${OPSYS} == "SunOS" && ${MACHINE_ARCH} == "sparc")
SUNOSLIB=
.else
SUNOSLIB= "@comment "
.endif
PLIST_SUBST+= SUNOSLIB=${SUNOSLIB:Q}
SCRIPTS_ENV+= OBJECT_FMT=${OBJECT_FMT:Q}
SCRIPTS_ENV+= PLIST_SRC=${PLIST_SRC:Q}
SCRIPTS_ENV+= SED=${SED:Q}
SCRIPTS_ENV+= RM=${RM:Q}
SCRIPTS_ENV+= EGREP=${EGREP:Q}
SCRIPTS_ENV+= CHOWN=${CHOWN:Q}
SCRIPTS_ENV+= CHGRP=${CHGRP:Q}
SCRIPTS_ENV+= CHMOD=${CHMOD:Q}
SCRIPTS_ENV+= BINOWN=${BINOWN:Q}
SCRIPTS_ENV+= BINGRP=${BINGRP:Q}
SCRIPTS_ENV+= BINMODE=${BINMODE:Q}
SCRIPTS_ENV+= SETENV=${SETENV:Q}
SCRIPTS_ENV+= MOZILLA=${MOZILLA:Q}
SCRIPTS_ENV+= MOZILLA_BIN=${MOZILLA_BIN:Q}
SCRIPTS_ENV+= SO_SUFFIX=${SO_SUFFIX:Q}
SCRIPTS_ENV+= SUNOSLIB=${SUNOSLIB:Q}
PTHREAD_OPTS+= native optional
.if (${OPSYS} == "NetBSD" && ${MACHINE_ARCH} == "x86_64")
GCC_REQD+= 3.4
.endif
.include "../../mk/compiler.mk"
.if !empty(CC_VERSION:Mgcc*)
COPTS?= -O2
.endif
CONFIGURE_ARGS+= --enable-optimize=${COPTS:Q}
XPTCFILES+= xptcinvoke_asm_sparc64_netbsd.s xptcstubs_asm_sparc64_netbsd.s
XPTCFILES+= xptcinvoke_sparc64_netbsd.cpp xptcstubs_sparc64_netbsd.cpp
.if ${OPSYS} == "Darwin"
BUILDLINK_PASSTHRU_DIRS+=/Developer
.endif
post-extract:
.for f in ${XPTCFILES}
${CP} ${FILESDIR}/${f} ${WRKSRC}/xpcom/reflect/xptcall/src/md/unix/${f}
.endfor
pre-configure:
cd ${WRKSRC} && autoconf
cd ${WRKSRC}/nsprpub && autoconf
cd ${WRKSRC}/directory/c-sdk && autoconf
post-build:
${ECHO} skin,install,select,classic/1.0 >> \
${WRKSRC}/dist/bin/chrome/installed-chrome.txt
${ECHO} locale,install,select,en-US >> \
${WRKSRC}/dist/bin/chrome/installed-chrome.txt
#do-install:
# ${SETENV} ${SCRIPTS_ENV} ${SH} ${FILESDIR}/moz-install
.include "../../mk/pthread.buildlink3.mk"
.if defined(PTHREAD_TYPE) && (${PTHREAD_TYPE} == "none")
CONFIGURE_ARGS+= --without-pthreads
.else
CONFIGURE_ARGS+= --with-pthreads
.endif
.if ${MOZILLA_USE_XFT} == "YES" && exists(${X11BASE}/include/X11/Xdefs.h)
CONFIGURE_ARGS+= --enable-xft
# pkgconfig defaults to a "build" dependency, which is what we want.
.include "../../fonts/Xft2/buildlink3.mk"
.endif
# Fix for firefox* packages.
SUBST_CLASSES+= pc
SUBST_STAGE.pc= post-extract
SUBST_FILES.pc= build/unix/*.pc.in
SUBST_SED.pc= -e "s|%includedir%|${PREFIX}/include/${MOZILLA}|g"
SUBST_SED.pc+= -e "s|%libdir%|${PREFIX}/lib/${MOZILLA}|g"
SUBST_MESSAGE.pc= Fixing pkgconfig files.
.include "../../wip/seamonkey/options.mk"

4311
seamonkey/PLIST Normal file

File diff suppressed because it is too large Load diff

25
seamonkey/buildlink3.mk Normal file
View file

@ -0,0 +1,25 @@
# $NetBSD: buildlink3.mk,v 1.1.1.1 2006/02/01 13:24:45 ghen Exp $
BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+
SEAMONKEY_BUILDLINK3_MK:= ${SEAMONKEY_BUILDLINK3_MK}+
.if !empty(BUILDLINK_DEPTH:M+)
BUILDLINK_DEPENDS+= seamonkey
.endif
BUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Nseamonkey}
BUILDLINK_PACKAGES+= seamonkey
.if !empty(SEAMONKEY_BUILDLINK3_MK:M+)
BUILDLINK_DEPENDS.seamonkey+= seamonkey>=1.0
BUILDLINK_RECOMMENDED.seamonkey+= seamonkey>=1.0
BUILDLINK_PKGSRCDIR.seamonkey?= ../../wip/seamonkey
.endif # SEAMONKEY_BUILDLINK3_MK
.include "../../graphics/freetype2/buildlink3.mk"
.include "../../graphics/jpeg/buildlink3.mk"
.include "../../graphics/png/buildlink3.mk"
.include "../../net/libIDL/buildlink3.mk"
.include "../../x11/gtk2/buildlink3.mk"
BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH:S/+$//}

46
seamonkey/distinfo Normal file
View file

@ -0,0 +1,46 @@
$NetBSD: distinfo,v 1.1.1.1 2006/02/01 13:24:46 ghen Exp $
SHA1 (seamonkey-1.0.source.tar.bz2) = f535ff1d2620ac5a76a2d8179c07f82cd53f938f
RMD160 (seamonkey-1.0.source.tar.bz2) = 2785193e84a85b5570a4905221a54092d32aef15
Size (seamonkey-1.0.source.tar.bz2) = 34860577 bytes
SHA1 (patch-aa) = 2d117311991c4c71803f3c446334d7b6f1e1067a
SHA1 (patch-ab) = 9853969359280e9978b00e7db9479c8c19289a82
SHA1 (patch-ac) = 9bcc2601283b0f8e4a86fa6663127c707d299590
SHA1 (patch-ad) = 2210b695a2eedefb82c16698a51f4f0f6b2e53e4
SHA1 (patch-ae) = f3c8ffcdfc8c0d5cc75413602c97c731721d751e
SHA1 (patch-af) = 4844013ad49c77b87be7c30931ca786f246b40f3
SHA1 (patch-ag) = eaebefa81d03b2ebc8a32465f59889d92944d750
SHA1 (patch-ah) = 8f92f4294ead04ddc5b719ff66b4aada912dcc01
SHA1 (patch-ai) = 89b0fb6fb691a6d40e7f1a5bdc8335d63e491c7b
SHA1 (patch-aj) = 951b5ea63116d876a6fcef586256a5728a2df2cf
SHA1 (patch-ak) = f867ca0973fb4d0ca325b25f83586f10f6e85e32
SHA1 (patch-al) = d916f38de2fa0ca1993ec75c457fccc60ee6d612
SHA1 (patch-an) = 99ac2da44322db96f8d65fbfdb380727b9da96fe
SHA1 (patch-ao) = 617d232bd335bc988388f2004ca919c829e371da
SHA1 (patch-ap) = 856f74f774b4db7df9b4453aea4d849893ee6bf1
SHA1 (patch-aq) = 02913aeb1f32eac4ffa64cdafd89fba53a390138
SHA1 (patch-aw) = db73e21e67dc4200312285973faaaed308ea436e
SHA1 (patch-ax) = b32483c5259cbe95202944683889bf20a7c1650e
SHA1 (patch-ba) = add9ecd6cff002525b2bc63aad7eb142e610b190
SHA1 (patch-bb) = 02739e33cc1f35294257125c39a1223e0e1b07a6
SHA1 (patch-bm) = 3e297a2dece8dcad7bde86f79f944a98d09174a7
SHA1 (patch-bo) = b1960ca29c6275c2547c5e61348e51b036dabb9b
SHA1 (patch-bq) = 9df1f0cf423ca2935df79c9f2b4b32ffedd2af58
SHA1 (patch-br) = 17c64ca592a5482a780ad3bc6d5f835ed2c91588
SHA1 (patch-bs) = 3263560fed55d5c7075f28d405d9d705608bfb67
SHA1 (patch-bu) = db33b8651e3cb1fbf9a18dbe78e1e8288cfda0ee
SHA1 (patch-bv) = 4f23dfd885131ea866f31370f1421e7c19706860
SHA1 (patch-bw) = a9924b3db72bcf6949c9a6fc36d56220c8f68d4e
SHA1 (patch-bx) = 046e19c9c4b431369411658373b14c1822841d85
SHA1 (patch-by) = 643185af7a0df7030b2b96447ee4031dc9c82f88
SHA1 (patch-bz) = 6f854d74a9d1d1174ce8eff7d65f8024a7da4711
SHA1 (patch-ca) = 479ef14631ae019ae5ca1c08a2f786294f3e972b
SHA1 (patch-cb) = fd0f033d63be066ce5c47057d72c48a085718908
SHA1 (patch-cg) = bea25d1ca341407fe6100f16c88f2c19b4fddc24
SHA1 (patch-ch) = 313308df929c4b40b9d453ce8815af081312eab0
SHA1 (patch-ci) = 225043e92bca992737ac1065dd806e1463ac2cd3
SHA1 (patch-cj) = 8716afb433a9cab1202cd39db1611ec784859c43
SHA1 (patch-ck) = 157fad436bb71795e5ff4b6b8efb26f7f6a84e90
SHA1 (patch-cl) = 0c6d7f86739ec8cb805d8ddc0034a421488274bc
SHA1 (patch-cm) = f3de952dd8eedfb5e4a11a2b05500d37890b13f5
SHA1 (patch-cn) = 67b5ed52ffe09eb083ee30d9916c231666e0507c

70
seamonkey/files/moz-install Executable file
View file

@ -0,0 +1,70 @@
#!/bin/sh
#
# $NetBSD: moz-install,v 1.1.1.1 2006/02/01 13:24:46 ghen Exp $
${SED} -e "s,@PREFIX@,${PREFIX},g" -e "s,@MOZILLA@,${MOZILLA}," -e "s,@MOZILLA_BIN@,${MOZILLA_BIN}," ${FILESDIR}/mozilla-${OBJECT_FMT}.in > ${PREFIX}/bin/${MOZILLA}
${CHOWN} ${BINOWN} ${PREFIX}/bin/${MOZILLA}
${CHGRP} ${BINGRP} ${PREFIX}/bin/${MOZILLA}
${CHMOD} ${BINMODE} ${PREFIX}/bin/${MOZILLA}
#
# Substitute variables
#
TMP_PLIST=${WRKDIR}/TMP_PLIST.$$
trap "${RM} -f ${TMP_PLIST}" 1 2 15
${SED} -e "s/\${MOZILLA}/${MOZILLA}/g" -e "s/\${SO_SUFFIX}/${SO_SUFFIX}/" -e "s/\${MOZILLA_BIN}/${MOZILLA_BIN}/g" -e "s/\${SUNOSLIB}/${SUNOSLIB}/" < ${PLIST_SRC} > ${TMP_PLIST}
# make directories
for i in `${SED} -n -e '/^@comment begin DIRS$/,/^@comment end DIRS$/p' ${TMP_PLIST} | ${EGREP} ^@dirrm | ${SED} -e 's/^@dirrm//'` ; do
${BSD_INSTALL_DATA_DIR} ${PREFIX}/$i
done
# install programs
for i in `${SED} -n -e '/^@comment begin PROGRAMS$/,/^@comment end PROGRAMS$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do
src=`echo $i | ${SED} -e "s@lib/${MOZILLA}@dist/bin@"`;
${BSD_INSTALL_PROGRAM} ${WRKSRC}/${src} ${PREFIX}/$i
done
# install scripts
for i in `${SED} -n -e '/^@comment begin SCRIPTS$/,/^@comment end SCRIPTS$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do
src=`echo $i | ${SED} -e "s@lib/${MOZILLA}@dist/bin@"`;
${BSD_INSTALL_SCRIPT} ${WRKSRC}/${src} ${PREFIX}/$i
done
# install DSO
for i in `${SED} -n -e '/^@comment begin DSO$/,/^@comment end DSO$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do
src=`echo $i | ${SED} -e "s@lib/${MOZILLA}@dist/bin@"`;
${MOZ_INSTALL_LIB} ${WRKSRC}/${src} ${PREFIX}/$i
done
# install PKGCONFIG
for i in `${SED} -n -e '/^@comment begin PKGCONFIG$/,/^@comment end PKGCONFIG$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do
src=`echo $i | ${SED} -e "s@lib/pkgconfig@build/unix@"`;
${BSD_INSTALL_DATA} ${WRKSRC}/${src} ${PREFIX}/$i
done
# install DATA
for i in `${SED} -n -e '/^@comment begin DATA$/,/^@comment end DATA$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do
src=`echo $i | ${SED} -e "s@lib/${MOZILLA}@dist/bin@"`;
${BSD_INSTALL_DATA} ${WRKSRC}/${src} ${PREFIX}/$i
done
# install INCLUDE
for i in `${SED} -n -e '/^@comment begin INCLUDE$/,/^@comment end INCLUDE$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do
src=`echo $i | ${SED} -e "s@include/${MOZILLA}@dist/include@"`;
${BSD_INSTALL_DATA} ${WRKSRC}/${src} ${PREFIX}/$i
done
# install INCLUDE-PUBLIC
for i in `${SED} -n -e '/^@comment begin INCLUDE-PUBLIC$/,/^@comment end INCLUDE-PUBLIC$/p' ${TMP_PLIST} | ${EGREP} -v ^@comment` ; do
src=`echo $i | ${SED} -e "s@include/${MOZILLA}@dist/public@"`;
${BSD_INSTALL_DATA} ${WRKSRC}/${src} ${PREFIX}/$i
done
${RM} -f ${TMP_PLIST}
#
# remove generated user conf directory ${WRKDIR}/.mozilla
#
${RM} -rf ${WRKDIR}/.mozilla

View file

@ -0,0 +1,4 @@
#!/bin/sh
MOZILLA_FIVE_HOME=@PREFIX@/lib/@MOZILLA@
export MOZILLA_FIVE_HOME
exec @PREFIX@/lib/@MOZILLA@/@MOZILLA_BIN@ "$@"

View file

@ -0,0 +1,4 @@
#!/bin/sh
MOZILLA_FIVE_HOME=@PREFIX@/lib/@MOZILLA@
export MOZILLA_FIVE_HOME
exec @PREFIX@/lib/@MOZILLA@/@MOZILLA_BIN@ "$@"

View file

@ -0,0 +1,6 @@
#!/bin/sh
MOZILLA_FIVE_HOME=@PREFIX@/lib/@MOZILLA@
LD_LIBRARY_PATH=@PREFIX@/lib/@MOZILLA@
export MOZILLA_FIVE_HOME
export LD_LIBRARY_PATH
exec @PREFIX@/lib/@MOZILLA@/@MOZILLA_BIN@ "$@"

View file

@ -0,0 +1,112 @@
/* -*- 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
.type XPTC_InvokeByIndex, #function
/*
XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
PRUint32 paramCount, nsXPTCVariant* params);
*/
/*
* Note: To simplify stack handling we allocate an extra stack
* frame here. In principle invoke_copy_to_stack() could
* save the parameters our caller's frame and we could
* reclaim the stackframe and do a tail call to the
* function. However, this gets complicated....
*
* The vtable consist of be:
*
* struct {
* short __delta;
* short __index;
* union {
* P __pfn;
* short __delta2;
* } __pfn_or_delta2;
* };
*
* See gcc/cp/cp-tree.h
*/
XPTC_InvokeByIndex:
save %sp,-(128 + 64),%sp ! room for the register window and
! struct pointer, rounded up to 0 % 64
sll %i2,4,%l0 ! assume the worst case
! paramCount * 2 * 8 bytes
cmp %l0, 0 ! are there any args? If not,
be .invoke ! no need to copy args to stack
nop
sub %sp,%l0,%sp ! create the additional stack space
add %sp,0x7ff+136,%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
!
! load arguments from stack into the outgoing registers
! BIAS is 0x7ff (2047)
!
! load the %o1..5 64bit (extended word) output registers registers
ldx [%sp + 0x7ff + 136],%o1 ! %i1
ldx [%sp + 0x7ff + 144],%o2 ! %i2
ldx [%sp + 0x7ff + 152],%o3 ! %i3
ldx [%sp + 0x7ff + 160],%o4 ! %i4
ldx [%sp + 0x7ff + 168],%o5 ! %i5
! load the even number double registers starting with %f2
ldd [%sp + 0x7ff + 136],%f2
ldd [%sp + 0x7ff + 144],%f4
ldd [%sp + 0x7ff + 152],%f6
ldd [%sp + 0x7ff + 160],%f8
ldd [%sp + 0x7ff + 168],%f10
ldd [%sp + 0x7ff + 176],%f12
ldd [%sp + 0x7ff + 184],%f14
ldd [%sp + 0x7ff + 192],%f16
ldd [%sp + 0x7ff + 200],%f18
ldd [%sp + 0x7ff + 208],%f20
ldd [%sp + 0x7ff + 216],%f22
ldd [%sp + 0x7ff + 224],%f24
ldd [%sp + 0x7ff + 232],%f26
ldd [%sp + 0x7ff + 240],%f28
ldd [%sp + 0x7ff + 248],%f30
!
! calculate the target address from the vtable
!
.invoke:
sll %i1,3,%l0 ! index *= 8
ldx [%i0],%l1 ! *this --> address of vtable
ldx [%l0 + %l1],%l0 ! this->vtable[index] --> address
jmpl %l0,%o7 ! call the routine
mov %i0,%o0 ! move 'this' pointer to out register
mov %o0,%i0 ! propagate return value
ret
restore
.size XPTC_InvokeByIndex, .-XPTC_InvokeByIndex

View file

@ -0,0 +1,84 @@
/* -*- 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"
#if !defined(__sparc64__) && !defined(_LP64)
#error "This code is for Sparc64 only"
#endif
extern "C" PRUint32
invoke_copy_to_stack(PRUint64* 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.
*/
PRUint64 *l_d = d;
nsXPTCVariant *l_s = s;
PRUint64 l_paramCount = paramCount;
PRUint64 regCount = 0; // return the number of registers to load from the stack
for(PRUint64 i = 0; i < l_paramCount; i++, l_d++, l_s++)
{
if (regCount < 5) regCount++;
if (l_s->IsPtrData())
{
*l_d = (PRUint64)l_s->ptr;
continue;
}
switch (l_s->type)
{
case nsXPTType::T_I8 : *((PRInt64*)l_d) = l_s->val.i8; break;
case nsXPTType::T_I16 : *((PRInt64*)l_d) = l_s->val.i16; break;
case nsXPTType::T_I32 : *((PRInt64*)l_d) = l_s->val.i32; break;
case nsXPTType::T_I64 : *((PRInt64*)l_d) = l_s->val.i64; break;
case nsXPTType::T_U8 : *((PRUint64*)l_d) = l_s->val.u8; break;
case nsXPTType::T_U16 : *((PRUint64*)l_d) = l_s->val.u16; break;
case nsXPTType::T_U32 : *((PRUint64*)l_d) = l_s->val.u32; break;
case nsXPTType::T_U64 : *((PRUint64*)l_d) = l_s->val.u64; break;
/* in the case of floats, we want to put the bits in to the
64bit space right justified... floats in the paramter array on
sparcv9 use odd numbered registers.. %f1, %f3, so we have to skip
the space that would be occupied by %f0, %f2, etc.
*/
case nsXPTType::T_FLOAT : *(((float*)l_d) + 1) = l_s->val.f; break;
case nsXPTType::T_DOUBLE: *((double*)l_d) = l_s->val.d; break;
case nsXPTType::T_BOOL : *((PRInt64*)l_d) = l_s->val.b; break;
case nsXPTType::T_CHAR : *((PRUint64*)l_d) = l_s->val.c; break;
case nsXPTType::T_WCHAR : *((PRInt64*)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

@ -0,0 +1,66 @@
/* -*- 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, 0x7ff + 136, %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
stx %i1, [%fp + 0x7ff + 136]
stx %i2, [%fp + 0x7ff + 144]
stx %i3, [%fp + 0x7ff + 152]
stx %i4, [%fp + 0x7ff + 160]
stx %i5, [%fp + 0x7ff + 168]
! now we can build our own stack frame
save %sp,-(128 + 64),%sp ! room for the register window and
! struct pointer, rounded up to 0 % 64
! 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 ! propagate return value
b .LL1
nop
.LL1:
ret
restore
.size SharedStub, .-SharedStub
.type SharedStub, #function

View file

@ -0,0 +1,122 @@
/* -*- 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, PRUint64 methodIndex, PRUint64* 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");
PRUint64* 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 : dp->val.d = *((double*) ap); break;
case nsXPTType::T_U64 : dp->val.u64 = *((PRUint64*) ap); break;
case nsXPTType::T_I64 : dp->val.i64 = *((PRInt64*) 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__ */

12
seamonkey/options.mk Normal file
View file

@ -0,0 +1,12 @@
# $NetBSD: options.mk,v 1.1.1.1 2006/02/01 13:24:46 ghen Exp $
PKG_OPTIONS_VAR = PKG_OPTIONS.gecko
PKG_SUPPORTED_OPTIONS = debug
.include "../../mk/bsd.options.mk"
# this .if test looks backward, but the missing options disables debug,
# so it is correct
.if empty(PKG_OPTIONS:Mdebug)
CONFIGURE_ARGS+= --disable-debug
.endif

View file

@ -0,0 +1,21 @@
$NetBSD: patch-aa,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- config/autoconf.mk.in.orig 2006-01-06 22:01:20.000000000 +0100
+++ config/autoconf.mk.in
@@ -54,13 +54,13 @@ MOZ_APP_VERSION = @MOZ_APP_VERSION@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
-includedir = @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+includedir = @includedir@/$(MOZILLA_PKG_NAME)
libdir = @libdir@
datadir = @datadir@
mandir = @mandir@
-idldir = @datadir@/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+idldir = @datadir@/idl/$(MOZILLA_PKG_NAME)
-mozappdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+mozappdir = $(libdir)/$(MOZILLA_PKG_NAME)
mredir = $(libdir)/mre/mre-$(MOZ_APP_VERSION)
mrelibdir = $(mredir)/lib

View file

@ -0,0 +1,54 @@
$NetBSD: patch-ab,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- configure.in.orig 2006-01-10 04:11:42.000000000 +0100
+++ configure.in
@@ -1349,7 +1349,6 @@ case "$target" in
DSO_LDOPTS=''
STRIP="$STRIP -x -S"
_PLATFORM_DEFAULT_TOOLKIT='mac'
- MOZ_ENABLE_POSTSCRIPT=
# set MACOSX to generate lib/mac/MoreFiles/Makefile
MACOSX=1
@@ -1390,6 +1389,9 @@ case "$target" in
# MKSHLIB_FORCE_ALL='-Wl,-Bforcearchive'
# MKSHLIB_UNFORCE_ALL=''
# fi
+ if test "$LIBRUNPATH"; then
+ DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
+ fi
;;
*-hpux*)
@@ -1784,6 +1786,13 @@ case "$target" in
if test "$LIBRUNPATH"; then
DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
fi
+
+ case "${target_cpu}" in
+ alpha*)
+ CFLAGS="$CFLAGS -mieee"
+ CXXFLAGS="$CXXFLAGS -mieee"
+ ;;
+ esac
;;
*-nto*)
@@ -2009,7 +2018,7 @@ dnl the qsort routine under solaris is f
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) -G -Wl,-z -Wl,muldefs -o $@'
MKSHLIB_FORCE_ALL='-Qoption ld -z,allextract'
MKSHLIB_UNFORCE_ALL=''
- DSO_LDOPTS='-G -Qoption ld -z,muldefs -h $@'
+ DSO_LDOPTS='-G -z muldefs -h $@'
AR_LIST="$AR t"
AR_EXTRACT="$AR x"
AR_DELETE="$AR d"
@@ -5237,7 +5246,7 @@ dnl ====================================
dnl = Enable code optimization. ON by default.
dnl ========================================================
if test -z "$MOZ_OPTIMIZE_FLAGS"; then
- MOZ_OPTIMIZE_FLAGS="-O"
+ MOZ_OPTIMIZE_FLAGS=""
fi
MOZ_ARG_ENABLE_STRING(optimize,

View file

@ -0,0 +1,54 @@
$NetBSD: patch-ac,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig 2005-06-15 10:32:21.000000000 +0200
+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in
@@ -65,6 +65,9 @@ ifneq (,$(filter FreeBSD NetBSD OpenBSD
ifeq (86,$(findstring 86,$(OS_TEST)))
CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp
endif
+ifeq (amd64,$(OS_TEST))
+CPPSRCS := xptcinvoke_unixish_amd64.cpp xptcstubs_unixish_amd64.cpp
+endif
endif
#
# New code for Linux, et. al., with gcc
@@ -157,7 +160,7 @@ endif
# NetBSD/ARM
#
ifeq ($(OS_ARCH),NetBSD)
-ifneq (,$(filter arm% sa110,$(OS_TEST)))
+ifneq (,$(filter arm%,$(TARGET_CPU)))
CPPSRCS := xptcinvoke_arm_netbsd.cpp xptcstubs_arm_netbsd.cpp
endif
endif
@@ -191,7 +194,7 @@ endif
# NetBSD/m68k
#
ifeq ($(OS_ARCH),NetBSD)
-ifneq (,$(filter amiga atari hp300 mac68k mvme68k next68k sun3 sun3x x68k,$(OS_TEST)))
+ifneq (,$(filter m68k,$(TARGET_CPU)))
CPPSRCS := xptcinvoke_netbsd_m68k.cpp xptcstubs_netbsd_m68k.cpp
endif
endif
@@ -274,6 +277,7 @@ 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
+AS := $(CC) -c -x assembler-with-cpp
endif
#
@@ -322,6 +326,13 @@ ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc)
CPPSRCS := xptcinvoke_sparc_netbsd.cpp xptcstubs_sparc_netbsd.cpp
ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s
endif
+#
+# NetBSD/SPARC64
+#
+ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc64)
+CPPSRCS := xptcinvoke_sparc64_netbsd.cpp xptcstubs_sparc64_netbsd.cpp
+ASFILES := xptcinvoke_asm_sparc64_netbsd.s xptcstubs_asm_sparc64_netbsd.s
+endif
#
# Solaris/SPARC
#

View file

@ -0,0 +1,76 @@
$NetBSD: patch-ad,v 1.1.1.1 2006/02/01 13:24:47 ghen 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 2001-09-29 05:12:51.000000000 +0900
+++ ./xpcom/reflect/xptcall/src/md/unix/xptcinvoke_netbsd_m68k.cpp 2004-06-10 22:55:53.000000000 +0900
@@ -132,6 +132,15 @@
}
}
+/*
+ * SYMBOL PREFIX must be "_" for aout symbols and "" for ELF
+ */
+#ifndef __ELF__
+#define SYMBOLPREFIX "_"
+#else
+#define SYMBOLPREFIX
+#endif
+
XPTC_PUBLIC_API(nsresult)
XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
PRUint32 paramCount, nsXPTCVariant* params)
@@ -139,30 +148,30 @@
PRUint32 result;
__asm__ __volatile__(
- "movl %4, sp@-\n\t"
- "movl %3, sp@-\n\t"
- "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"
- "movl %3, sp@-\n\t"
- "movl a0, sp@-\n\t"
- "jbsr _invoke_copy_to_stack\n\t" /* copy params */
- "addl #12, sp\n\t"
- "movl %1, a0\n\t"
- "movl a0@, a1\n\t"
- "movl %2, d0\n\t" /* function index */
- "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"
+ "movl %4, %%sp@-\n\t"
+ "movl %3, %%sp@-\n\t"
+ "jbsr "SYMBOLPREFIX"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"
+ "movl %3, %%sp@-\n\t"
+ "movl %%a0, %%sp@-\n\t"
+ "jbsr "SYMBOLPREFIX"invoke_copy_to_stack\n\t" /* copy params */
+ "addl #12, %%sp\n\t"
+ "movl %1, %%a0\n\t"
+ "movl %%a0@, %%a1\n\t"
+ "movl %2, %%d0\n\t" /* function index */
+ "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 */

View file

@ -0,0 +1,42 @@
$NetBSD: patch-ae,v 1.1.1.1 2006/02/01 13:24:47 ghen 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 2001-09-29 05:12:52.000000000 +0900
+++ ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_netbsd_m68k.cpp 2004-06-10 22:55:55.000000000 +0900
@@ -123,17 +123,27 @@
}
}
+/*
+ * Beware: use % instead of %% for register identifiers in a preprocessor macro
+ * SYMBOL PREFIX must be "_" for aout and "" for ELF
+ */
+#ifndef __ELF__
+#define SYMBOLPREFIX "_"
+#else
+#define SYMBOLPREFIX
+#endif
+
#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" \
+ ".global "SYMBOLPREFIX"Stub"#n"__14nsXPTCStubBase\n\t" \
+SYMBOLPREFIX"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 "SYMBOLPREFIX"PrepareAndDispatch\n\t" \
+ "unlk %a6 \n\t" \
"rts \n\t" \
);

View file

@ -0,0 +1,25 @@
$NetBSD: patch-af,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- security/nss/lib/freebl/unix_rand.c.orig 2005-10-11 01:22:50.000000000 +0200
+++ security/nss/lib/freebl/unix_rand.c
@@ -35,6 +35,7 @@
* ***** END LICENSE BLOCK ***** */
#include <stdio.h>
+#include <fcntl.h>
#include <string.h>
#include <signal.h>
#include <unistd.h>
@@ -694,7 +695,11 @@ safe_popen(char *cmd)
/* dup write-side of pipe to stderr and stdout */
if (p[1] != 1) dup2(p[1], 1);
if (p[1] != 2) dup2(p[1], 2);
- close(0);
+ fd = open("/dev/null", O_RDONLY);
+ if (fd != 0) {
+ dup2(fd, 0);
+ close(fd);
+ }
{
int ndesc = getdtablesize();
for (fd = PR_MIN(65536, ndesc); --fd > 2; close(fd));

View file

@ -0,0 +1,14 @@
$NetBSD: patch-ag,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- extensions/transformiix/source/base/ErrorObserver.h.orig 2004-05-21 12:41:22.000000000 +0200
+++ extensions/transformiix/source/base/ErrorObserver.h
@@ -41,7 +41,8 @@
#include "txCore.h"
#ifdef TX_EXE
-#include <iostream.h>
+#include <iostream>
+using namespace std;
#endif
/**

View file

@ -0,0 +1,49 @@
$NetBSD: patch-ah,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
diff -ru ../Orig/mozilla/gfx/idl/nsIFreeType2.idl ./gfx/idl/nsIFreeType2.idl
--- ../Orig/mozilla/gfx/idl/nsIFreeType2.idl 2004-04-16 10:09:33.000000000 +0900
+++ ./gfx/idl/nsIFreeType2.idl 2004-06-11 00:32:42.000000000 +0900
@@ -76,10 +76,11 @@
native FT_Sfnt_Tag(FT_Sfnt_Tag);
native FT_Size(FT_Size);
-[ptr] native FTC_Image_Desc_p(FTC_Image_Desc);
+[ptr] native FTC_ImageType_p(FTC_ImageType);
native FTC_Face_Requester(FTC_Face_Requester);
native FTC_Font(FTC_Font);
-native FTC_Image_Cache(FTC_Image_Cache);
+native FTC_FaceID(FTC_FaceID);
+native FTC_ImageCache(FTC_ImageCache);
native FTC_Manager(FTC_Manager);
// #ifdef MOZ_SVG
@@ -99,7 +100,7 @@
readonly attribute FT_Library library;
readonly attribute FTC_Manager FTCacheManager;
- readonly attribute FTC_Image_Cache ImageCache;
+ readonly attribute FTC_ImageCache ImageCache;
void doneFace(in FT_Face face);
void doneFreeType(in FT_Library lib);
@@ -115,16 +116,16 @@
void outlineDecompose(in FT_Outline_p outline,
in const_FT_Outline_Funcs_p funcs, in voidPtr p);
void setCharmap(in FT_Face face, in FT_CharMap charmap);
- void imageCacheLookup(in FTC_Image_Cache cache, in FTC_Image_Desc_p desc,
+ void imageCacheLookup(in FTC_ImageCache cache, in FTC_ImageType_p desc,
in FT_UInt gindex, out FT_Glyph glyph);
- void managerLookupSize(in FTC_Manager manager, in FTC_Font font,
- out FT_Face face, out FT_Size size);
+ void managerLookupFace(in FTC_Manager manager, in FTC_FaceID face_id,
+ out FT_Face face);
void managerDone(in FTC_Manager manager);
void managerNew(in FT_Library lib, in FT_UInt max_faces,
in FT_UInt max_sizes, in FT_ULong max_bytes,
in FTC_Face_Requester requester, in FT_Pointer req_data,
out FTC_Manager manager);
- void imageCacheNew(in FTC_Manager manager, out FTC_Image_Cache cache);
+ void imageCacheNew(in FTC_Manager manager, out FTC_ImageCache cache);
/* #ifdef MOZ_SVG */
void glyphTransform(in FT_Glyph glyph, in FT_Matrix_p matrix,
in FT_Vector_p delta);

View file

@ -0,0 +1,62 @@
$NetBSD: patch-ai,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- gfx/src/ps/nsFontMetricsPS.cpp.orig 2005-04-28 10:04:00.000000000 +0200
+++ gfx/src/ps/nsFontMetricsPS.cpp
@@ -1859,10 +1859,10 @@ nsFontPSFreeType::Init(nsITrueTypeFontCa
mPixelSize = NSToIntRound(app2dev * mFont->size);
- mImageDesc.font.face_id = (void*)mEntry;
- mImageDesc.font.pix_width = mPixelSize;
- mImageDesc.font.pix_height = mPixelSize;
- mImageDesc.image_type = 0;
+ mImageDesc->face_id = (FTC_FaceID)&mEntry;
+ mImageDesc->width = mPixelSize;
+ mImageDesc->height = mPixelSize;
+ mImageDesc->flags = 0;
nsresult rv;
mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv);
@@ -1896,7 +1896,7 @@ nsFontPSFreeType::GetWidth(const PRUnich
if (!face)
return 0;
- FTC_Image_Cache iCache;
+ FTC_ImageCache iCache;
nsresult rv = mFt2->GetImageCache(&iCache);
if (NS_FAILED(rv)) {
NS_ERROR("Failed to get Image Cache");
@@ -1934,8 +1934,8 @@ nsFontPSFreeType::getFTFace()
FTC_Manager cManager;
mFt2->GetFTCacheManager(&cManager);
- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font,
- &face, nsnull);
+ nsresult rv = mFt2->ManagerLookupFace(cManager, mImageDesc->face_id,
+ &face);
NS_ASSERTION(rv==0, "failed to get face/size");
if (rv)
return nsnull;
@@ -2379,16 +2379,16 @@ void nsFT2Type1Generator::GeneratePSFont
mEntry->GetFamilyName(fontName);
mEntry->GetStyleName(styleName);
- mImageDesc.font.face_id = (void*)mEntry;
+ mImageDesc->face_id = (FTC_FaceID)&mEntry;
// TT glyph has no relation to size
- mImageDesc.font.pix_width = 16;
- mImageDesc.font.pix_height = 16;
- mImageDesc.image_type = 0;
+ mImageDesc->width = 16;
+ mImageDesc->height = 16;
+ mImageDesc->flags = 0;
FT_Face face = nsnull;
FTC_Manager cManager;
mFt2->GetFTCacheManager(&cManager);
- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font,
- &face, nsnull);
+ nsresult rv = mFt2->ManagerLookupFace(cManager, mImageDesc->face_id,
+ &face);
if (NS_FAILED(rv))
return;

View file

@ -0,0 +1,40 @@
$NetBSD: patch-aj,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- gfx/src/freetype/nsFreeType.h.orig 2005-05-01 19:36:19.000000000 +0200
+++ gfx/src/freetype/nsFreeType.h
@@ -120,13 +120,13 @@ typedef FT_Error (*FT_Outline_Decompose_
typedef FT_Error (*FT_New_Face_t)(FT_Library, const char*, FT_Long, FT_Face*);
typedef FT_Error (*FT_Set_Charmap_t)(FT_Face face, FT_CharMap charmap);
typedef FT_Error (*FTC_Image_Cache_Lookup_t)
- (FTC_Image_Cache, FTC_Image_Desc*, FT_UInt, FT_Glyph*);
-typedef FT_Error (*FTC_Manager_Lookup_Size_t)
- (FTC_Manager, FTC_Font, FT_Face*, FT_Size*);
+ (FTC_ImageCache, FTC_ImageType*, FT_UInt, FT_Glyph*);
+typedef FT_Error (*FTC_Manager_LookupFace_t)
+ (FTC_Manager, FTC_FaceID, FT_Face*);
typedef FT_Error (*FTC_Manager_Done_t)(FTC_Manager);
typedef FT_Error (*FTC_Manager_New_t)(FT_Library, FT_UInt, FT_UInt, FT_ULong,
FTC_Face_Requester, FT_Pointer, FTC_Manager*);
-typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_Image_Cache*);
+typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_ImageCache*);
// #ifdef MOZ_SVG
typedef FT_Error (*FT_Glyph_Transform_t)(FT_Glyph, FT_Matrix*, FT_Vector*);
typedef FT_Error (*FT_Get_Kerning_t)
@@ -181,7 +181,7 @@ protected:
FT_Outline_Decompose_t nsFT_Outline_Decompose;
FT_Set_Charmap_t nsFT_Set_Charmap;
FTC_Image_Cache_Lookup_t nsFTC_Image_Cache_Lookup;
- FTC_Manager_Lookup_Size_t nsFTC_Manager_Lookup_Size;
+ FTC_Manager_LookupFace_t nsFTC_Manager_LookupFace;
FTC_Manager_Done_t nsFTC_Manager_Done;
FTC_Manager_New_t nsFTC_Manager_New;
FTC_Image_Cache_New_t nsFTC_Image_Cache_New;
@@ -229,7 +229,7 @@ protected:
PRLibrary *mSharedLib;
FT_Library mFreeTypeLibrary;
FTC_Manager mFTCacheManager;
- FTC_Image_Cache mImageCache;
+ FTC_ImageCache mImageCache;
static nsHashtable *sFontFamilies;
static nsHashtable *sRange1CharSetNames;

View file

@ -0,0 +1,61 @@
$NetBSD: patch-ak,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- gfx/src/freetype/nsFreeType.cpp.orig 2005-07-13 20:21:10.000000000 +0200
+++ gfx/src/freetype/nsFreeType.cpp
@@ -110,11 +110,11 @@ FtFuncList nsFreeType2::FtFuncs [] = {
{"FT_New_Face", NS_FT2_OFFSET(nsFT_New_Face), PR_TRUE},
{"FT_Outline_Decompose", NS_FT2_OFFSET(nsFT_Outline_Decompose), PR_TRUE},
{"FT_Set_Charmap", NS_FT2_OFFSET(nsFT_Set_Charmap), PR_TRUE},
- {"FTC_Image_Cache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE},
- {"FTC_Manager_Lookup_Size", NS_FT2_OFFSET(nsFTC_Manager_Lookup_Size), PR_TRUE},
+ {"FTC_ImageCache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE},
+ {"FTC_Manager_LookupFace", NS_FT2_OFFSET(nsFTC_Manager_LookupFace), PR_TRUE},
{"FTC_Manager_Done", NS_FT2_OFFSET(nsFTC_Manager_Done), PR_TRUE},
{"FTC_Manager_New", NS_FT2_OFFSET(nsFTC_Manager_New), PR_TRUE},
- {"FTC_Image_Cache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE},
+ {"FTC_ImageCache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE},
// #ifdef MOZ_SVG
{"FT_Glyph_Transform", NS_FT2_OFFSET(nsFT_Glyph_Transform), PR_TRUE},
{"FT_Get_Kerning", NS_FT2_OFFSET(nsFT_Get_Kerning), PR_TRUE},
@@ -288,7 +288,7 @@ nsFreeType2::SetCharmap(FT_Face face, FT
}
NS_IMETHODIMP
-nsFreeType2::ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc *desc,
+nsFreeType2::ImageCacheLookup(FTC_ImageCache cache, FTC_ImageType *desc,
FT_UInt glyphID, FT_Glyph *glyph)
{
// call the FreeType2 function via the function pointer
@@ -297,11 +297,11 @@ nsFreeType2::ImageCacheLookup(FTC_Image_
}
NS_IMETHODIMP
-nsFreeType2::ManagerLookupSize(FTC_Manager manager, FTC_Font font,
- FT_Face *face, FT_Size *size)
+nsFreeType2::ManagerLookupFace(FTC_Manager manager, FTC_FaceID face_id,
+ FT_Face *face)
{
// call the FreeType2 function via the function pointer
- FT_Error error = nsFTC_Manager_Lookup_Size(manager, font, face, size);
+ FT_Error error = nsFTC_Manager_LookupFace(manager, face_id, face);
return error ? NS_ERROR_FAILURE : NS_OK;
}
@@ -326,7 +326,7 @@ nsFreeType2::ManagerNew(FT_Library libra
}
NS_IMETHODIMP
-nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache)
+nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_ImageCache *cache)
{
// call the FreeType2 function via the function pointer
FT_Error error = nsFTC_Image_Cache_New(manager, cache);
@@ -395,7 +395,7 @@ nsFreeType2::SupportsExtFunc(PRBool *res
}
NS_IMETHODIMP
-nsFreeType2::GetImageCache(FTC_Image_Cache *aCache)
+nsFreeType2::GetImageCache(FTC_ImageCache *aCache)
{
*aCache = mImageCache;
return NS_OK;

View file

@ -0,0 +1,22 @@
$NetBSD: patch-al,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- gfx/src/ps/nsFontMetricsPS.h.orig 2005-06-28 20:29:10.000000000 +0200
+++ gfx/src/ps/nsFontMetricsPS.h
@@ -424,7 +424,7 @@ protected:
nsCOMPtr<nsITrueTypeFontCatalogEntry> mFaceID;
nsCOMPtr<nsIFreeType2> mFt2;
PRUint16 mPixelSize;
- FTC_Image_Desc mImageDesc;
+ FTC_ImageType mImageDesc;
nsCString mFontNameBase; // the base name of type 1 (sub) fonts
nscoord mHeight;
@@ -493,7 +493,7 @@ public:
protected:
nsCOMPtr<nsITrueTypeFontCatalogEntry> mEntry;
nsCOMPtr<nsIFreeType2> mFt2;
- FTC_Image_Desc mImageDesc;
+ FTC_ImageType mImageDesc;
};
#endif // MOZ_ENABLE_FREETYPE2
#endif // MOZ_ENABLE_XFT

View file

@ -0,0 +1,14 @@
$NetBSD: patch-an,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
diff -ru ../Orig/mozilla/gfx/src/x11shared/nsFontFreeType.h ./gfx/src/x11shared/nsFontFreeType.h
--- ../Orig/mozilla/gfx/src/x11shared/nsFontFreeType.h 2003-04-23 01:25:13.000000000 +0900
+++ ./gfx/src/x11shared/nsFontFreeType.h 2004-06-10 23:06:35.000000000 +0900
@@ -110,7 +110,7 @@
XImage *GetXImage(PRUint32 width, PRUint32 height);
nsITrueTypeFontCatalogEntry *mFaceID;
PRUint16 mPixelSize;
- FTC_Image_Desc mImageDesc;
+ FTC_ImageType mImageDesc;
nsCOMPtr<nsIFreeType2> mFt2;
};

View file

@ -0,0 +1,76 @@
$NetBSD: patch-ao,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
diff -ru ../Orig/mozilla/gfx/src/x11shared/nsFontFreeType.cpp ./gfx/src/x11shared/nsFontFreeType.cpp
--- ../Orig/mozilla/gfx/src/x11shared/nsFontFreeType.cpp 2003-12-25 17:24:52.000000000 +0900
+++ ./gfx/src/x11shared/nsFontFreeType.cpp 2004-06-10 23:06:38.000000000 +0900
@@ -177,7 +177,7 @@
FTC_Manager mgr;
nsresult rv;
mFt2->GetFTCacheManager(&mgr);
- rv = mFt2->ManagerLookupSize(mgr, &mImageDesc.font, &face, nsnull);
+ rv = mFt2->ManagerLookupFace(mgr, mImageDesc->face_id, &face);
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get face/size");
if (NS_FAILED(rv))
return nsnull;
@@ -191,22 +191,15 @@
PRBool embedded_bimap = PR_FALSE;
mFaceID = aFaceID;
mPixelSize = aPixelSize;
- mImageDesc.font.face_id = (void*)mFaceID;
- mImageDesc.font.pix_width = aPixelSize;
- mImageDesc.font.pix_height = aPixelSize;
- mImageDesc.image_type = 0;
+ mImageDesc->face_id = (FTC_FaceID)&mFaceID;
+ mImageDesc->width = aPixelSize;
+ mImageDesc->height = aPixelSize;
+ mImageDesc->flags = 0;
if (aPixelSize < nsFreeType2::gAntiAliasMinimum) {
- mImageDesc.image_type |= ftc_image_mono;
anti_alias = PR_FALSE;
}
- if (nsFreeType2::gFreeType2Autohinted)
- mImageDesc.image_type |= ftc_image_flag_autohinted;
-
- if (nsFreeType2::gFreeType2Unhinted)
- mImageDesc.image_type |= ftc_image_flag_unhinted;
-
PRUint32 num_embedded_bitmaps, i;
PRInt32* embedded_bitmapheights;
mFaceID->GetEmbeddedBitmapHeights(&num_embedded_bitmaps,
@@ -218,7 +211,6 @@
if (embedded_bitmapheights[i] == aPixelSize) {
embedded_bimap = PR_TRUE;
// unhinted must be set for embedded bitmaps to be used
- mImageDesc.image_type |= ftc_image_flag_unhinted;
break;
}
}
@@ -312,7 +304,7 @@
if (!face)
return NS_ERROR_FAILURE;
- FTC_Image_Cache icache;
+ FTC_ImageCache icache;
mFt2->GetImageCache(&icache);
if (!icache)
return NS_ERROR_FAILURE;
@@ -401,7 +393,7 @@
if (!face)
return 0;
- FTC_Image_Cache icache;
+ FTC_ImageCache icache;
mFt2->GetImageCache(&icache);
if (!icache)
return 0;
@@ -723,7 +715,7 @@
if (y%4==0) (*blendPixelFunc)(sub_image, y, ascent-1, black, 255/2);
#endif
- FTC_Image_Cache icache;
+ FTC_ImageCache icache;
mFt2->GetImageCache(&icache);
if (!icache)
return 0;

View file

@ -0,0 +1,13 @@
$NetBSD: patch-ap,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- security/coreconf/command.mk.orig 2004-04-25 17:02:17.000000000 +0200
+++ security/coreconf/command.mk
@@ -46,7 +46,7 @@ CCF = $(CC) $(CFLAGS)
LINK_DLL = $(LINK) $(OS_DLLFLAGS) $(DLLFLAGS)
LINK_EXE = $(LINK) $(OS_LFLAGS) $(LFLAGS)
NFSPWD = $(NSINSTALL_DIR)/nfspwd
-CFLAGS = $(OPTIMIZER) $(OS_CFLAGS) $(XP_DEFINE) $(DEFINES) $(INCLUDES) \
+CFLAGS += $(OS_CFLAGS) $(XP_DEFINE) $(DEFINES) $(INCLUDES) \
$(XCFLAGS)
RANLIB = echo
TAR = /bin/tar

View file

@ -0,0 +1,13 @@
$NetBSD: patch-aq,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- directory/c-sdk/configure.in.orig 2005-06-14 23:27:33.000000000 +0200
+++ directory/c-sdk/configure.in
@@ -54,7 +54,7 @@ USE_64=
USE_CPLUS=
USE_IPV6=
USE_MDUPDATE=
-_OPTIMIZE_FLAGS=-O
+_OPTIMIZE_FLAGS=
_DEBUG_FLAGS=-g
MOZ_DEBUG=1
MOZ_OPTIMIZE=

View file

@ -0,0 +1,12 @@
$NetBSD: patch-aw,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- widget/src/gtksuperwin/Makefile.in.orig 2004-12-15 06:52:41.000000000 +0100
+++ widget/src/gtksuperwin/Makefile.in
@@ -46,6 +46,7 @@ MODULE = widget
LIBRARY_NAME = gtksuperwin
EXPORT_LIBRARY = 1
LIBXUL_LIBRARY = 1
+MKSHLIB = $(MKCSHLIB)
PACKAGE_FILE = gtksuperwin.pkg

View file

@ -0,0 +1,15 @@
$NetBSD: patch-ax,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- security/coreconf/SunOS5.mk.orig 2004-10-11 04:15:42.000000000 +0200
+++ security/coreconf/SunOS5.mk
@@ -182,6 +182,10 @@ endif
DSO_LDOPTS += -G -h $(notdir $@)
endif
+ifdef LIBRUNPATH
+DSO_LDOPTS += -R$(LIBRUNPATH)
+endif
+
# -KPIC generates position independent code for use in shared libraries.
# (Similarly for -fPIC in case of gcc.)
ifdef NS_USE_GCC

125
seamonkey/patches/patch-ba Normal file
View file

@ -0,0 +1,125 @@
$NetBSD: patch-ba,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- nsprpub/pr/include/md/_netbsd.cfg.orig 2004-04-28 02:33:44.000000000 +0200
+++ nsprpub/pr/include/md/_netbsd.cfg
@@ -48,7 +48,8 @@
#define PR_AF_INET6 24 /* same as AF_INET6 */
-#if defined(__i386__) || defined(__arm32__) || defined(__MIPSEL__)
+#if defined(__i386__) || defined(__arm32__) || defined(__ARMEL__) || \
+ defined(__MIPSEL__)
#define IS_LITTLE_ENDIAN 1
#undef IS_BIG_ENDIAN
@@ -94,7 +95,53 @@
#define PR_ALIGN_OF_DOUBLE 4
#define PR_ALIGN_OF_POINTER 4
-#elif defined(__sparc__) || defined(__MIPSEB__)
+#elif defined(__sparc_v9__)
+
+#undef IS_LITTLE_ENDIAN
+#define IS_BIG_ENDIAN 1
+#define HAVE_LONG_LONG
+#define HAVE_ALIGNED_DOUBLES
+#define HAVE_ALIGNED_LONGLONGS
+
+#define PR_BYTES_PER_BYTE 1
+#define PR_BYTES_PER_SHORT 2
+#define PR_BYTES_PER_INT 4
+#define PR_BYTES_PER_INT64 8
+#define PR_BYTES_PER_LONG 8
+#define PR_BYTES_PER_FLOAT 4
+#define PR_BYTES_PER_DOUBLE 8
+#define PR_BYTES_PER_WORD 8
+#define PR_BYTES_PER_DWORD 8
+#define PR_BYTES_PER_WORD_LOG2 3
+#define PR_BYTES_PER_DWORD_LOG2 3
+
+#define PR_BITS_PER_BYTE 8
+#define PR_BITS_PER_SHORT 16
+#define PR_BITS_PER_INT 32
+#define PR_BITS_PER_INT64 64
+#define PR_BITS_PER_LONG 64
+#define PR_BITS_PER_FLOAT 32
+#define PR_BITS_PER_DOUBLE 64
+#define PR_BITS_PER_WORD 64
+
+#define PR_BITS_PER_BYTE_LOG2 3
+#define PR_BITS_PER_SHORT_LOG2 4
+#define PR_BITS_PER_INT_LOG2 5
+#define PR_BITS_PER_INT64_LOG2 6
+#define PR_BITS_PER_LONG_LOG2 6
+#define PR_BITS_PER_FLOAT_LOG2 5
+#define PR_BITS_PER_DOUBLE_LOG2 6
+#define PR_BITS_PER_WORD_LOG2 6
+
+#define PR_ALIGN_OF_SHORT 2
+#define PR_ALIGN_OF_INT 4
+#define PR_ALIGN_OF_LONG 8
+#define PR_ALIGN_OF_INT64 8
+#define PR_ALIGN_OF_FLOAT 4
+#define PR_ALIGN_OF_DOUBLE 8
+#define PR_ALIGN_OF_POINTER 8
+
+#elif defined(__sparc) || defined(__MIPSEB__) || defined(__ARMEB__)
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
@@ -187,6 +234,55 @@
#define PR_BYTES_PER_WORD_LOG2 3
#define PR_BYTES_PER_DWORD_LOG2 3
+#elif defined(__amd64__)
+#define IS_LITTLE_ENDIAN 1
+#undef IS_BIG_ENDIAN
+#define IS_64
+
+#define PR_BYTES_PER_BYTE 1
+#define PR_BYTES_PER_SHORT 2
+#define PR_BYTES_PER_INT 4
+#define PR_BYTES_PER_INT64 8
+#define PR_BYTES_PER_LONG 8
+#define PR_BYTES_PER_FLOAT 4
+#define PR_BYTES_PER_DOUBLE 8
+#define PR_BYTES_PER_WORD 8
+#define PR_BYTES_PER_DWORD 8
+
+#define PR_BITS_PER_BYTE 8
+#define PR_BITS_PER_SHORT 16
+#define PR_BITS_PER_INT 32
+#define PR_BITS_PER_INT64 64
+#define PR_BITS_PER_LONG 64
+#define PR_BITS_PER_FLOAT 32
+#define PR_BITS_PER_DOUBLE 64
+#define PR_BITS_PER_WORD 64
+
+#define PR_BITS_PER_BYTE_LOG2 3
+#define PR_BITS_PER_SHORT_LOG2 4
+#define PR_BITS_PER_INT_LOG2 5
+#define PR_BITS_PER_INT64_LOG2 6
+#define PR_BITS_PER_LONG_LOG2 6
+#define PR_BITS_PER_FLOAT_LOG2 5
+#define PR_BITS_PER_DOUBLE_LOG2 6
+#define PR_BITS_PER_WORD_LOG2 6
+
+#define PR_ALIGN_OF_SHORT 2
+#define PR_ALIGN_OF_INT 4
+#define PR_ALIGN_OF_LONG 8
+#define PR_ALIGN_OF_INT64 8
+#define PR_ALIGN_OF_FLOAT 4
+#define PR_ALIGN_OF_DOUBLE 8
+#define PR_ALIGN_OF_POINTER 8
+#define PR_ALIGN_OF_WORD 8
+
+#define PR_BYTES_PER_WORD_LOG2 3
+#define PR_BYTES_PER_DWORD_LOG2 3
+
+#define HAVE_LONG_LONG
+#define HAVE_ALIGNED_DOUBLES
+#define HAVE_ALIGNED_LONGLONGS
+
#elif defined(__powerpc__) || defined(__m68k__)
#undef IS_LITTLE_ENDIAN

View file

@ -0,0 +1,26 @@
$NetBSD: patch-bb,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- nsprpub/pr/include/md/_netbsd.h.orig 2004-05-19 17:37:10.000000000 +0200
+++ nsprpub/pr/include/md/_netbsd.h
@@ -44,6 +44,8 @@
#define _PR_SI_ARCHITECTURE "x86"
#elif defined(__alpha__)
#define _PR_SI_ARCHITECTURE "alpha"
+#elif defined(__amd64__)
+#define _PR_SI_ARCHITECTURE "amd64"
#elif defined(__m68k__)
#define _PR_SI_ARCHITECTURE "m68k"
#elif defined(__powerpc__)
@@ -95,6 +97,12 @@
#define _PR_HAVE_GETPROTO_R_INT
#endif
+#if __NetBSD_Version__ >= 106370000
+/* NetBSD 1.6ZK */
+#define _PR_HAVE_GETPROTO_R
+#define _PR_HAVE_GETPROTO_R_INT
+#endif
+
#define USE_SETJMP
#ifndef _PR_PTHREADS

View file

@ -0,0 +1,32 @@
$NetBSD: patch-bm,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
diff -ru ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm_netbsd.cpp ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm_netbsd.cpp
--- ../Orig/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm_netbsd.cpp 2001-09-29 05:12:52.000000000 +0900
+++ ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm_netbsd.cpp 2004-06-10 23:07:04.000000000 +0900
@@ -118,18 +118,23 @@
* so they are contiguous with values passed on the stack, and then calls
* PrepareAndDispatch() to do the dirty work.
*/
+#ifndef __ELF__
+#define SYMBOLPREFIX "_"
+#else
+#define SYMBOLPREFIX
+#endif
#define STUB_ENTRY(n) \
__asm__( \
- ".global _Stub"#n"__14nsXPTCStubBase\n\t" \
-"_Stub"#n"__14nsXPTCStubBase:\n\t" \
+ ".global "SYMBOLPREFIX"Stub"#n"__14nsXPTCStubBase\n\t" \
+SYMBOLPREFIX"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" \
+ "bl "SYMBOLPREFIX"PrepareAndDispatch__FP14nsXPTCStubBaseUiPUi \n\t" \
"ldmea fp, {fp, sp, lr} \n\t" \
"add sp, sp, #12 \n\t" \
"mov pc, lr \n\t" \

View file

@ -0,0 +1,31 @@
$NetBSD: patch-bo,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- nsprpub/configure.in.orig 2006-01-11 00:16:46.000000000 +0100
+++ nsprpub/configure.in
@@ -58,7 +58,7 @@ USE_CPLUS=
USE_IPV6=
USE_MDUPDATE=
_MACOSX_DEPLOYMENT_TARGET=
-_OPTIMIZE_FLAGS=-O
+_OPTIMIZE_FLAGS=
_DEBUG_FLAGS=-g
MOZ_DEBUG=1
MOZ_OPTIMIZE=
@@ -1086,6 +1086,9 @@ tools are selected during the Xcode/Deve
DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
MDCPUCFG_H=_freebsd.cfg
PR_MD_CSRCS=freebsd.c
+ if test "$LIBRUNPATH"; then
+ DSO_LDOPTS="$DSO_LDOPTS -Wl,-R$LIBRUNPATH"
+ fi
;;
*-hpux*)
@@ -1585,6 +1588,7 @@ mips-nec-sysv*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(NETBSD)
AC_DEFINE(HAVE_BSD_FLOCK)
+ AC_DEFINE(HAVE_SOCKLEN_T)
USE_NSPR_THREADS=1
MDCPUCFG_H=_netbsd.cfg
PR_MD_CSRCS=netbsd.c

View file

@ -0,0 +1,13 @@
$NetBSD: patch-bq,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- xpcom/io/nsLocalFileUnix.h.orig 2004-04-18 16:18:14.000000000 +0200
+++ xpcom/io/nsLocalFileUnix.h
@@ -73,7 +73,7 @@
#endif
// so we can statfs on freebsd
-#if defined(__FreeBSD__)
+#if defined(__FreeBSD__) || (defined(__NetBSD__) && !defined(HAVE_STATVFS))
#define HAVE_SYS_STATFS_H
#define STATFS statfs
#include <sys/param.h>

View file

@ -0,0 +1,22 @@
$NetBSD: patch-br,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- nsprpub/pr/src/misc/prnetdb.c.orig 2005-08-18 19:24:38.000000000 +0200
+++ nsprpub/pr/src/misc/prnetdb.c
@@ -2110,7 +2110,17 @@ PR_IMPLEMENT(PRAddrInfo *) PR_GetAddrInf
*/
hints.ai_socktype = SOCK_STREAM;
+/* NetBSD >= 2.99.9 has a thread-safe resolver */
+#if defined(__NetBSD_Version__) && __NetBSD_Version__ < 299000900
+ LOCK_DNS();
+#endif
+
rv = GETADDRINFO(hostname, NULL, &hints, &res);
+
+#if defined(__NetBSD_Version__) && __NetBSD_Version__ < 299000900
+ UNLOCK_DNS();
+#endif
+
if (rv == 0)
return (PRAddrInfo *) res;

View file

@ -0,0 +1,14 @@
$NetBSD: patch-bs,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- config/mkdepend/imakemdep.h.orig 2004-04-20 23:38:14.000000000 +0200
+++ config/mkdepend/imakemdep.h
@@ -440,6 +440,9 @@ char *cpp_argv[ARGUMENTS] = {
# ifdef __i386__
"-D__i386__",
# endif
+#if defined(__amd64__) || defined(__x86_64__)
+ "-D__amd64__ -D__x86_64__",
+# endif
# ifdef __GNUC__
"-traditional",
# endif

179
seamonkey/patches/patch-bu Normal file
View file

@ -0,0 +1,179 @@
$NetBSD: patch-bu,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_unixish_amd64.cpp.orig 2004-05-30 21:38:13.000000000 +0900
+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_unixish_amd64.cpp 2004-05-30 21:37:22.000000000 +0900
@@ -0,0 +1,174 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+// Platform specific code to invoke XPCOM methods on native objects
+
+#include "xptcprivate.h"
+
+// 6 integral parameters are passed in registers
+const PRUint32 GPR_COUNT = 6;
+
+// 8 floating point parameters are passed in SSE registers
+const PRUint32 FPR_COUNT = 8;
+
+// Remember that these 'words' are 64-bit long
+static inline void
+invoke_count_words(PRUint32 paramCount, nsXPTCVariant * s,
+ PRUint32 & nr_gpr, PRUint32 & nr_fpr, PRUint32 & nr_stack)
+{
+ nr_gpr = 1; // skip one GP register for 'that'
+ nr_fpr = 0;
+ nr_stack = 0;
+
+ /* Compute number of eightbytes of class MEMORY. */
+ for (uint32 i = 0; i < paramCount; i++, s++) {
+ if (!s->IsPtrData()
+ && (s->type == nsXPTType::T_FLOAT || s->type == nsXPTType::T_DOUBLE)) {
+ if (nr_fpr < FPR_COUNT)
+ nr_fpr++;
+ else
+ nr_stack++;
+ }
+ else {
+ if (nr_gpr < GPR_COUNT)
+ nr_gpr++;
+ else
+ nr_stack++;
+ }
+ }
+}
+
+static void
+invoke_copy_to_stack(PRUint64 * d, PRUint32 paramCount, nsXPTCVariant * s,
+ PRUint64 * gpregs, double * fpregs)
+{
+ PRUint32 nr_gpr = 1; // skip one GP register for 'that'
+ PRUint32 nr_fpr = 0;
+ PRUint64 value;
+
+ for (uint32 i = 0; i < paramCount; i++, s++) {
+ if (s->IsPtrData())
+ value = (PRUint64) s->ptr;
+ else {
+ switch (s->type) {
+ case nsXPTType::T_FLOAT: break;
+ case nsXPTType::T_DOUBLE: break;
+ case nsXPTType::T_I8: value = s->val.i8; break;
+ case nsXPTType::T_I16: value = s->val.i16; break;
+ case nsXPTType::T_I32: value = s->val.i32; break;
+ case nsXPTType::T_I64: value = s->val.i64; break;
+ case nsXPTType::T_U8: value = s->val.u8; break;
+ case nsXPTType::T_U16: value = s->val.u16; break;
+ case nsXPTType::T_U32: value = s->val.u32; break;
+ case nsXPTType::T_U64: value = s->val.u64; break;
+ case nsXPTType::T_BOOL: value = s->val.b; break;
+ case nsXPTType::T_CHAR: value = s->val.c; break;
+ case nsXPTType::T_WCHAR: value = s->val.wc; break;
+ default: value = (PRUint64) s->val.p; break;
+ }
+ }
+
+ if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) {
+ if (nr_fpr < FPR_COUNT)
+ fpregs[nr_fpr++] = s->val.d;
+ else {
+ *((double *)d) = s->val.d;
+ d++;
+ }
+ }
+ else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
+ if (nr_fpr < FPR_COUNT)
+ // The value in %xmm register is already prepared to
+ // be retrieved as a float. Therefore, we pass the
+ // value verbatim, as a double without conversion.
+ fpregs[nr_fpr++] = s->val.d;
+ else {
+ *((float *)d) = s->val.f;
+ d++;
+ }
+ }
+ else {
+ if (nr_gpr < GPR_COUNT)
+ gpregs[nr_gpr++] = value;
+ else
+ *d++ = value;
+ }
+ }
+}
+
+extern "C"
+XPTC_PUBLIC_API(nsresult)
+XPTC_InvokeByIndex(nsISupports * that, PRUint32 methodIndex,
+ PRUint32 paramCount, nsXPTCVariant * params)
+{
+ PRUint32 nr_gpr, nr_fpr, nr_stack;
+ invoke_count_words(paramCount, params, nr_gpr, nr_fpr, nr_stack);
+
+ // Stack, if used, must be 16-bytes aligned
+ if (nr_stack)
+ nr_stack = (nr_stack + 1) & ~1;
+
+ // Load parameters to stack, if necessary
+ PRUint64 *stack = (PRUint64 *) __builtin_alloca(nr_stack * 8);
+ PRUint64 gpregs[GPR_COUNT];
+ double fpregs[FPR_COUNT];
+ invoke_copy_to_stack(stack, paramCount, params, gpregs, fpregs);
+
+ // Load FPR registers from fpregs[]
+ register double d0 asm("xmm0");
+ register double d1 asm("xmm1");
+ register double d2 asm("xmm2");
+ register double d3 asm("xmm3");
+ register double d4 asm("xmm4");
+ register double d5 asm("xmm5");
+ register double d6 asm("xmm6");
+ register double d7 asm("xmm7");
+
+ switch (nr_fpr) {
+#define ARG_FPR(N) \
+ case N+1: d##N = fpregs[N];
+ ARG_FPR(7);
+ ARG_FPR(6);
+ ARG_FPR(5);
+ ARG_FPR(4);
+ ARG_FPR(3);
+ ARG_FPR(2);
+ ARG_FPR(1);
+ ARG_FPR(0);
+ case 0:;
+#undef ARG_FPR
+ }
+
+ // Load GPR registers from gpregs[]
+ register PRUint64 a0 asm("rdi");
+ register PRUint64 a1 asm("rsi");
+ register PRUint64 a2 asm("rdx");
+ register PRUint64 a3 asm("rcx");
+ register PRUint64 a4 asm("r8");
+ register PRUint64 a5 asm("r9");
+
+ switch (nr_gpr) {
+#define ARG_GPR(N) \
+ case N+1: a##N = gpregs[N];
+ ARG_GPR(5);
+ ARG_GPR(4);
+ ARG_GPR(3);
+ ARG_GPR(2);
+ ARG_GPR(1);
+ case 1: a0 = (PRUint64) that;
+ case 0:;
+#undef ARG_GPR
+ }
+
+ // Ensure that assignments to SSE registers won't be optimized away
+ asm("" ::
+ "x" (d0), "x" (d1), "x" (d2), "x" (d3),
+ "x" (d4), "x" (d5), "x" (d6), "x" (d7));
+
+ // Get pointer to method
+ PRUint64 methodAddress = *((PRUint64 *)that);
+ methodAddress += 8 * methodIndex;
+ methodAddress = *((PRUint64 *)methodAddress);
+
+ typedef PRUint32 (*Method)(PRUint64, PRUint64, PRUint64, PRUint64, PRUint64, PRUint64);
+ PRUint32 result = ((Method)methodAddress)(a0, a1, a2, a3, a4, a5);
+ return result;
+}

211
seamonkey/patches/patch-bv Normal file
View file

@ -0,0 +1,211 @@
$NetBSD: patch-bv,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_unixish_amd64.cpp.orig 2004-05-30 21:38:22.000000000 +0900
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_unixish_amd64.cpp 2004-05-30 21:37:22.000000000 +0900
@@ -0,0 +1,206 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+
+// Implement shared vtbl methods.
+
+#include "xptcprivate.h"
+
+// The Linux/x86-64 ABI passes the first 6 integral parameters and the
+// first 8 floating point parameters in registers (rdi, rsi, rdx, rcx,
+// r8, r9 and xmm0-xmm7), no stack space is allocated for these by the
+// caller. The rest of the parameters are passed in the callers stack
+// area.
+
+const PRUint32 PARAM_BUFFER_COUNT = 16;
+const PRUint32 GPR_COUNT = 6;
+const PRUint32 FPR_COUNT = 8;
+
+// PrepareAndDispatch() is called by SharedStub() and calls the actual method.
+//
+// - 'args[]' contains the arguments passed on stack
+// - 'gpregs[]' contains the arguments passed in integer registers
+// - 'fpregs[]' 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,
+ PRUint64 * args, PRUint64 * gpregs, double *fpregs)
+{
+ 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;
+
+ PRUint64* ap = args;
+ PRUint32 nr_gpr = 1; // skip one GPR register for 'that'
+ PRUint32 nr_fpr = 0;
+ PRUint64 value;
+
+ 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 (nr_fpr < FPR_COUNT)
+ dp->val.d = fpregs[nr_fpr++];
+ else
+ dp->val.d = *(double*) ap++;
+ continue;
+ }
+ else if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
+ if (nr_fpr < FPR_COUNT)
+ // The value in %xmm register is already prepared to
+ // be retrieved as a float. Therefore, we pass the
+ // value verbatim, as a double without conversion.
+ dp->val.d = *(double*) ap++;
+ else
+ dp->val.f = *(float*) ap++;
+ continue;
+ }
+ else {
+ if (nr_gpr < GPR_COUNT)
+ value = gpregs[nr_gpr++];
+ else
+ value = *ap++;
+ }
+
+ if (param.IsOut() || !type.IsArithmetic()) {
+ dp->val.p = (void*) value;
+ continue;
+ }
+
+ switch (type) {
+ case nsXPTType::T_I8: dp->val.i8 = (PRInt8) value; break;
+ case nsXPTType::T_I16: dp->val.i16 = (PRInt16) value; break;
+ case nsXPTType::T_I32: dp->val.i32 = (PRInt32) value; break;
+ case nsXPTType::T_I64: dp->val.i64 = (PRInt64) value; break;
+ case nsXPTType::T_U8: dp->val.u8 = (PRUint8) value; break;
+ case nsXPTType::T_U16: dp->val.u16 = (PRUint16) value; break;
+ case nsXPTType::T_U32: dp->val.u32 = (PRUint32) value; break;
+ case nsXPTType::T_U64: dp->val.u64 = (PRUint64) value; break;
+ case nsXPTType::T_BOOL: dp->val.b = (PRBool) value; break;
+ case nsXPTType::T_CHAR: dp->val.c = (char) value; break;
+ case nsXPTType::T_WCHAR: dp->val.wc = (wchar_t) value; 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;
+}
+
+#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
+// Linux/x86-64 uses gcc >= 3.1
+#define STUB_ENTRY(n) \
+asm(".section \".text\"\n\t" \
+ ".align 2\n\t" \
+ ".if " #n " < 10\n\t" \
+ ".globl _ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \
+ ".type _ZN14nsXPTCStubBase5Stub" #n "Ev,@function\n" \
+ "_ZN14nsXPTCStubBase5Stub" #n "Ev:\n\t" \
+ ".elseif " #n " < 100\n\t" \
+ ".globl _ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \
+ ".type _ZN14nsXPTCStubBase6Stub" #n "Ev,@function\n" \
+ "_ZN14nsXPTCStubBase6Stub" #n "Ev:\n\t" \
+ ".elseif " #n " < 1000\n\t" \
+ ".globl _ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \
+ ".type _ZN14nsXPTCStubBase7Stub" #n "Ev,@function\n" \
+ "_ZN14nsXPTCStubBase7Stub" #n "Ev:\n\t" \
+ ".else\n\t" \
+ ".err \"stub number " #n " >= 1000 not yet supported\"\n\t" \
+ ".endif\n\t" \
+ "movl $" #n ", %eax\n\t" \
+ "jmp SharedStub\n\t" \
+ ".if " #n " < 10\n\t" \
+ ".size _ZN14nsXPTCStubBase5Stub" #n "Ev,.-_ZN14nsXPTCStubBase5Stub" #n "Ev\n\t" \
+ ".elseif " #n " < 100\n\t" \
+ ".size _ZN14nsXPTCStubBase6Stub" #n "Ev,.-_ZN14nsXPTCStubBase6Stub" #n "Ev\n\t" \
+ ".else\n\t" \
+ ".size _ZN14nsXPTCStubBase7Stub" #n "Ev,.-_ZN14nsXPTCStubBase7Stub" #n "Ev\n\t" \
+ ".endif");
+
+// static nsresult SharedStub(PRUint32 methodIndex)
+asm(".section \".text\"\n\t"
+ ".align 2\n\t"
+ ".type SharedStub,@function\n\t"
+ "SharedStub:\n\t"
+ // make room for gpregs (48), fpregs (64)
+ "pushq %rbp\n\t"
+ "movq %rsp,%rbp\n\t"
+ "subq $112,%rsp\n\t"
+ // save GP registers
+ "movq %rdi,-112(%rbp)\n\t"
+ "movq %rsi,-104(%rbp)\n\t"
+ "movq %rdx, -96(%rbp)\n\t"
+ "movq %rcx, -88(%rbp)\n\t"
+ "movq %r8 , -80(%rbp)\n\t"
+ "movq %r9 , -72(%rbp)\n\t"
+ "leaq -112(%rbp),%rcx\n\t"
+ // save FP registers
+ "movsd %xmm0,-64(%rbp)\n\t"
+ "movsd %xmm1,-56(%rbp)\n\t"
+ "movsd %xmm2,-48(%rbp)\n\t"
+ "movsd %xmm3,-40(%rbp)\n\t"
+ "movsd %xmm4,-32(%rbp)\n\t"
+ "movsd %xmm5,-24(%rbp)\n\t"
+ "movsd %xmm6,-16(%rbp)\n\t"
+ "movsd %xmm7, -8(%rbp)\n\t"
+ "leaq -64(%rbp),%r8\n\t"
+ // rdi has the 'self' pointer already
+ "movl %eax,%esi\n\t"
+ "leaq 16(%rbp),%rdx\n\t"
+ "call PrepareAndDispatch\n\t"
+ "leave\n\t"
+ "ret\n\t"
+ ".size SharedStub,.-SharedStub");
+
+#define SENTINEL_ENTRY(n) \
+nsresult nsXPTCStubBase::Sentinel##n() \
+{ \
+ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
+ return NS_ERROR_NOT_IMPLEMENTED; \
+}
+
+#include "xptcstubsdef.inc"
+
+#else
+#error "can't find a compiler to use"
+#endif /* __GNUC__ */

View file

@ -0,0 +1,63 @@
$NetBSD: patch-bw,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp.orig 2005-06-30 22:06:20.000000000 +0200
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp
@@ -187,6 +187,50 @@ __asm__(
* nsresult nsXPTCStubBase::Stub##n()
* Sets register $1 to "methodIndex" and jumps to SharedStub.
*/
+#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
+#define STUB_ENTRY(n) \
+__asm__( \
+"#### Stub"#n" ####\n" \
+".text\n" \
+" .align 5\n" \
+" .if "#n" < 10 \n" \
+" .globl _ZN14nsXPTCStubBase5Stub"#n"Ev\n" \
+" .ent _ZN14nsXPTCStubBase5Stub"#n"Ev\n" \
+"_ZN14nsXPTCStubBase5Stub"#n"Ev:\n" \
+" .frame $30,0,$26,0\n" \
+" ldgp $29,0($27)\n" \
+"$_ZN14nsXPTCStubBase5Stub"#n"Ev..ng:\n" \
+" .prologue 1\n" \
+" lda $1,"#n"\n" \
+" br $31,$SharedStub..ng\n" \
+" .end _ZN14nsXPTCStubBase5Stub"#n"Ev\n" \
+" .elseif "#n" < 100 \n" \
+" .globl _ZN14nsXPTCStubBase6Stub"#n"Ev\n" \
+" .ent _ZN14nsXPTCStubBase6Stub"#n"Ev\n" \
+"_ZN14nsXPTCStubBase6Stub"#n"Ev:\n" \
+" .frame $30,0,$26,0\n" \
+" ldgp $29,0($27)\n" \
+"$_ZN14nsXPTCStubBase6Stub"#n"Ev..ng:\n" \
+" .prologue 1\n" \
+" lda $1,"#n"\n" \
+" br $31,$SharedStub..ng\n" \
+" .end _ZN14nsXPTCStubBase6Stub"#n"Ev\n" \
+" .elseif "#n" < 1000 \n" \
+" .globl _ZN14nsXPTCStubBase7Stub"#n"Ev\n" \
+" .ent _ZN14nsXPTCStubBase7Stub"#n"Ev\n" \
+"_ZN14nsXPTCStubBase7Stub"#n"Ev:\n" \
+" .frame $30,0,$26,0\n" \
+" ldgp $29,0($27)\n" \
+"$_ZN14nsXPTCStubBase7Stub"#n"Ev..ng:\n" \
+" .prologue 1\n" \
+" lda $1,"#n"\n" \
+" br $31,$SharedStub..ng\n" \
+" .end _ZN14nsXPTCStubBase7Stub"#n"Ev\n" \
+" .else\n" \
+" .err \"stub number "#n"> 1000 not yet supported\"\n" \
+" .endif\n" \
+ );
+#else /* G++2.95 ABI */
#define STUB_MANGLED_ENTRY(n, symbol) \
"#### Stub"#n" ####" "\n\t" \
".text" "\n\t" \
@@ -216,6 +260,7 @@ __asm__( \
".err \"Stub"#n" >= 1000 not yet supported.\"" "\n\t" \
".endif" \
);
+#endif
#else /* not G++ V3 ABI */

View file

@ -0,0 +1,84 @@
$NetBSD: patch-bx,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.cpp.orig 2001-09-28 22:12:53.000000000 +0200
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc_netbsd.cpp
@@ -119,8 +119,10 @@ PrepareAndDispatch(nsXPTCStubBase* self,
if ((PRUint32) ap & 4) ap++; // doubles are 8-byte aligned on stack
dp->val.d = *(double*) ap;
ap += 2;
+#if __GXX_ABI_VERSION < 100
if (gpr < GPR_COUNT)
gpr += 2;
+#endif
}
continue;
}
@@ -130,8 +132,10 @@ PrepareAndDispatch(nsXPTCStubBase* self,
else {
dp->val.f = *(float*) ap;
ap += 1;
+#if __GXX_ABI_VERSION < 100
if (gpr < GPR_COUNT)
gpr += 1;
+#endif
}
continue;
}
@@ -195,7 +199,9 @@ PrepareAndDispatch(nsXPTCStubBase* self,
// however, it's quick, dirty, and'll break when the ABI changes on
// us, which is what we want ;-).
-#define STUB_ENTRY(n) \
+#if __GXX_ABI_VERSION < 100
+// gcc-2 version
+# define STUB_ENTRY(n) \
__asm__ ( \
".section \".text\" \n\t" \
".align 2 \n\t" \
@@ -206,6 +212,46 @@ __asm__ (
"li 11,"#n" \n\t" \
"b SharedStub@local \n" \
);
+#else
+// gcc-3 version
+//
+// As G++3 ABI contains the length of the functionname in the mangled
+// name, it is difficult to get a generic assembler mechanism like
+// in the G++ 2.95 case.
+// Create names would be like:
+// _ZN14nsXPTCStubBase5Stub1Ev
+// _ZN14nsXPTCStubBase6Stub12Ev
+// _ZN14nsXPTCStubBase7Stub123Ev
+// _ZN14nsXPTCStubBase8Stub1234Ev
+// etc.
+// Use assembler directives to get the names right...
+
+# define STUB_ENTRY(n) \
+__asm__ ( \
+ ".align 2 \n\t" \
+ ".if "#n" < 10 \n\t" \
+ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
+ \
+ ".elseif "#n" < 100 \n\t" \
+ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
+ \
+ ".elseif "#n" < 1000 \n\t" \
+ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
+ \
+ ".else \n\t" \
+ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \
+ ".endif \n\t" \
+ \
+ "li 11,"#n" \n\t" \
+ "b SharedStub@local \n" \
+);
+#endif
#define SENTINEL_ENTRY(n) \
nsresult nsXPTCStubBase::Sentinel##n() \

View file

@ -0,0 +1,50 @@
$NetBSD: patch-by,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
diff -ru ../Orig/mozilla/layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp ./layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp
--- ../Orig/mozilla/layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp 2004-03-19 10:36:16.000000000 +0900
+++ ./layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp 2004-07-04 22:59:19.000000000 +0900
@@ -155,15 +155,15 @@
static NS_NAMED_LITERAL_STRING(arial, "arial");
nsSVGLibartGlyphMetricsFT::sFontAliases.Put(NS_LITERAL_STRING("helvetica"),
- &arial);
+ (nsDependentString *)&arial);
static NS_NAMED_LITERAL_STRING(courier, "courier new");
nsSVGLibartGlyphMetricsFT::sFontAliases.Put(NS_LITERAL_STRING("courier"),
- &courier);
+ (nsDependentString *)&courier);
static NS_NAMED_LITERAL_STRING(times, "times new roman");
nsSVGLibartGlyphMetricsFT::sFontAliases.Put(NS_LITERAL_STRING("times"),
- &times);
+ (nsDependentString *)&times);
}
void NS_FreeSVGLibartGlyphMetricsFTGlobals()
@@ -440,19 +440,19 @@
return;
}
- FTC_Image_Desc imageDesc;
- imageDesc.font.face_id=(void*)font_data.font_entry.get(); // XXX do we need to addref?
+ FTC_ImageType imageDesc;
+ imageDesc->face_id = (FTC_FaceID)font_data.font_entry.get(); // XXX do we need to addref?
float twipstopixel = GetTwipsToPixels();
float scale = GetPixelScale();
- imageDesc.font.pix_width = (int)((float)(font_data.font.size)*twipstopixel/scale);
- imageDesc.font.pix_height = (int)((float)(font_data.font.size)*twipstopixel/scale);
- imageDesc.image_type |= ftc_image_grays;
+ imageDesc->width = (int)((float)(font_data.font.size)*twipstopixel/scale);
+ imageDesc->height = (int)((float)(font_data.font.size)*twipstopixel/scale);
+ imageDesc->flags = 0;
// get the face
nsresult rv;
FTC_Manager mgr;
nsSVGLibartFreetype::ft2->GetFTCacheManager(&mgr);
- rv = nsSVGLibartFreetype::ft2->ManagerLookupSize(mgr, &imageDesc.font, &mFace, nsnull);
+ rv = nsSVGLibartFreetype::ft2->ManagerLookupFace(mgr, imageDesc->face_id, &mFace);
NS_ASSERTION(mFace, "failed to get face/size");
}

122
seamonkey/patches/patch-bz Normal file
View file

@ -0,0 +1,122 @@
$NetBSD: patch-bz,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_netbsd.s.orig 2001-03-11 18:22:22.000000000 +0100
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc_netbsd.s
@@ -1,27 +1,27 @@
-# -*- 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)
-#
+// -*- 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
@@ -44,23 +44,23 @@
.type SharedStub,@function
SharedStub:
- stwu sp,-112(sp) # room for
- # linkage (8),
- # gprData (32),
- # fprData (64),
- # stack alignment(8)
+ 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 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 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 f1,40(sp) // save FP registers
stfd f2,48(sp)
stfd f3,56(sp)
stfd f4,64(sp)
@@ -69,21 +69,20 @@ SharedStub:
stfd f7,88(sp)
stfd f8,96(sp)
- # r3 has the 'self' pointer already
+ // r3 has the 'self' pointer already
- mr r4,r11 # r4 <= methodIndex selector, passed
- # via r11 in the nsXPTCStubBase::StubXX() call
+ 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 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
+ addi r6,sp,8 // r6 <= gprData
+ addi r7,sp,40 // r7 <= fprData
- bl PrepareAndDispatch@local # Go!
+ bl PrepareAndDispatch@local // Go!
- lwz r0,116(sp) # restore LR
+ lwz r0,116(sp) // restore LR
mtlr r0
- la sp,112(sp) # clean up the stack
+ la sp,112(sp) // clean up the stack
blr
-

166
seamonkey/patches/patch-ca Normal file
View file

@ -0,0 +1,166 @@
$NetBSD: patch-ca,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_netbsd.s.orig 2001-03-11 18:22:17.000000000 +0100
+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc_netbsd.s
@@ -1,27 +1,28 @@
-# -*- 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)
-#
+// -*- 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
@@ -42,38 +43,38 @@
.globl XPTC_InvokeByIndex
.type XPTC_InvokeByIndex,@function
-#
-# XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
-# PRUint32 paramCount, nsXPTCVariant* params)
-#
+//
+// 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
+ 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
+ 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
+ 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 )
+ stwux r9,sp,r0 // reserve stack space 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)
+ bl invoke_copy_to_stack@local // (args, paramCount, params, gpregs, fpregs)
- lfd f1,32(r30) # load FP registers with method parameters
+ lfd f1,32(r30) // load FP registers with method parameters
lfd f2,40(r30)
lfd f3,48(r30)
lfd f4,56(r30)
@@ -82,18 +83,18 @@ XPTC_InvokeByIndex:
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 r3,8(r31) // r3 <= that
+ lwz r4,12(r31) // r4 <= methodIndex
+ lwz r5,0(r3) // r5 <= vtable ( == *that )
+#if !((__GNUC__ == 3 && __GNUC_MINOR__ < 2) || __GXX_ABI_VERSION >= 100) // G++ pre-V3 ABI is like that of AIX under NetBSD
+ slwi r4,r4,3 // convert to offset ( *= 8 )
+ addi r4,r4,8 // skip garbage before vtable
+#else
+ slwi r4,r4,2 // convert to offset ( *= 4 )
+#endif
+ lwzx r0,r5,r4 // r0 <= methodpointer ( == vtable + offset )
- lwz r4,4(r30) # load GP regs with method parameters
+ lwz r4,4(r30) // load GP regs with method parameters
lwz r5,8(r30)
lwz r6,12(r30)
lwz r7,16(r30)
@@ -101,13 +102,13 @@ XPTC_InvokeByIndex:
lwz r9,24(r30)
lwz r10,28(r30)
- mtlr r0 # copy methodpointer to LR
- blrl # call method
+ mtlr r0 // copy methodpointer to LR
+ blrl // call method
- lwz r30,16(r31) # restore r30 & r31
+ lwz r30,16(r31) // restore r30 & r31
lwz r31,20(r31)
- lwz r11,0(sp) # clean up the stack
+ lwz r11,0(sp) // clean up the stack
lwz r0,4(r11)
mtlr r0
mr sp,r11

View file

@ -0,0 +1,26 @@
$NetBSD: patch-cb,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_netbsd.cpp.orig 2001-09-28 22:12:52.000000000 +0200
+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc_netbsd.cpp
@@ -104,8 +104,10 @@ invoke_copy_to_stack(PRUint32* d,
if ((PRUint32) d & 4) d++; // doubles are 8-byte aligned on stack
*((double*) d) = s->val.d;
d += 2;
+#if __GXX_ABI_VERSION < 100
if (gpr < GPR_COUNT)
gpr += 2;
+#endif
}
}
else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
@@ -114,8 +116,10 @@ invoke_copy_to_stack(PRUint32* d,
else {
*((float*) d) = s->val.f;
d += 1;
+#if __GXX_ABI_VERSION < 100
if (gpr < GPR_COUNT)
gpr += 1;
+#endif
}
}
else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64

View file

@ -0,0 +1,84 @@
$NetBSD: patch-cg,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- extensions/transformiix/source/base/Double.cpp.orig 2004-06-17 02:12:42.000000000 +0200
+++ extensions/transformiix/source/base/Double.cpp
@@ -49,6 +49,38 @@
* Utility class for doubles
*/
+#if defined(INFINITY) && defined(NAN)
+double Double::NaN()
+{
+ return NAN;
+}
+
+double Double::PositiveInfinity()
+{
+ return INFINITY;
+}
+
+double Double::NegativeInfinity()
+{
+ return -INFINITY;
+}
+
+MBool Double::isInfinite(double aDbl)
+{
+ return isinf(aDbl);
+}
+
+MBool Double::isNaN(double aDbl)
+{
+ return isnan(aDbl);
+}
+
+MBool Double::isNeg(double aDbl)
+{
+ return aDbl<0.0;
+}
+#else /* pre INFINITY C environment */
+
//A trick to handle IEEE floating point exceptions on FreeBSD - E.D.
#ifdef __FreeBSD__
#include <ieeefp.h>
@@ -128,9 +160,20 @@ const PRUint32 infMask[2] = {0, TX_DO
const PRUint32 negInfMask[2] = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT};
#endif
-const double Double::NaN = *((double*)nanMask);
-const double Double::POSITIVE_INFINITY = *((double*)infMask);
-const double Double::NEGATIVE_INFINITY = *((double*)negInfMask);
+double Double::NaN()
+{
+ return *((double*)nanMask);
+}
+
+double Double::PositiveInfinity()
+{
+ return *((double*)infMask);
+}
+
+double Double::NegativeInfinity()
+{
+ return *((double*)negInfMask);
+}
/*
* Determines whether the given double represents positive or negative
@@ -158,6 +201,7 @@ MBool Double::isNeg(double aDbl)
{
return (TX_DOUBLE_HI32(aDbl) & TX_DOUBLE_HI32_SIGNBIT) != 0;
}
+#endif /* C environment has INFINITY and NAN */
/*
* Converts the given String to a double, if the String value does not
@@ -245,7 +289,7 @@ public:
{
if (mState == eIllegal || mBuffer.IsEmpty() ||
(mBuffer.Length() == 1 && mBuffer[0] == '.')) {
- return Double::NaN;
+ return Double::NaN();
}
return mSign*PR_strtod(mBuffer.get(), 0);
}

View file

@ -0,0 +1,17 @@
$NetBSD: patch-ch,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- extensions/transformiix/source/base/txCore.h.orig 2004-05-26 13:54:37.000000000 +0200
+++ extensions/transformiix/source/base/txCore.h
@@ -65,9 +65,9 @@ public:
/**
* Useful constants
*/
- static const double NaN;
- static const double POSITIVE_INFINITY;
- static const double NEGATIVE_INFINITY;
+ static double NaN();
+ static double PositiveInfinity();
+ static double NegativeInfinity();
/**
* Determines whether the given double represents positive or negative

View file

@ -0,0 +1,13 @@
$NetBSD: patch-ci,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- extensions/transformiix/source/xpath/FunctionCall.cpp.orig 2005-01-29 12:07:14.000000000 +0100
+++ extensions/transformiix/source/xpath/FunctionCall.cpp
@@ -105,7 +105,7 @@ double FunctionCall::evaluateToNumber(Ex
nsRefPtr<txAExprResult> exprResult;
nsresult rv = aExpr->evaluate(aContext, getter_AddRefs(exprResult));
if (NS_FAILED(rv))
- return Double::NaN;
+ return Double::NaN();
return exprResult->numberValue();
}

View file

@ -0,0 +1,32 @@
$NetBSD: patch-cj,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- extensions/transformiix/source/xpath/MultiplicativeExpr.cpp.orig 2004-06-17 02:12:43.000000000 +0200
+++ extensions/transformiix/source/xpath/MultiplicativeExpr.cpp
@@ -79,22 +79,22 @@ MultiplicativeExpr::evaluate(txIEvalCont
#if defined(XP_WIN)
/* XXX MSVC miscompiles such that (NaN == 0) */
if (Double::isNaN(rightDbl))
- result = Double::NaN;
+ result = Double::NaN();
else
#endif
if (leftDbl == 0 || Double::isNaN(leftDbl))
- result = Double::NaN;
+ result = Double::NaN();
else if (Double::isNeg(leftDbl) ^ Double::isNeg(rightDbl))
- result = Double::NEGATIVE_INFINITY;
+ result = Double::NegativeInfinity();
else
- result = Double::POSITIVE_INFINITY;
+ result = Double::PositiveInfinity();
}
else
result = leftDbl / rightDbl;
break;
case MODULUS:
if (rightDbl == 0) {
- result = Double::NaN;
+ result = Double::NaN();
}
else {
#if defined(XP_WIN)

View file

@ -0,0 +1,19 @@
$NetBSD: patch-ck,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- extensions/transformiix/source/xslt/functions/txFormatNumberFunctionCall.cpp.orig 2004-06-17 02:12:44.000000000 +0200
+++ extensions/transformiix/source/xslt/functions/txFormatNumberFunctionCall.cpp
@@ -114,12 +114,12 @@ txFormatNumberFunctionCall::evaluate(txI
return aContext->recycler()->getStringResult(format->mNaN, aResult);
}
- if (value == Double::POSITIVE_INFINITY) {
+ if (value == Double::PositiveInfinity()) {
return aContext->recycler()->getStringResult(format->mInfinity,
aResult);
}
- if (value == Double::NEGATIVE_INFINITY) {
+ if (value == Double::NegativeInfinity()) {
nsAutoString res;
res.Append(format->mMinusSign);
res.Append(format->mInfinity);

View file

@ -0,0 +1,31 @@
$NetBSD: patch-cl,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- extensions/transformiix/source/xslt/txStylesheetCompileHandlers.cpp.orig 2005-01-24 11:50:39.000000000 +0100
+++ extensions/transformiix/source/xslt/txStylesheetCompileHandlers.cpp
@@ -279,7 +279,7 @@ getNumberAttr(txStylesheetAttr* aAttribu
txStylesheetCompilerState& aState,
double& aNumber)
{
- aNumber = Double::NaN;
+ aNumber = Double::NaN();
txStylesheetAttr* attr = nsnull;
nsresult rv = getStyleAttr(aAttributes, aAttrCount, kNameSpaceID_None,
aName, aRequired, &attr);
@@ -500,7 +500,7 @@ txFnStartLREStylesheet(PRInt32 aNamespac
NS_ENSURE_SUCCESS(rv, rv);
txExpandedName nullExpr;
- double prio = Double::NaN;
+ double prio = Double::NaN();
nsAutoPtr<txPattern> match(new txRootPattern());
NS_ENSURE_TRUE(match, NS_ERROR_OUT_OF_MEMORY);
@@ -1060,7 +1060,7 @@ txFnStartTemplate(PRInt32 aNamespaceID,
aState, mode);
NS_ENSURE_SUCCESS(rv, rv);
- double prio = Double::NaN;
+ double prio = Double::NaN();
rv = getNumberAttr(aAttributes, aAttrCount, txXSLTAtoms::priority,
PR_FALSE, aState, prio);
NS_ENSURE_SUCCESS(rv, rv);

View file

@ -0,0 +1,13 @@
$NetBSD: patch-cm,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- extensions/transformiix/source/xslt/txXSLTPatterns.cpp.orig 2005-01-15 22:30:39.000000000 +0100
+++ extensions/transformiix/source/xslt/txXSLTPatterns.cpp
@@ -98,7 +98,7 @@ nsresult txUnionPattern::addPattern(txPa
double txUnionPattern::getDefaultPriority()
{
NS_ASSERTION(0, "Don't call getDefaultPriority on txUnionPattern");
- return Double::NaN;
+ return Double::NaN();
}
/*

View file

@ -0,0 +1,85 @@
$NetBSD: patch-cn,v 1.1.1.1 2006/02/01 13:24:47 ghen Exp $
--- extensions/transformiix/source/xpath/XFormsFunctionCall.cpp.orig 2005-08-04 23:15:37.000000000 +0200
+++ extensions/transformiix/source/xpath/XFormsFunctionCall.cpp
@@ -104,7 +104,7 @@ XFormsFunctionCall::evaluate(txIEvalCont
res = (res/i);
}
else {
- res = Double::NaN;
+ res = Double::NaN();
}
return aContext->recycler()->getNumberResult(res, aResult);
}
@@ -159,7 +159,7 @@ XFormsFunctionCall::evaluate(txIEvalCont
NS_ENSURE_SUCCESS(rv, rv);
PRInt32 result = 0;
- double res = Double::NaN;
+ double res = Double::NaN();
nsresult rv = xformsService->GetDaysFromDateTime(date, &result);
if (NS_SUCCEEDED(rv)) {
res = result;
@@ -345,7 +345,7 @@ XFormsFunctionCall::evaluate(txIEvalCont
getter_AddRefs(nodes));
NS_ENSURE_SUCCESS(rv, rv);
- double res = Double::NaN;
+ double res = Double::NaN();
PRInt32 i;
for (i = 0; i < nodes->size(); ++i) {
double test;
@@ -353,7 +353,7 @@ XFormsFunctionCall::evaluate(txIEvalCont
txXPathNodeUtils::appendNodeValue(nodes->get(i), resultStr);
test = Double::toDouble(resultStr);
if (Double::isNaN(test)) {
- res = Double::NaN;
+ res = Double::NaN();
break;
}
if (test > res || i == 0) {
@@ -373,7 +373,7 @@ XFormsFunctionCall::evaluate(txIEvalCont
getter_AddRefs(nodes));
NS_ENSURE_SUCCESS(rv, rv);
- double res = Double::NaN;
+ double res = Double::NaN();
PRInt32 i;
for (i = 0; i < nodes->size(); ++i) {
double test;
@@ -381,7 +381,7 @@ XFormsFunctionCall::evaluate(txIEvalCont
txXPathNodeUtils::appendNodeValue(nodes->get(i), resultStr);
test = Double::toDouble(resultStr);
if (Double::isNaN(test)) {
- res = Double::NaN;
+ res = Double::NaN();
break;
}
if ((test < res) || (i==0)) {
@@ -404,7 +404,7 @@ XFormsFunctionCall::evaluate(txIEvalCont
NS_ENSURE_SUCCESS(rv, rv);
PRInt32 result = 0;
- double res = Double::NaN;
+ double res = Double::NaN();
nsresult rv = xformsService->GetMonths(duration, &result);
if (NS_SUCCEEDED(rv)) {
res = result;
@@ -480,7 +480,7 @@ XFormsFunctionCall::evaluate(txIEvalCont
// up the chain
return rv;
}
- res = Double::NaN;
+ res = Double::NaN();
}
return aContext->recycler()->getNumberResult(res, aResult);
@@ -505,7 +505,7 @@ XFormsFunctionCall::evaluate(txIEvalCont
// up the chain
return rv;
}
- res = Double::NaN;
+ res = Double::NaN();
}
return aContext->recycler()->getNumberResult(res, aResult);