Update to 1.1.1 that can build with GCC 4.2.x.

This commit is contained in:
Jeremy Messenger 2008-06-01 17:22:03 +00:00
parent f8c1bbb814
commit 1d30d4c11a
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=214134
20 changed files with 851 additions and 262 deletions

View File

@ -7,66 +7,55 @@
#
PORTNAME= flock
DISTVERSION= 0.7
PORTREVISION= 7
DISTVERSION= 1.1.1
CATEGORIES= www
MASTER_SITES= ${MASTER_SITE_LOCAL}
# http://ftp.osuosl.org/pub/${PORTNAME}/source/${PORTVERSION}/:flock
MASTER_SITE_SUBDIR= ahze
DISTFILES= ${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} \
clucene-flock-3${EXTRACT_SUFX}
MASTER_SITES= http://ftp.osuosl.org/pub/${PORTNAME}/releases/${PORTVERSION}/ \
http://flock.vo.llnwd.net/o23/archive/${PORTNAME}/releases/${PORTVERSION}/
DISTNAME= ${PORTNAME}-${PORTVERSION}-source
MAINTAINER= gnome@FreeBSD.org
COMMENT= Web browser based on the browser portion of Mozilla
LIB_DEPENDS= GraphicsMagick.1:${PORTSDIR}/graphics/GraphicsMagick \
jasper.4:${PORTSDIR}/graphics/jasper
BUILD_DEPENDS= nss>=3.11.2:${PORTSDIR}/security/nss
LIB_DEPENDS= clucene.0:${PORTSDIR}/textproc/clucene \
avcodec.1:${PORTSDIR}/multimedia/ffmpeg
MOZILLA_NAME= Flock
CLUCENE_WRKSRC= ${WRKDIR}/clucene
WRKSRC?= ${WRKDIR}/${PORTNAME}/mozilla
WANT_GNOME= yes
ALL_TARGET= default
CONFIGURE_ENV= LOCALBASE=${LOCALBASE}
EXTRA_CFLAGS= -O2
HAS_CONFIGURE= yes
USE_BZIP2= yes
USE_GMAKE= yes
USE_GCC= 3.4+
WANT_PERL= yes
CPPFLAGS= -I${WRKDIR}/local/include
LDFLAGS= -L${WRKDIR}/local/lib
GECKO_PLIST_PRE_FILES= lib/${MOZILLA}/chrome/icons/default/default.xpm
GECKO_PLIST_PRE_DIRS= lib/${MOZILLA}/chrome/icons/default lib/${MOZILLA}/chrome/icons
FLOCK_ICON= ${MOZILLA}.xpm
FLOCK_ICON= ${MOZILLA}.xpm
FLOCK_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/icons/default.xpm
CONFIGURE_ARGS= --with-clucene-prefix=${WRKDIR}/local
MOZ_OPTIONS= --enable-application=browser \
MOZ_OPTIONS= --with-default-mozilla-five-home=${PREFIX}/lib/${MOZILLA} \
--enable-application=browser \
--enable-system-cairo \
--enable-official-branding \
--enable-canvas
--enable-canvas \
--with-system-nss \
--with-clucene-prefix=${LOCALBASE} \
--with-ffmpeg-prefix=${LOCALBASE}
SYSTEM_PREFS= ${FAKEDIR}/lib/${MOZILLA}/defaults/pref/${PORTNAME}.js
MOZ_PIS_SCRIPTS= moz_pis_S50cleanhome
OPTIONS= SMB "Enable smb:// URI support using gnomevfs" off
.include <bsd.port.pre.mk>
.if ${OSVERSION} >= 700042
BROKEN= Does not compile with GCC 4.2
.endif
GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 pthread | ${SED} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE}
.if ${ARCH} == "amd64"
BROKEN= Does not build on amd64
.endif
.if ${ARCH}=="alpha" || ${ARCH}=="ia64"
IGNORE= core dumps on ${ARCH}
.endif
.if ${ARCH}=="sparc64" && ${OSVERSION} < 601101
IGNORE= core dumps on ${ARCH}, need kern.osreldate>=601101
.if ${ARCH} == "sparc64" && ${OSVERSION} < 601101
IGNORE= does not run, update to 6.2-RELEASE or newer
.endif
.if ${OSVERSION} >= 600000
@ -78,13 +67,14 @@ post-extract::
-e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|' \
<${FILESDIR}/flock.desktop.in >${WRKDIR}/${MOZILLA}.desktop
pre-build:
@(cd ${CLUCENE_WRKSRC} && ${SETENV} LIBS="-lcompat" \
CC="${CC}" CXX="${CXX}" \
CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" \
INSTALL="/usr/bin/install -c ${_BINOWNGRP}" \./configure --prefix=${WRKDIR}/local --disable-shared)
@(cd ${CLUCENE_WRKSRC}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} all)
@(cd ${CLUCENE_WRKSRC}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} install)
post-patch:
${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS:C/-pthread/${GECKO_PTHREAD_LIBS}/}|' \
${WRKSRC}/storage/build/Makefile.in
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
${WRKSRC}/security/manager/ssl/src/Makefile.in
@${FIND} ${WRKSRC} -name all.js | ${XARGS} ${REINPLACE_CMD} -e \
'/accessibility.typeaheadfind.enablesound/s/true/false/ ; \
/dom.disable_window_open_feature.toolbar/s/false/true/'
pre-install:
${ECHO_CMD} 'share/applications/${MOZILLA}.desktop' >> ${PLIST}

View File

@ -1,6 +1,3 @@
MD5 (flock-0.7.tar.bz2) = cadaa412cdcc238672d1e1382d426c8f
SHA256 (flock-0.7.tar.bz2) = e278d1860f066e7cf7606f140ef73e98191c0ded947fdae5b1272d5cedb28729
SIZE (flock-0.7.tar.bz2) = 43048787
MD5 (clucene-flock-3.tar.bz2) = 46eb9b11e8b77b7c7deb1fbfc5636c97
SHA256 (clucene-flock-3.tar.bz2) = 991c9f20c800f0bd22f2a721cefc7c5933fb954479feddfc3c13d1972823bfba
SIZE (clucene-flock-3.tar.bz2) = 2076764
MD5 (flock-1.1.1-source.tar.bz2) = 3e6b6ab91547fb4fe255d770565972e2
SHA256 (flock-1.1.1-source.tar.bz2) = 56c95e88c93f13430eebed5696cd5b3b6e7b255a542514f78c8590472ee69b02
SIZE (flock-1.1.1-source.tar.bz2) = 53537038

View File

@ -7,7 +7,7 @@
-#ifdef __alpha__
-fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP;
-#else
+#if defined(__i386__)
+#if defined(__i386__) || defined(__amd64__)
fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP|FP_X_DNML;
+#else
+fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP;

View File

@ -0,0 +1,10 @@
--- allmakefiles.sh.orig 2008-04-23 15:36:40.000000000 -0500
+++ allmakefiles.sh 2008-04-23 15:36:48.000000000 -0500
@@ -956,7 +956,6 @@
flock/Makefile
flock/app/Makefile
flock/app/profile/extensions/Makefile
-flock/app/profile/extensions/{b01bf10c-302a-11da-b67b-000d60ca027b}/Makefile
flock/base/Makefile
flock/base/bindings/Makefile
flock/base/blog/Makefile

View File

@ -1,14 +1,13 @@
--- config/rules.mk.orig Tue Aug 26 13:28:47 2003
+++ config/rules.mk Sun Feb 1 15:11:41 2004
@@ -444,7 +444,11 @@
--- config/rules.mk.orig Thu Sep 14 14:07:03 2006
+++ config/rules.mk Wed Oct 18 11:00:09 2006
@@ -442,9 +442,7 @@
endif
ifeq ($(OS_ARCH),FreeBSD)
ifdef IS_COMPONENT
+ifneq (,$(filter alpha ia64,$(OS_TEST)))
-ifdef IS_COMPONENT
-EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
-endif
+EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc
+else
EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
+endif
endif
endif
ifeq ($(OS_ARCH),NetBSD)

View File

@ -1,15 +1,24 @@
--- configure.orig Tue Oct 4 02:01:48 2005
+++ configure Wed Nov 23 11:07:17 2005
@@ -10016,7 +10016,7 @@
--- configure.orig 2008-04-23 11:21:20.000000000 -0500
+++ configure 2008-04-23 11:24:50.000000000 -0500
@@ -1057,7 +1057,7 @@
MOZJPEG=62
MOZPNG=10217
-MOZZLIB=1.2.3
+MOZZLIB=1.2.2
NSPR_VERSION=4
NSS_VERSION=3
@@ -10353,7 +10353,7 @@
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
-LIBS="-liconv $LIBS"
+LIBS="-L$LOCALBASE/lib -liconv $LIBS"
+LIBS=-L$LOCALBASE/lib "-liconv $LIBS"
cat > conftest.$ac_ext <<EOF
#line 10022 "configure"
#line 10359 "configure"
#include "confdefs.h"
@@ -10047,7 +10047,7 @@
@@ -10384,7 +10384,7 @@
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
@ -18,16 +27,16 @@
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for libiconv in -liconv""... $ac_c" 1>&6
@@ -10057,7 +10057,7 @@
@@ -10394,7 +10394,7 @@
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
-LIBS="-liconv $LIBS"
+LIBS="-L$LOCALBASE/lib -liconv $LIBS"
cat > conftest.$ac_ext <<EOF
#line 10063 "configure"
#line 10400 "configure"
#include "confdefs.h"
@@ -10088,7 +10088,7 @@
@@ -10425,7 +10425,7 @@
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6

View File

@ -0,0 +1,16 @@
--- embedding/base/nsEmbedAPI.cpp.orig 2007-10-09 20:00:30.000000000 -0400
+++ embedding/base/nsEmbedAPI.cpp 2007-10-09 20:01:45.000000000 -0400
@@ -53,7 +53,12 @@ static PRBool sRegistryIniti
static PRUint32 sInitCounter = 0;
#define HACK_AROUND_THREADING_ISSUES
-//#define HACK_AROUND_NONREENTRANT_INITXPCOM
+#ifdef __FreeBSD__
+#include <sys/param.h>
+#if __FreeBSD_version < 700042
+#define HACK_AROUND_NONREENTRANT_INITXPCOM
+#endif
+#endif
#ifdef HACK_AROUND_NONREENTRANT_INITXPCOM
// XXX hack class to clean up XPCOM when this module is unloaded

View File

@ -0,0 +1,125 @@
--- flock/app/mozilla.in.orig Mon Apr 4 15:08:49 2005
+++ flock/app/mozilla.in Wed Jun 1 14:47:45 2005
@@ -49,51 +49,83 @@
## the mozilla-bin binary to work.
##
+#
+# MOZ_PIS, "Mozilla Plugable Init Scripts"
+# MOZ_PIS_ is the name space used
+# These variables and there meaning are specified in
+# mozilla/xpfe/bootstrap/init.d/README
moz_pis_startstop_scripts()
{
- MOZ_USER_DIR="%MOZ_USER_DIR%"
- # MOZ_PIS_ is the name space for "Mozilla Plugable Init Scripts"
- # These variables and there meaning are specified in
- # mozilla/xpfe/bootstrap/init.d/README
- MOZ_PIS_API=2
- MOZ_PIS_MOZBINDIR="${dist_bin}"
- MOZ_PIS_SESSION_PID="$$"
- MOZ_PIS_USER_DIR="${MOZ_USER_DIR}"
- export MOZ_PIS_API MOZ_PIS_MOZBINDIR MOZ_PIS_SESSION_PID MOZ_PIS_USER_DIR
-
- case "${1}" in
- "start")
- for curr_pis in "${dist_bin}/init.d"/S* "${HOME}/${MOZ_USER_DIR}/init.d"/S* ; do
- if [ -x "${curr_pis}" ] ; then
- case "${curr_pis}" in
- *.sh) . "${curr_pis}" ;;
- *) "${curr_pis}" "start" ;;
- esac
- fi
- done
- ;;
- "stop")
- for curr_pis in "${HOME}/${MOZ_USER_DIR}/init.d"/K* "${dist_bin}/init.d"/K* ; do
- if [ -x "${curr_pis}" ] ; then
- case "${curr_pis}" in
- *.sh) . "${curr_pis}" ;;
- *) "${curr_pis}" "stop" ;;
- esac
- fi
- done
- ;;
- *)
- echo 1>&2 "$0: Internal error in moz_pis_startstop_scripts."
- exit 1
- ;;
- esac
+ MOZ_PIS_API=2
+ MOZ_PIS_MOZBINDIR="${dist_bin}"
+ MOZ_PIS_SESSION_PID="$$"
+ MOZ_PIS_USER_DIR="${MOZ_USER_DIR}"
+ export MOZ_PIS_API MOZ_PIS_MOZBINDIR MOZ_PIS_SESSION_PID MOZ_PIS_USER_DIR
+
+ case "${1}" in
+ "start")
+ for curr_pis in "${MOZ_PIS_MOZBINDIR}/init.d"/S* \
+ "${HOME}/${MOZ_PIS_USER_DIR}/init.d"/S*; do
+ if [ -x "${curr_pis}" ]; then
+ case "${curr_pis}" in
+ *.sh)
+ . "${curr_pis}"
+ ;;
+ *)
+ ${curr_pis} "start"
+ ;;
+ esac
+ fi
+ done
+ ;;
+ "stop")
+ for curr_pis in "${MOZ_PIS_MOZBINDIR}/init.d"/K* \
+ "${HOME}/${MOZ_PIS_USER_DIR}/init.d"/K*; do
+ if [ -x "${curr_pis}" ]; then
+ case "${curr_pis}" in
+ *.sh)
+ . "${curr_pis}"
+ ;;
+ *)
+ ${curr_pis} "stop"
+ ;;
+ esac
+ fi
+ done
+ ;;
+ *)
+ echo "$0: Internal error in moz_pis_startstop_scripts." 1>&2
+ exit 1
+ ;;
+ esac
}
-#uncomment for debugging
+# uncomment for debugging
#set -x
-moz_libdir=%MOZAPPDIR%
-MRE_HOME=%MREDIR%
+#
+# variables
+#
+#location="new-tab"
+#MOZILLA_UILOCALE="en-US"
+#MOZILLA_UIREGION="US"
+
+#
+# working definitions
+#
+MOZ_USER_DIR="%MOZ_USER_DIR%"
+moz_libdir="%MOZAPPDIR%"
+MRE_HOME="%MREDIR%"
+
+debugging= # set the debugging level
+use_openFile="yes" # use openFile() for file/dir
+here=`pwd`
+
+if [ ! -d "${MRE_HOME}" ]; then
+ # use moz_libdir as MRE_HOME
+ MRE_HOME="${moz_libdir}"
+fi
+export MRE_HOME
# Use run-mozilla.sh in the current dir if it exists
# If not, then start resolving symlinks until we find run-mozilla.sh

View File

@ -1,26 +0,0 @@
--- gfx/src/ps/nsFontMetricsPS.cpp.orig Fri Dec 15 01:42:25 2006
+++ gfx/src/ps/nsFontMetricsPS.cpp Fri Dec 15 01:41:20 2006
@@ -1037,8 +1037,10 @@ nsFontPSXft::Init(nsXftEntry* aEntry,
nsFontPSXft::~nsFontPSXft()
{
- if (mEntry->mFace)
+ if (mEntry->mFace) {
FT_Done_Face(mEntry->mFace);
+ mEntry->mFace = nsnull;
+ }
if (FT_Done_FreeType(mFreeTypeLibrary))
return;
@@ -2327,8 +2329,10 @@ nsXftType1Generator::Init(nsXftEntry* aE
nsXftType1Generator::~nsXftType1Generator()
{
- if (mEntry->mFace)
+ if (mEntry->mFace) {
FT_Done_Face(mEntry->mFace);
+ mEntry->mFace = nsnull;
+ }
if (FT_Done_FreeType(mFreeTypeLibrary))
return;

View File

@ -0,0 +1,10 @@
--- js/src/Makefile.in.orig Wed Oct 18 09:23:09 2006
+++ js/src/Makefile.in Wed Oct 18 09:27:27 2006
@@ -244,6 +244,7 @@
endif
LDFLAGS += $(pathsubst -l%,$(NSPR_STATIC_PATH)/%.a,$(NSPR_LIBS))
+LDFLAGS += -lc
# BeOS and HP-UX do not require the extra linking of "-lm"
ifeq (,$(filter BeOS HP-UX WINNT WINCE OpenVMS,$(OS_ARCH)))

View File

@ -0,0 +1,28 @@
--- js/src/jsnum.c.orig Sun Nov 5 18:37:07 2006
+++ js/src/jsnum.c Sun Nov 5 18:42:31 2006
@@ -45,6 +45,9 @@
#if defined(XP_WIN) || defined(XP_OS2)
#include <float.h>
#endif
+#if defined(__FreeBSD__)
+#include <sys/param.h>
+#endif
#include <locale.h>
#include <limits.h>
#include <math.h>
@@ -532,7 +535,15 @@ static jsdouble NaN;
#else
+#if defined(__FreeBSD__) && __FreeBSD_version >= 601000
+#include <fenv.h>
+#define FIX_FPU() (fedisableexcept(FE_ALL_EXCEPT))
+
+#else
+
#define FIX_FPU() ((void)0)
+
+#endif /* defined(__FreeBSD__) && __FreeBSD_version >= 503000 */
#endif

View File

@ -0,0 +1,14 @@
--- js/src/liveconnect/nsISecureLiveconnect.h.orig 2007-10-09 20:03:00.000000000 -0400
+++ js/src/liveconnect/nsISecureLiveconnect.h 2007-10-09 20:03:50.000000000 -0400
@@ -51,7 +51,11 @@
#include "nsIFactory.h"
#include "jni.h"
+#if JS_BYTES_PER_WORD == 8
+typedef jlong jsobject;
+#else
typedef jint jsobject;
+#endif
class nsISecureLiveconnect : public nsISupports {
public:

View File

@ -1,19 +1,3 @@
--- js/src/Makefile.in Thu Aug 4 22:26:52 2005
+++ js/src/Makefile.in Thu Aug 4 23:02:32 2005
@@ -148,5 +148,4 @@
endif
-FDLIBM_LIBRARY = fdlibm/$(LIB_PREFIX)fdm.$(LIB_SUFFIX)
JSMATH_PRELINK = jsmathtemp.o
JS_SAFE_ARENA = 1
@@ -320,7 +319,4 @@
endif
@$(RM) -f $(JSMATH_PRELINK)
-else
-# Create dependency so we build fdlibm
-jsmath.o: $(FDLIBM_LIBRARY) Makefile.in
endif
--- js/Makefile.in Sun Mar 23 14:36:00 2003
+++ js/Makefile.in Thu Aug 4 23:08:06 2005
@@ -46,5 +46,5 @@

View File

@ -1,20 +0,0 @@
--- gfx/src/gtk/mozilla-decoder.cpp.orig 2005-08-18 22:41:26.000000000 -0400
+++ gfx/src/gtk/mozilla-decoder.cpp 2005-08-18 22:38:01.000000000 -0400
@@ -40,7 +40,7 @@
#define PANGO_ENABLE_ENGINE
#include "mozilla-decoder.h"
-#include <pango/pangoxft.h>
+#include <pango/pangocairo.h>
#include <pango/pangofc-fontmap.h>
#include <pango/pangofc-font.h>
#include <gdk/gdkx.h>
@@ -208,7 +208,7 @@
}
}
- pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(pango_xft_get_font_map(GDK_DISPLAY(),gdk_x11_get_default_screen())),
+ pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(pango_cairo_font_map_get_default()),
mozilla_find_decoder,
NULL,
NULL);

View File

@ -1,6 +1,6 @@
--- security/coreconf/FreeBSD.mk.orig Wed Mar 26 20:17:25 2003
+++ security/coreconf/FreeBSD.mk Sun Nov 21 22:59:49 2004
@@ -43,8 +43,12 @@
--- security/coreconf/FreeBSD.mk.orig Mon Sep 25 18:26:23 2006
+++ security/coreconf/FreeBSD.mk Mon Sep 25 18:27:03 2006
@@ -45,8 +45,12 @@
ifeq ($(OS_TEST),alpha)
CPU_ARCH = alpha
else
@ -13,16 +13,12 @@
OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
@@ -71,7 +75,11 @@
@@ -73,7 +77,7 @@
DLL_SUFFIX = so.1.0
endif
-MKSHLIB = $(CC) $(DSO_LDOPTS)
+ifneq (,$(filter alpha ia64,$(OS_TEST)))
+MKSHLIB = $(CC) -Wl,-Bsymbolic -lc $(DSO_LDOPTS) -o $@
+else
+MKSHLIB = $(CC) -Wl,-Bsymbolic $(DSO_LDOPTS) -o $@
+endif
ifdef MAPFILE
# Add LD options to restrict exported symbols to those in the map file
MKSHLIB += -Wl,--version-script,$(MAPFILE)
endif

View File

@ -0,0 +1,10 @@
--- security/manager/ssl/src/nsNSSComponent.cpp.orig Mon May 29 23:10:54 2006
+++ security/manager/ssl/src/nsNSSComponent.cpp Mon May 29 23:12:22 2006
@@ -110,6 +110,7 @@
#include "nss.h"
#include "pk11func.h"
#include "ssl.h"
+#define NSS_ENABLE_ECC 1
#include "sslproto.h"
#include "secmod.h"
#include "sechash.h"

View File

@ -0,0 +1,10 @@
--- storage/build/Makefile.in.orig Tue Feb 21 11:18:56 2006
+++ storage/build/Makefile.in Sun Nov 5 16:16:06 2006
@@ -77,6 +77,7 @@
$(EXTRA_DSO_LIBS) \
$(MOZ_COMPONENT_LIBS) \
$(MOZ_JS_LIBS) \
+ %%PTHREAD_LIBS%% \
$(NULL)
include $(topsrcdir)/config/rules.mk

View File

@ -7,27 +7,34 @@
-
ifndef MOZ_NATIVE_JPEG
tier_1_dirs += jpeg
--- security/manager/Makefile.in Mon Mar 28 19:56:36 2005
+++ security/manager/Makefile.in Tue Aug 2 09:02:50 2005
@@ -37,16 +37,7 @@
--- security/manager/Makefile.in.orig Tue Mar 28 14:36:54 2006
+++ security/manager/Makefile.in Tue Mar 28 14:40:29 2006
@@ -54,22 +54,13 @@
SSL3_LIB \
SOFTOKEN3_LIB \
SOFTOKEN3_CHK \
- LOADABLE_ROOT_MODULE \
HAVE_FREEBL_MODULES \
HAVE_FREEBL_LIBS \
HAVE_FREEBL_LIBS_32 \
HAVE_FREEBL_LIBS_32INT64 \
HAVE_FREEBL_LIBS_64 \
$(NULL)
-LOADABLE_ROOT_MODULE = $(DLL_PREFIX)nssckbi$(DLL_SUFFIX)
-
-LOADABLE_ROOT_MODULE = $(DLL_PREFIX)nssckbi$(DLL_SUFFIX)
endif
-NSS3_LIB = $(DLL_PREFIX)nss3$(DLL_SUFFIX)
-SMIME3_LIB = $(DLL_PREFIX)smime3$(DLL_SUFFIX)
-SSL3_LIB = $(DLL_PREFIX)ssl3$(DLL_SUFFIX)
-SOFTOKEN3_LIB = $(DLL_PREFIX)softokn3$(DLL_SUFFIX)
-SOFTOKEN3_CHK = $(DLL_PREFIX)softokn3.chk
-
ifneq (,$(filter SunOS HP-UX,$(OS_ARCH)))
ifeq (,$(filter i86pc ia64,$(OS_TEST)))
@@ -132,9 +123,4 @@
# Default
HAVE_FREEBL_LIBS = 1
@@ -217,11 +208,6 @@
.nss.cleaned: .nss.checkout
ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
- $(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
-ifndef SKIP_CHK
@ -35,35 +42,17 @@
- $(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
-endif
touch $@
endif
@@ -153,43 +139,4 @@
ifeq ($(OS_ARCH),WINNT)
cd $(DIST)/lib; cp -f $(LIB_PREFIX)dbm$(MOZ_BITS).$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
-else
- cd $(DIST)/lib; cp -f $(LIB_PREFIX)mozdbm_s.$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX); $(RANLIB) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
-endif
@@ -248,47 +234,6 @@
cd $(DIST)/lib; cp -f $(LIB_PREFIX)mozdbm_s.$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX); $(RANLIB) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
endif
ifndef MOZ_NATIVE_NSS
- $(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS)
-ifndef SKIP_CHK
- $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS)
- $(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS)
-endif
-ifndef DISABLE_DIST_GRE
- $(INSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(GRE_DIST)
-ifndef SKIP_CHK
- $(INSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(GRE_DIST)
-endif
- $(INSTALL) -m 755 $(DIST)/lib/$(SOFTOKEN3_LIB) $(GRE_DIST)
- $(INSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(GRE_DIST)
- $(INSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(GRE_DIST)
- $(INSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(GRE_DIST)
-ifdef HAVE_FREEBL_MODULES
- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_PURE32_CHK) $(GRE_DIST)
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_PURE32_MODULE) $(GRE_DIST)
- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_HYBRID_CHK) $(GRE_DIST)
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_HYBRID_MODULE) $(GRE_DIST)
-endif
-endif
-ifndef _SKIP_OLD_GRE_INSTALL
- $(INSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DIST)/bin
-ifndef SKIP_CHK
- $(INSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(DIST)/bin
@ -72,17 +61,41 @@
- $(INSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(DIST)/bin
- $(INSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(DIST)/bin
- $(INSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(DIST)/bin
-ifdef HAVE_FREEBL_MODULES
- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_PURE32_CHK) $(DIST)/bin
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_PURE32_MODULE) $(DIST)/bin
- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_HYBRID_CHK) $(DIST)/bin
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_HYBRID_MODULE) $(DIST)/bin
-ifdef HAVE_FREEBL_LIBS
-ifndef SKIP_CHK
- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_CHK) $(DIST)/bin
-endif
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_LIB) $(DIST)/bin
-endif
-ifdef HAVE_FREEBL_LIBS_32
-ifndef SKIP_CHK
- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32INT_CHK) $(DIST)/bin
- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32FPU_CHK) $(DIST)/bin
-endif
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32INT_LIB) $(DIST)/bin
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32FPU_LIB) $(DIST)/bin
-endif
-ifdef HAVE_FREEBL_LIBS_32INT64
-ifndef SKIP_CHK
- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_32INT64_CHK) $(DIST)/bin
-endif
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_32INT64_LIB) $(DIST)/bin
-endif
-ifdef HAVE_FREEBL_LIBS_64
-ifndef SKIP_CHK
- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_64INT_CHK) $(DIST)/bin
- $(INSTALL) -m 644 $(DIST)/lib/$(FREEBL_64FPU_CHK) $(DIST)/bin
-endif
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_64INT_LIB) $(DIST)/bin
- $(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_64FPU_LIB) $(DIST)/bin
-endif
endif
$(MAKE) -C boot $@
@@ -200,18 +147,4 @@
$(MAKE) -C ssl $@
@@ -299,42 +244,6 @@
install::
ifndef MOZ_NATIVE_NSS
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DESTDIR)$(mozappdir)
-ifndef SKIP_CHK
- $(SYSINSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(DESTDIR)$(mozappdir)
@ -91,88 +104,71 @@
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(NSS3_LIB) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(SSL3_LIB) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(SMIME3_LIB) $(DESTDIR)$(mozappdir)
-ifdef HAVE_FREEBL_MODULES
- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_PURE32_CHK) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_PURE32_MODULE) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_HYBRID_CHK) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_HYBRID_MODULE) $(DESTDIR)$(mozappdir)
-ifdef HAVE_FREEBL_LIBS
-ifndef SKIP_CHK
- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_CHK) $(DESTDIR)$(mozappdir)
-endif
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_LIB) $(DESTDIR)$(mozappdir)
-endif
-ifdef HAVE_FREEBL_LIBS_32
-ifndef SKIP_CHK
- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_32INT_CHK) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_32FPU_CHK) $(DESTDIR)$(mozappdir)
-endif
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_32INT_LIB) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_32FPU_LIB) $(DESTDIR)$(mozappdir)
-endif
-ifdef HAVE_FREEBL_LIBS_32INT64
-ifndef SKIP_CHK
- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_32INT64_CHK) $(DESTDIR)$(mozappdir)
-endif
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_32INT64_LIB) $(DESTDIR)$(mozappdir)
-endif
-ifdef HAVE_FREEBL_LIBS_64
-ifndef SKIP_CHK
- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_64INT_CHK) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_64FPU_CHK) $(DESTDIR)$(mozappdir)
-endif
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_64INT_LIB) $(DESTDIR)$(mozappdir)
- $(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_64FPU_LIB) $(DESTDIR)$(mozappdir)
-endif
endif
$(MAKE) -C boot $@
$(MAKE) -C ssl $@
@@ -227,9 +160,4 @@
@@ -351,12 +260,6 @@
$(MAKE) -C pki $@
endif
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
ifndef MOZ_NATIVE_NSS
- $(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
- $(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
-ifndef SKIP_CHK
- $(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) clean
- $(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
-endif
echo-requires-recursive::
--- security/manager/ssl/src/Makefile.in Wed Jan 7 08:36:51 2004
+++ security/manager/ssl/src/Makefile.in Tue Aug 2 09:13:07 2005
@@ -117,5 +117,5 @@
# Use local includes because they are inserted before INCLUDES
# so that Mozilla's nss.h is used, not glibc's
-LOCAL_INCLUDES += -I$(DIST)/public/nss \
+LOCAL_INCLUDES += -I$(LOCALBASE)/include/nss/nss \
$(NULL)
--- config/config.mk Tue Oct 12 00:11:11 2004
+++ config/config.mk Tue Aug 2 09:19:18 2005
@@ -170,5 +170,4 @@
NSS_LIBS = \
$(LIBS_DIR) \
- $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
-lsmime3 \
-lssl3 \
@@ -189,11 +188,5 @@
endif
-NSS_DEP_LIBS = \
- $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
- $(DIST)/lib/$(DLL_PREFIX)smime3$(DLL_SUFFIX) \
- $(DIST)/lib/$(DLL_PREFIX)ssl3$(DLL_SUFFIX) \
- $(DIST)/lib/$(DLL_PREFIX)nss3$(DLL_SUFFIX) \
- $(DIST)/lib/$(DLL_PREFIX)softokn3$(DLL_SUFFIX) \
- $(NULL)
+NSS_DEP_LIBS =
echo-requires-recursive::
--- security/manager/ssl/src/Makefile.in.orig Mon Aug 14 19:22:52 2006
+++ security/manager/ssl/src/Makefile.in Thu Aug 31 15:17:20 2006
@@ -124,19 +124,19 @@
pipboot \
$(NULL)
MOZ_UNICHARUTIL_LIBS = $(DIST)/lib/$(LIB_PREFIX)unicharutil_s.$(LIB_SUFFIX)
--- security/manager/ssl/src/nsNSSComponent.cpp Thu Apr 22 15:48:30 2004
+++ security/manager/ssl/src/nsNSSComponent.cpp Thu Aug 4 16:44:27 2005
@@ -88,4 +88,8 @@
}
-EXTRA_DEPS = $(NSS_DEP_LIBS)
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <errno.h>
+
#ifdef PR_LOGGING
PRLogModuleInfo* gPIPNSSLog = nsnull;
@@ -406,4 +410,5 @@
const char *possible_ckbi_locations[] = {
NS_GRE_DIR,
+ NS_UNIX_LIB_DIR,
NS_XPCOM_CURRENT_PROCESS_DIR
};
@@ -419,5 +424,5 @@
}
DEFINES += -DNSS_ENABLE_ECC
- char *fullModuleName = nsnull;
+ char *fullModuleName;
#ifdef XP_MAC
nsCAutoString nativePath;
@@ -431,4 +436,12 @@
fullModuleName = PR_GetLibraryName(processDir.get(), "nssckbi");
#endif
+ if (fullModuleName == nsnull)
+ continue;
+ struct stat sb;
+ if (stat(fullModuleName, &sb)) {
+ if (errno != ENOENT)
+ perror(fullModuleName);
+ continue;
+ }
/* If a module exists with the same name, delete it. */
NS_ConvertUCS2toUTF8 modNameUTF8(modName);
# Use local includes because they are inserted before INCLUDES
# so that Mozilla's nss.h is used, not glibc's
-LOCAL_INCLUDES += $(NSS_CFLAGS)
+LOCAL_INCLUDES += -I%%LOCALBASE%%/include/nss/nss
EXTRA_DSO_LDOPTS += \
$(MOZ_UNICHARUTIL_LIBS) \
$(MOZ_COMPONENT_LIBS) \
$(MOZ_JS_LIBS) \
$(NSS_LIBS) \
+ $(LOCAL_INCLUDES) \
$(NULL)
include $(topsrcdir)/config/rules.mk

View File

@ -1,18 +0,0 @@
--- widget/src/gtk2/nsDragService.cpp.nograb 2007-01-16 21:26:49.000000000 -0500
+++ widget/src/gtk2/nsDragService.cpp 2007-01-16 21:27:04.000000000 -0500
@@ -799,7 +799,6 @@
void
nsDragService::GetTargetDragData(GdkAtom aFlavor)
{
- gtk_grab_add(mHiddenWidget);
PR_LOG(sDragLm, PR_LOG_DEBUG, ("getting data flavor %d\n", aFlavor));
PR_LOG(sDragLm, PR_LOG_DEBUG, ("mLastWidget is %p and mLastContext is %p\n",
mTargetWidget, mTargetDragContext));
@@ -817,7 +816,6 @@
gtk_main_iteration();
}
PR_LOG(sDragLm, PR_LOG_DEBUG, ("finished inner iteration\n"));
- gtk_grab_remove(mHiddenWidget);
}
void

View File

@ -0,0 +1,459 @@
--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_freebsd_alpha.cpp.orig Tue May 27 01:37:25 2003
+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_freebsd_alpha.cpp Tue May 27 01:37:00 2003
@@ -0,0 +1,184 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * 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 the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the NPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the NPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/* Platform specific code to invoke XPCOM methods on native objects */
+
+/* contributed by Glen Nakamura <glen.nakamura@usa.net> */
+
+#include "xptcprivate.h"
+
+/* Prototype specifies unmangled function name and disables unused warning */
+static void
+invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s)
+__asm__("invoke_copy_to_stack") __attribute__((unused));
+
+static void
+invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s)
+{
+ const PRUint8 NUM_ARG_REGS = 6-1; // -1 for "this" pointer
+
+ for(PRUint32 i = 0; i < paramCount; i++, d++, s++)
+ {
+ if(s->IsPtrData())
+ {
+ *d = (PRUint64)s->ptr;
+ continue;
+ }
+ switch(s->type)
+ {
+ case nsXPTType::T_I8 : *d = (PRUint64)s->val.i8; break;
+ case nsXPTType::T_I16 : *d = (PRUint64)s->val.i16; break;
+ case nsXPTType::T_I32 : *d = (PRUint64)s->val.i32; break;
+ case nsXPTType::T_I64 : *d = (PRUint64)s->val.i64; break;
+ case nsXPTType::T_U8 : *d = (PRUint64)s->val.u8; break;
+ case nsXPTType::T_U16 : *d = (PRUint64)s->val.u16; break;
+ case nsXPTType::T_U32 : *d = (PRUint64)s->val.u32; break;
+ case nsXPTType::T_U64 : *d = (PRUint64)s->val.u64; break;
+ case nsXPTType::T_FLOAT :
+ if(i < NUM_ARG_REGS)
+ {
+ // convert floats to doubles if they are to be passed
+ // via registers so we can just deal with doubles later
+ union { PRUint64 u64; double d; } t;
+ t.d = (double)s->val.f;
+ *d = t.u64;
+ }
+ else
+ // otherwise copy to stack normally
+ *d = (PRUint64)s->val.u32;
+ break;
+ case nsXPTType::T_DOUBLE : *d = (PRUint64)s->val.u64; break;
+ case nsXPTType::T_BOOL : *d = (PRUint64)s->val.b; break;
+ case nsXPTType::T_CHAR : *d = (PRUint64)s->val.c; break;
+ case nsXPTType::T_WCHAR : *d = (PRUint64)s->val.wc; break;
+ default:
+ // all the others are plain pointer types
+ *d = (PRUint64)s->val.p;
+ break;
+ }
+ }
+}
+
+/*
+ * XPTC_PUBLIC_API(nsresult)
+ * XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
+ * PRUint32 paramCount, nsXPTCVariant* params, void* vt)
+ */
+__asm__(
+ "#### XPTC_InvokeByIndex ####\n"
+".text\n\t"
+ ".align 5\n\t"
+ ".globl XPTC_InvokeByIndex\n\t"
+ ".ent XPTC_InvokeByIndex\n"
+"XPTC_InvokeByIndex:\n\t"
+ ".frame $15,32,$26,0\n\t"
+ ".mask 0x4008000,-32\n\t"
+ "ldgp $29,0($27)\n"
+"$XPTC_InvokeByIndex..ng:\n\t"
+ "subq $30,32,$30\n\t"
+ "stq $26,0($30)\n\t"
+ "stq $15,8($30)\n\t"
+ "bis $30,$30,$15\n\t"
+ ".prologue 1\n\t"
+
+ /*
+ * Allocate enough stack space to hold the greater of 6 or "paramCount"+1
+ * parameters. (+1 for "this" pointer) Room for at least 6 parameters
+ * is required for storage of those passed via registers.
+ */
+
+ "bis $31,5,$2\n\t" /* count = MAX(5, "paramCount") */
+ "cmplt $2,$18,$1\n\t"
+ "cmovne $1,$18,$2\n\t"
+ "s8addq $2,16,$1\n\t" /* room for count+1 params (8 bytes each) */
+ "bic $1,15,$1\n\t" /* stack space is rounded up to 0 % 16 */
+ "subq $30,$1,$30\n\t"
+
+ "stq $16,0($30)\n\t" /* save "that" (as "this" pointer) */
+ "stq $17,16($15)\n\t" /* save "methodIndex" */
+
+ "addq $30,8,$16\n\t" /* pass stack pointer */
+ "bis $18,$18,$17\n\t" /* pass "paramCount" */
+ "bis $19,$19,$18\n\t" /* pass "params" */
+ "bsr $26,$invoke_copy_to_stack..ng\n\t" /* call invoke_copy_to_stack */
+
+ /*
+ * Copy the first 6 parameters to registers and remove from stack frame.
+ * Both the integer and floating point registers are set for each parameter
+ * except the first which is the "this" pointer. (integer only)
+ * The floating point registers are all set as doubles since the
+ * invoke_copy_to_stack function should have converted the floats.
+ */
+ "ldq $16,0($30)\n\t" /* integer registers */
+ "ldq $17,8($30)\n\t"
+ "ldq $18,16($30)\n\t"
+ "ldq $19,24($30)\n\t"
+ "ldq $20,32($30)\n\t"
+ "ldq $21,40($30)\n\t"
+ "ldt $f17,8($30)\n\t" /* floating point registers */
+ "ldt $f18,16($30)\n\t"
+ "ldt $f19,24($30)\n\t"
+ "ldt $f20,32($30)\n\t"
+ "ldt $f21,40($30)\n\t"
+
+ "addq $30,48,$30\n\t" /* remove params from stack */
+
+ /*
+ * Call the virtual function with the constructed stack frame.
+ */
+ "bis $16,$16,$1\n\t" /* load "this" */
+ "ldq $2,16($15)\n\t" /* load "methodIndex" */
+ "ldq $1,0($1)\n\t" /* load vtable */
+#if 0
+ "s8addq $2,16,$2\n\t" /* vtable index = "methodIndex" * 8 + 16 */
+#else
+ "mulq $2, 8, $2\n\t"
+ "addq $2, 0, $2\n\t" /* vtable index = "methodIndex" * 16 + 24 */
+#endif
+ "addq $1,$2,$1\n\t"
+ "ldq $27,0($1)\n\t" /* load address of function */
+ "jsr $26,($27),0\n\t" /* call virtual function */
+ "ldgp $29,0($26)\n\t"
+
+ "bis $15,$15,$30\n\t"
+ "ldq $26,0($30)\n\t"
+ "ldq $15,8($30)\n\t"
+ "addq $30,32,$30\n\t"
+ "ret $31,($26),1\n\t"
+ ".end XPTC_InvokeByIndex"
+ );
+
--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_freebsd_alpha.cpp.orig Tue May 27 01:37:30 2003
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_freebsd_alpha.cpp Tue May 27 01:37:04 2003
@@ -0,0 +1,269 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: NPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * 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 the Initial Developer are Copyright (C) 1999
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the NPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the NPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/* Implement shared vtbl methods. */
+
+/* contributed by Glen Nakamura <glen.nakamura@usa.net> */
+
+#include <sys/types.h>
+#include <machine/cpu.h>
+#include "xptcprivate.h"
+
+/* Prototype specifies unmangled function name and disables unused warning */
+static nsresult
+PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint64* args)
+__asm__("PrepareAndDispatch") __attribute__((unused));
+
+static nsresult
+PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint64* args)
+{
+ const PRUint8 PARAM_BUFFER_COUNT = 16;
+ const PRUint8 NUM_ARG_REGS = 6-1; // -1 for "this" pointer
+
+ 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");
+
+ // args[0] to args[NUM_ARG_REGS] hold floating point register values
+ PRUint64* ap = args + NUM_ARG_REGS;
+ for(i = 0; i < paramCount; i++, ap++)
+ {
+ const nsXPTParamInfo& param = info->GetParam(i);
+ const nsXPTType& type = param.GetType();
+ nsXPTCMiniVariant* dp = &dispatchParams[i];
+
+ if(param.IsOut() || !type.IsArithmetic())
+ {
+ dp->val.p = (void*) *ap;
+ continue;
+ }
+ // else
+ switch(type)
+ {
+ case nsXPTType::T_I8 : dp->val.i8 = (PRInt8) *ap; break;
+ case nsXPTType::T_I16 : dp->val.i16 = (PRInt16) *ap; break;
+ case nsXPTType::T_I32 : dp->val.i32 = (PRInt32) *ap; break;
+ case nsXPTType::T_I64 : dp->val.i64 = (PRInt64) *ap; break;
+ case nsXPTType::T_U8 : dp->val.u8 = (PRUint8) *ap; break;
+ case nsXPTType::T_U16 : dp->val.u16 = (PRUint16) *ap; break;
+ case nsXPTType::T_U32 : dp->val.u32 = (PRUint32) *ap; break;
+ case nsXPTType::T_U64 : dp->val.u64 = (PRUint64) *ap; break;
+ case nsXPTType::T_FLOAT :
+ if(i < NUM_ARG_REGS)
+ {
+ // floats passed via registers are stored as doubles
+ // in the first NUM_ARG_REGS entries in args
+ dp->val.u64 = (PRUint64) args[i];
+ dp->val.f = (float) dp->val.d; // convert double to float
+ }
+ else
+ dp->val.u32 = (PRUint32) *ap;
+ break;
+ case nsXPTType::T_DOUBLE :
+ // doubles passed via registers are also stored
+ // in the first NUM_ARG_REGS entries in args
+ dp->val.u64 = (i < NUM_ARG_REGS) ? args[i] : *ap;
+ break;
+ case nsXPTType::T_BOOL : dp->val.b = (PRBool) *ap; break;
+ case nsXPTType::T_CHAR : dp->val.c = (char) *ap; break;
+ case nsXPTType::T_WCHAR : dp->val.wc = (PRUnichar) *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;
+}
+
+/*
+ * SharedStub()
+ * Collects arguments and calls PrepareAndDispatch. The "methodIndex" is
+ * passed to this function via $1 to preserve the argument registers.
+ */
+__asm__(
+ "#### SharedStub ####\n"
+".text\n\t"
+ ".align 5\n\t"
+ ".ent SharedStub\n"
+"SharedStub:\n\t"
+ ".frame $30,96,$26,0\n\t"
+ ".mask 0x4000000,-96\n\t"
+ "ldgp $29,0($27)\n"
+"$SharedStub..ng:\n\t"
+ "subq $30,96,$30\n\t"
+ "stq $26,0($30)\n\t"
+ ".prologue 1\n\t"
+
+ /*
+ * Store arguments passed via registers to the stack.
+ * Floating point registers are stored as doubles and converted
+ * to floats in PrepareAndDispatch if necessary.
+ */
+ "stt $f17,16($30)\n\t" /* floating point registers */
+ "stt $f18,24($30)\n\t"
+ "stt $f19,32($30)\n\t"
+ "stt $f20,40($30)\n\t"
+ "stt $f21,48($30)\n\t"
+ "stq $17,56($30)\n\t" /* integer registers */
+ "stq $18,64($30)\n\t"
+ "stq $19,72($30)\n\t"
+ "stq $20,80($30)\n\t"
+ "stq $21,88($30)\n\t"
+
+ /*
+ * Call PrepareAndDispatch function.
+ */
+ "bis $1,$1,$17\n\t" /* pass "methodIndex" */
+ "addq $30,16,$18\n\t" /* pass "args" */
+ "bsr $26,$PrepareAndDispatch..ng\n\t"
+
+ "ldq $26,0($30)\n\t"
+ "addq $30,96,$30\n\t"
+ "ret $31,($26),1\n\t"
+ ".end SharedStub"
+ );
+
+#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
+/*
+ * nsresult nsXPTCStubBase::Stub##n()
+ * Sets register $1 to "methodIndex" and jumps to SharedStub.
+ */
+#define STUB_ENTRY(n) \
+__asm__( \
+ "#### Stub"#n" ####\n" \
+".text\n\t" \
+ ".align 5\n\t" \
+ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev\n\t" \
+ ".ent _ZN14nsXPTCStubBase5Stub"#n"Ev\n" \
+"_ZN14nsXPTCStubBase5Stub"#n"Ev:\n\t" \
+ ".frame $30,0,$26,0\n\t" \
+ "ldgp $29,0($27)\n" \
+"$_ZN14nsXPTCStubBase5Stub"#n"Ev..ng:\n\t" \
+ ".prologue 1\n\t" \
+ "lda $1,"#n"\n\t" \
+ "br $31,$SharedStub..ng\n\t" \
+ ".end _ZN14nsXPTCStubBase5Stub"#n"Ev" \
+ ); \
+__asm__( \
+ "#### Stub"#n" ####\n" \
+".text\n\t" \
+ ".align 5\n\t" \
+ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev\n\t" \
+ ".ent _ZN14nsXPTCStubBase6Stub"#n"Ev\n" \
+"_ZN14nsXPTCStubBase6Stub"#n"Ev:\n\t" \
+ ".frame $30,0,$26,0\n\t" \
+ "ldgp $29,0($27)\n" \
+"$_ZN14nsXPTCStubBase6Stub"#n"Ev..ng:\n\t" \
+ ".prologue 1\n\t" \
+ "lda $1,"#n"\n\t" \
+ "br $31,$SharedStub..ng\n\t" \
+ ".end _ZN14nsXPTCStubBase6Stub"#n"Ev" \
+ ); \
+__asm__( \
+ "#### Stub"#n" ####\n" \
+".text\n\t" \
+ ".align 5\n\t" \
+ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev\n\t" \
+ ".ent _ZN14nsXPTCStubBase7Stub"#n"Ev\n" \
+"_ZN14nsXPTCStubBase7Stub"#n"Ev:\n\t" \
+ ".frame $30,0,$26,0\n\t" \
+ "ldgp $29,0($27)\n" \
+"$_ZN14nsXPTCStubBase7Stub"#n"Ev..ng:\n\t" \
+ ".prologue 1\n\t" \
+ "lda $1,"#n"\n\t" \
+ "br $31,$SharedStub..ng\n\t" \
+ ".end _ZN14nsXPTCStubBase7Stub"#n"Ev" \
+ );
+#else
+/*
+ * nsresult nsXPTCStubBase::Stub##n()
+ * Sets register $1 to "methodIndex" and jumps to SharedStub.
+ */
+#define STUB_ENTRY(n) \
+nsresult nsXPTCStubBase::Stub##n() \
+{ \
+ nsresult result; \
+__asm__ __volatile__( \
+ "ldah $29,0($27)\n\t" \
+ "lda $29,0($29)\n\t" \
+ "lda $1, "#n"\n\t" \
+ "br $31, $SharedStub..ng\n\t" \
+ "mov $0, %0\n\t" \
+ : "=r" (result) \
+ ); \
+ return result; \
+}
+#endif
+
+#define SENTINEL_ENTRY(n) \
+nsresult nsXPTCStubBase::Sentinel##n() \
+{ \
+ NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
+ return NS_ERROR_NOT_IMPLEMENTED; \
+}
+
+#include "xptcstubsdef.inc"
+