1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-26 05:02:18 +00:00

- Remove mozilla-devel due to security vulnerabilities

please use www/seamonkey instead
This commit is contained in:
Michael Johnson 2006-09-03 14:58:57 +00:00
parent deaf2e8928
commit eed472e5a6
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=172054
34 changed files with 1 additions and 2841 deletions

1
MOVED
View File

@ -2458,3 +2458,4 @@ security/finger_mysql||2006-09-02|Project has closed
devel/bitkeeper||2006-09-02|Project was discontinued
net/asterisk-devel||2006-09-02|Port was not currently useful; may return later
devel/p5-Linux-Pid||2006-09-03|Was a p5-Apache-SizeLimit dependency, now removed
www/mozilla-devel|www/seamonkey|2006-09-03|Security vulnerabilities

View File

@ -398,7 +398,6 @@
SUBDIR += mozex
SUBDIR += mozilla
SUBDIR += mozilla-bonobo
SUBDIR += mozilla-devel
SUBDIR += mozplugger
SUBDIR += mplayer-plugin
SUBDIR += myfaces

View File

@ -1,357 +0,0 @@
# New ports collection makefile for: mozilla
# Date created: 31 Mar 1998
# Whom: eivind/dima/jseger
#
# $FreeBSD$
# $MCom: ports/www/mozilla-devel/Makefile,v 1.12 2006/07/18 15:05:56 ahze Exp $
PORTNAME?= mozilla
PORTVERSION= 1.8.b1
PORTREVISION?= 7
PORTEPOCH?= 2
CATEGORIES?= www
MASTER_SITES= ${MASTER_SITE_MOZILLA_EXTENDED}
MASTER_SITE_SUBDIR= mozilla/releases/${PORTNAME}${PORTVERSION:S/.b1/b1/}/source
DISTNAME= ${PORTNAME}-source-${PORTVERSION:S/.b1/b1/}
MAINTAINER= gnome@FreeBSD.org
COMMENT= The open source, standards compliant web browser
BUILD_DEPENDS= zip:${PORTSDIR}/archivers/zip
LIB_DEPENDS= jpeg.9:${PORTSDIR}/graphics/jpeg \
png.5:${PORTSDIR}/graphics/png \
Xft.2:${PORTSDIR}/x11-fonts/libXft
NOT_FOR_ARCHS= ia64 alpha amd64
DEPRECATED= The mozilla team has shifted the development branch of \
mozilla to seamonkey, this port is outdated and has many \
vulnerabilities. Consider using www/seamonkey instead
WRKSRC= ${WRKDIR}/${PORTNAME}
MOZILLA?= mozilla-devel
MOZ_SUFX?= -devel
MOZ_VER?= ${PORTVERSION:S/.b1/b/}
LATEST_LINK= ${MOZILLA}
EXTRACT_AFTER_ARGS= | ${TAR} -xf - --exclude */CVS/* \
--exclude */macbuild/*\
--exclude */package/* \
--exclude .cvsignore \
--exclude makefile.win \
--exclude MANIFEST
USE_GNOME= gtk20 libidl desktopfileutils
USE_BZIP2= yes
USE_X_PREFIX= yes
USE_PERL5= yes
USE_ICONV= yes
USE_GMAKE= yes
WANT_GNOME= yes
HAS_CONFIGURE= yes
ALL_TARGET= default
FAKEDIR= ${WRKDIR}/fake
SCRIPTS_DIR= ${FAKEDIR}/lib/${MOZILLA}
MOZ_PIS_DIR= ${SCRIPTS_DIR}/init.d
MOZ_PIS_SCRIPTS= S50cleanhome
MAKE_ENV= LD_LIBRARY_PATH=${WRKSRC}/dist/bin
CONFIGURE_ARGS= \
--disable-auto-deps \
--enable-chrome-format=jar \
--disable-cpp-exceptions \
--disable-cpp-rtti \
--enable-crypto \
--disable-gtktest \
--disable-freetypetest \
--disable-installer \
--disable-glibtest \
--enable-double-buffer \
--enable-mathml \
--disable-md \
--disable-pedantic \
--disable-bidi \
--disable-plaintext-editor-only \
--enable-svg \
--disable-tests \
--disable-xterm-updates \
--enable-xinerama \
--with-system-zlib \
--with-system-jpeg=${LOCALBASE} \
--with-system-png=${LOCALBASE} \
--with-gssapi=/usr \
--prefix=${FAKEDIR} \
--with-pthreads \
--enable-application=suite \
--enable-xft \
--disable-freetype2 \
--enable-default-toolkit=gtk2
PLIST= ${WRKDIR}/pkg-plist
MOZ_EXTENSIONS= default
CONFIGURE_ENV= LOCALBASE=${LOCALBASE}
FREETYPE_LIB= libfreetype.so.9
PKGCONFIG_FILES=mozilla-gtkmozembed mozilla-js mozilla-xpcom \
mozilla-nspr mozilla-nss mozilla-plugin
# JPI stuff. List paths to Java Plug-ins here in the order to try.
JPI_LIST?=\
${LOCALBASE}/jdk1.5.0/jre/plugin/${ARCH}/ns7/libjavaplugin_oji.so \
${LOCALBASE}/jdk1.4.2/jre/plugin/${ARCH}/ns610/libjavaplugin_oji.so
OPTIONS=CALENDAR "Enable the Calendar module" off \
MAILNEWS "Enable Mail and News modules" on \
COMPOSER "Enable the HTML Composer module" on \
DEBUG "Enable debugging (i.e. gdb) support" off \
LDAP "Enable LDAP support for Mailnews" on \
CHATZILLA "Enable the Chatzilla IRC module" on \
JAVASCRIPT_DEBUGGER "Enable DTD and JavaScript debuggers" off \
OPTIMIZED_CFLAGS "Enable -O2 optimizations" off \
SMB "Enable smb:// URI support via gnomevfs" off
# CAIRO_RENDER "Enable SVG rendering with Cairo" off \
# CAIRO "Enable Cairo-specific Canvas features" off \
.include <bsd.port.pre.mk>
.if ${ARCH} == "alpha" && ${OSVERSION} < 500035
IGNORE= core dumps on ${ARCH} during post-build
.endif
.if defined(WITH_CALENDAR) && (defined(WITHOUT_MAILNEWS) || \
defined(WITHOUT_COMPOSER))
BROKEN= Calendar requires Composer and Mailnews support.
.endif
.if ${OSVERSION} < 500000
USE_GCC= 3.4
.endif
.if defined(WITH_CAIRO_RENDER) || defined(WITH_CAIRO)
#LIB_DEPENDS+= svg-cairo.1:${PORTSDIR}/graphics/libsvg-cairo
.endif
#.if defined(WITH_CAIRO_RENDER)
#CONFIGURE_ARGS+= --enable-svg-renderer-cairo \
# --disable-svg-renderer-libart
#CONFIGURE_ENV+= MOZ_SVG_RENDERER_CAIRO=1
#.else
CONFIGURE_ARGS+= --enable-svg-renderer-libart \
--disable-svg-renderer-cairo
CONFIGURE_ENV+= MOZ_INTERNAL_LIBART_LGPL=1
MAKE_ENV+= MOZ_INTERNAL_LIBART_LGPL=1
#.endif
#.if defined(WITH_CAIRO)
#CONFIGURE_ARGS+= --enable-cairo
#CONFIGURE_ENV+= CPPFLAGS="-I${LOCALBASE}/include/cairo"
#.endif
.if defined(WITH_DEBUG)
CONFIGURE_ARGS+= --enable-debug \
--disable-strip
.else
CONFIGURE_ARGS+= --disable-debug \
--enable-strip
.endif
# LDAP is only used by mail and news so disable both together
.if defined(WITHOUT_MAILNEWS)
CONFIGURE_ARGS+= --disable-ldap --disable-mailnews
.else
# mail and news desired, but not LDAP
.if defined(WITHOUT_LDAP)
CONFIGURE_ARGS+= --disable-ldap --enable-mailnews
.else
CONFIGURE_ARGS+= --enable-ldap --enable-mailnews
.endif
.endif
.if !defined(WITHOUT_CHATZILLA)
MOZ_EXTENSIONS:= ${MOZ_EXTENSIONS},irc
.endif
CONFIGURE_ARGS+= --enable-extensions=${MOZ_EXTENSIONS}
.if defined(WITH_JAVASCRIPT_DEBUGGER)
CONFIGURE_ARGS+= --enable-jsd \
--enable-dtd-debug
.else
CONFIGURE_ARGS+= --disable-jsd \
--disable-dtd-debug
.endif
.if defined(WITH_CALENDAR)
CONFIGURE_ARGS+= --enable-calendar
.endif
.if defined(WITHOUT_COMPOSER)
CONFIGURE_ARGS+= --disable-composer
.endif
.if ${ARCH} == "i386"
CONFIGURE_ARGS+= --enable-reorder
.endif
.if defined(WITH_SMB)
USE_GNOME+= gnomevfs2
.else
CONFIGURE_ARGS+=--disable-gnomevfs
.endif
.if defined(WITH_OPTIMIZED_CFLAGS)
CFLAGS:= -O2 -fno-strict-aliasing ${CFLAGS:N-O*}
.else
CFLAGS:= -O ${CFLAGS:N-O*:N-m*}
CONFIGURE_ENV+= WITH_OPTIMIZE=-O
.endif
.if !defined(WITHOUT_MENU_ENTRY)
USE_GNOME+= gnomehier
.endif
post-patch:
@${REINPLACE_CMD} -e 's/%{idldir}/%idldir%/g' \
${WRKSRC}/build/unix/mozilla-config.in
@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \
${WRKSRC}/build/unix/run-mozilla.sh
@${REINPLACE_CMD} -e 's|%%MOZILLA%%|${MOZILLA}|g' \
-e 's|%%HEADERS_SUFX%%|${MOZ_SUFX}|g' \
${WRKSRC}/config/autoconf.mk.in
@${FIND} ${WRKSRC}/other-licenses/libical -name "*.c" | ${XARGS} \
${REINPLACE_CMD} 's|<malloc.h>|<stdlib.h>|g'
@${REINPLACE_CMD} -e 's|-lc_r|${PTHREAD_LIBS}|g ; \
s|-lpthread|${PTHREAD_LIBS}|g ; \
s|/usr/X11R6|${X11BASE}|g' \
${WRKSRC}/configure \
${WRKSRC}/nsprpub/configure
@${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|g' \
${WRKSRC}/nsprpub/configure \
${WRKSRC}/security/coreconf/FreeBSD.mk \
${WRKSRC}/directory/c-sdk/config/FreeBSD.mk \
${WRKSRC}/js/src/Makefile.in
@${REINPLACE_CMD} -E -e 's|libesd\.so\.[0-9]+|libesd.so|g' \
${WRKSRC}/widget/src/gtk2/nsSound.cpp
@${REINPLACE_CMD} -e '/accessibility.typeaheadfind.enablesound/s/true/false/' \
${WRKSRC}/modules/libpref/src/init/all.js
@${REINPLACE_CMD} -e 's|<iconv.h>|\"${LOCALBASE}/include/iconv.h\"|g' \
${WRKSRC}/configure \
${WRKSRC}/intl/uconv/native/nsNativeUConvService.cpp \
${WRKSRC}/xpcom/io/nsNativeCharsetUtils.cpp
@${REINPLACE_CMD} -e 's|libfreetype.so.6|${FREETYPE_LIB}|g' \
${WRKSRC}/modules/libpref/src/init/all.js
@for pcfile in ${PKGCONFIG_FILES}; do \
${REINPLACE_CMD} -e 's|mozilla-xpcom|mozilla-xpcom${MOZ_SUFX}|g ; \
s|mozilla-nspr|mozilla-nspr${MOZ_SUFX}|g' \
${WRKSRC}/build/unix/$${pcfile}.pc.in; \
done
@${SED} -e 's|%%PREFIX%%|${PREFIX}|g' \
< ${FILESDIR}/mozilla-devel.desktop.in > \
${WRKDIR}/mozilla-devel.desktop
pre-configure:
@if [ -n "`${PKG_INFO} -xI '^bind[0-9]*-base-[0-9]'`" ]; then \
${ECHO_CMD} "${PKGNAME}: bind installed with PORT_REPLACES_BASE_BIND causes build problems."; \
${FALSE}; \
fi
post-build:
${SED} -e "s|%%PREFIX%%|${PREFIX}|g" -e "s|%%MOZILLA%%|${MOZILLA}|g" \
${FILESDIR}/mozilla.sh >${WRKSRC}/${MOZILLA}
pre-install:
${RM} -rf ${PLIST} ${FAKEDIR}
${TOUCH} -f ${PLIST}
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} \
Makefile ${MAKE_ARGS} ${INSTALL_TARGET}
${MKDIR} ${SCRIPTS_DIR} ${MOZ_PIS_DIR}
${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \
${FAKEDIR}/bin/mozilla \
${FAKEDIR}/bin/mozilla-config
if [ ! -x ${PREFIX}/bin/mozilla -a ! -L ${PREFIX}/bin/mozilla ]; then \
${ECHO_CMD} bin/mozilla >> ${PLIST} ; \
fi
${ECHO_CMD} bin/${MOZILLA} >> ${PLIST}
if [ ! -L ${PREFIX}/lib/browser_plugins/libjavaplugin_oji.so ]; then \
for jpi in ${JPI_LIST}; do \
if [ -f $${jpi} ]; then \
${ECHO_CMD} lib/browser_plugins/libjavaplugin_oji.so >> ${PLIST} ; \
break; \
fi; \
done; \
fi
${ECHO_CMD} lib/browser_plugins/.${PORTNAME}.keep >> ${PLIST}
${ECHO_CMD} "@unexec ${RMDIR} %D/lib/browser_plugins 2>/dev/null || ${TRUE}" >> ${PLIST}
${ECHO_CMD} lib/${MOZILLA}/mozilla >> ${PLIST}
${ECHO_CMD} lib/${MOZILLA}/mozilla-config >> ${PLIST}
.for ii in ${MOZ_PIS_SCRIPTS}
${INSTALL_SCRIPT} ${FILESDIR}/moz_pis_${ii} ${MOZ_PIS_DIR}/${ii}
.endfor
.if !defined(WITHOUT_MAILNEWS)
@${CP} -RL ${WRKSRC}/dist/bin/defaults/isp ${FAKEDIR}/lib/${MOZILLA}/defaults
.endif
${ECHO_CMD} share/applications/mozilla-devel.desktop >> ${PLIST}
${ECHO_CMD} "@unexec ${RMDIR} %D/share/applications 2>/dev/null || ${TRUE}" >> ${PLIST}
cd ${FAKEDIR}/lib/${MOZILLA} && ${FIND} -s * -type f -o -type l | \
${SED} -e 's:^:lib/${MOZILLA}/:' >> ${PLIST} \
&& ${FIND} -d * -type d | \
${SED} -e 's:^:@dirrm lib/${MOZILLA}/:' >> ${PLIST}
${ECHO_CMD} @dirrm lib/${MOZILLA} >> ${PLIST}
for pcfile in ${PKGCONFIG_FILES}; do \
${ECHO_CMD} libdata/pkgconfig/$${pcfile}${MOZ_SUFX}.pc >> ${PLIST} ; \
done
cd ${FAKEDIR}/include/${MOZILLA} && ${FIND} -s * -type f -o -type l | \
${SED} -e 's:^:include/${MOZILLA}/:' >> ${PLIST} \
&& ${FIND} -d * -type d | \
${SED} -e 's:^:@dirrm include/${MOZILLA}/:' >> ${PLIST}
${ECHO_CMD} @dirrm include/${MOZILLA} >> ${PLIST}
${ECHO_CMD} "@exec ${LOCALBASE}/bin/update-desktop-database > /dev/null || ${TRUE}" >> ${PLIST}
${ECHO_CMD} "@unexec ${LOCALBASE}/bin/update-desktop-database > /dev/null || ${TRUE}" >> ${PLIST}
cd ${FAKEDIR}/share/idl/${MOZILLA:S/-devel//}-${MOZ_VER} \
&& ${FIND} -s * -type f -o -type l | \
${SED} -e 's:^:share/idl/${MOZILLA}/:' >> ${PLIST} \
&& ${FIND} -d * -type d | \
${SED} -e 's:^:@dirrm share/idl/${MOZILLA}/:' >> ${PLIST}
${ECHO_CMD} "@dirrm share/idl/${MOZILLA}" >> ${PLIST}
${ECHO_CMD} "@unexec ${RMDIR} %D/share/idl 2>/dev/null || true" >> ${PLIST}
do-install:
${MKDIR} ${PREFIX}/lib/${MOZILLA}
${CHMOD} 755 ${PREFIX}/lib/${MOZILLA}
${INSTALL_SCRIPT} ${FAKEDIR}/bin/mozilla ${PREFIX}/lib/${MOZILLA}
${INSTALL_SCRIPT} ${FAKEDIR}/bin/mozilla-config ${PREFIX}/lib/${MOZILLA}
cd ${FAKEDIR}/lib/${MOZILLA} && ${FIND} . | \
${CPIO} -pdm -L -R ${LIBOWN}:${LIBGRP} ${PREFIX}/lib/${MOZILLA}
for pcfile in ${PKGCONFIG_FILES}; do \
${REINPLACE_CMD} -e 's|${FAKEDIR}|${PREFIX}|g' \
${WRKSRC}/build/unix/$${pcfile}.pc; \
${INSTALL_DATA} ${WRKSRC}/build/unix/$${pcfile}.pc \
${PREFIX}/libdata/pkgconfig/$${pcfile}${MOZ_SUFX}.pc ; \
done
${INSTALL_SCRIPT} ${WRKSRC}/${MOZILLA} ${PREFIX}/bin
if [ ! -x ${PREFIX}/bin/mozilla -a ! -L ${PREFIX}/bin/mozilla ]; then \
${LN} -sf ${PREFIX}/bin/${MOZILLA} ${PREFIX}/bin/mozilla ; \
fi
if [ ! -d ${PREFIX}/lib/browser_plugins ]; then \
${MKDIR} ${PREFIX}/lib/browser_plugins ; \
fi
${TOUCH} -f ${PREFIX}/lib/browser_plugins/.${PORTNAME}.keep
if [ ! -L ${PREFIX}/lib/browser_plugins/libjavaplugin_oji.so ]; then \
for jpi in ${JPI_LIST}; do \
if [ -f $${jpi} ]; then \
${LN} -sf $${jpi} \
${PREFIX}/lib/browser_plugins/libjavaplugin_oji.so ; \
break; \
fi; \
done; \
fi
-${RM} -fr ${PREFIX}/include/${MOZILLA}
${MKDIR} ${PREFIX}/include/${MOZILLA}
${CHMOD} 755 ${PREFIX}/include/${MOZILLA}
cd ${FAKEDIR}/include/${MOZILLA} && ${FIND} . | \
${CPIO} -pdm -L -R ${LIBOWN}:${LIBGRP} ${PREFIX}/include/${MOZILLA}
${MKDIR} ${PREFIX}/share/applications
${INSTALL_DATA} ${WRKDIR}/mozilla-devel.desktop \
${PREFIX}/share/applications
${MKDIR} ${PREFIX}/share/idl/${MOZILLA}
cd ${FAKEDIR}/share/idl/${MOZILLA:S/-devel//}-${MOZ_VER} && ${FIND} . | \
${CPIO} -pdm -L -R ${SHAREOWN}:${SHAREGRP} ${PREFIX}/share/idl/${MOZILLA}
post-install:
@-update-desktop-database
.include <bsd.port.post.mk>

View File

@ -1,3 +0,0 @@
MD5 (mozilla-source-1.8b1.tar.bz2) = 42a0b25d405ee60128adb0eef4bc0fa0
SHA256 (mozilla-source-1.8b1.tar.bz2) = cb8992c3ceb96d2775dcf4388b4c41b139ff95556dc746b772f81dac8373d34a
SIZE (mozilla-source-1.8b1.tar.bz2) = 32116336

View File

@ -1,31 +0,0 @@
#!/bin/sh
#
# S50cleanhome
# a script to clean up users' Mozilla home directories to make upgrading
# less painful.
# We run in our own subshell
# First, verify protocol
[ "$1" != "start" ] && exit 1
[ -z "${MOZ_PIS_API}" -o ${MOZ_PIS_API} -ne 2 ] && exit 1
[ -z "${MOZ_PIS_MOZBINDIR}" -o ! -d "${MOZ_PIS_MOZBINDIR}" ] && exit 1
[ -z "${HOME}" -o ! -d "${HOME}" ] && exit 1
[ -z "${MOZ_PIS_USER_DIR}" -o ! -d "${HOME}/${MOZ_PIS_USER_DIR}" ] && exit 1
# Try to cleanup ${HOME}/${MOZ_PIS_USER_DIR}
if [ -f "${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" ]; then
sed -e '/Path=/! d' -e "s,Path=,${HOME}/${MOZ_PIS_USER_DIR}/," \
"${HOME}/${MOZ_PIS_USER_DIR}/profiles.ini" \
| while read dir
do
[ ! -d "${dir}" ] && continue
# Debian does this for new builds
# rm -f "${dir}/XUL.mfasl"
# force a rebuild of compreg.dat and xpti.dat for new installations
[ "${dir}/compreg.dat" -ot "${MOZ_PIS_MOZBINDIR}/components.ini" ] &&
rm -f "${dir}/compatibility.ini" "${dir}/XUL.mfasl"
done
fi

View File

@ -1,169 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
Name=Mozilla Web Browser
Name[az]=Mozilla Veb Səyyahı
Name[bg]=Интернет браузър (Mozilla)
Name[bs]=Mozilla web preglednik
Name[ca]=Navegador web Mozilla
Name[cs]=Prohlížeč WWW Mozilla
Name[cy]=Y Porwr Gwe Mozilla
Name[da]=Mozilla - internetbrowser
Name[de]=Mozilla Webbrowser
Name[el]=Περιηγητής Διαδικτύου Mozilla
Name[en_CA]=Mozilla Web Browser
Name[en_GB]=Mozilla Web Browser
Name[es]=Navegador Web Mozilla
Name[et]=Mozilla veebibrauser
Name[eu]=Mozilla web arakatzailea
Name[fa]=مرورگر وب Mozilla
Name[fi]=Mozilla, WWW-selain
Name[fr]=Navigateur Web Mozilla
Name[ga]=Brabhsálaí Lín Mozilla
Name[he]=דפדפן Mozilla
Name[hr]=Mozilla Web preglednik
Name[hu]=Mozilla webböngésző
Name[id]=Web Browser Mozilla
Name[it]=Browser web Mozilla
Name[ja]=Mozilla
Name[ko]=Mozilla
Name[li]=Mozilla Web Browser
Name[lt]=Mozilla web naršyklė
Name[mk]=Mozilla Веб Прелистувач
Name[mn]=Mozilla веб хөтөч
Name[ms]=Pelungsur Web Mozilla
Name[nb]=Mozilla nettleser
Name[nl]=Mozilla webbrowser
Name[nn]=Mozilla nettlesar
Name[no]=Mozilla nettleser
Name[pl]=Przeglądarka WWW Mozilla
Name[pt]=Navegador Web Mozilla
Name[pt_BR]=Navegador Web Mozilla
Name[ro]=Navigatorul Mozilla
Name[sl]=Spletni brskalnik Mozilla
Name[sq]=Mozilla - Shfletuesi Web
Name[sv]=Webbläsaren Mozilla
Name[tk]=Mozilla Web Ahtarçisi
Name[tr]=Mozilla Web Tarayıcı
Name[uk]=Переглядач web Mozilla
Name[vi]=Trình Duyt Web Mozilla
Name[wa]=Betchteu waibe mozilla
Name[zh_CN]=Mozilla Web
Name[zh_TW]=Mozilla
GenericName=Mozilla Web Browser
GenericName[az]=Mozilla Veb Səyyahı
GenericName[bg]=Интернет браузър (Mozilla)
GenericName[bs]=Mozilla web preglednik
GenericName[ca]=Navegador web Mozilla
GenericName[cs]=Prohlížeč WWW Mozilla
GenericName[cy]=Y Porwr Gwe Mozilla
GenericName[da]=Mozilla - internetbrowser
GenericName[de]=Mozilla Webbrowser
GenericName[el]=Περιηγητής Διαδικτύου Mozilla
GenericName[en_CA]=Mozilla Web Browser
GenericName[en_GB]=Mozilla Web Browser
GenericName[es]=Navegador Web Mozilla
GenericName[et]=Mozilla veebibrauser
GenericName[eu]=Mozilla web arakatzailea
GenericName[fa]=مرورگر وب Mozilla
GenericName[fi]=Mozilla, WWW-selain
GenericName[fr]=Navigateur Web Mozilla
GenericName[ga]=Brabhsálaí Lín Mozilla
GenericName[he]=דפדפן Mozilla
GenericName[hr]=Mozilla Web preglednik
GenericName[hu]=Mozilla webböngésző
GenericName[id]=Web Browser Mozilla
GenericName[it]=Browser web Mozilla
GenericName[ja]=Mozilla
GenericName[ko]=Mozilla
GenericName[li]=Mozilla Web Browser
GenericName[lt]=Mozilla web naršyklė
GenericName[mk]=Mozilla Веб Прелистувач
GenericName[mn]=Mozilla веб хөтөч
GenericName[ms]=Pelungsur Web Mozilla
GenericName[nb]=Mozilla nettleser
GenericName[nl]=Mozilla webbrowser
GenericName[nn]=Mozilla nettlesar
GenericName[no]=Mozilla nettleser
GenericName[pl]=Przeglądarka WWW Mozilla
GenericName[pt]=Navegador Web Mozilla
GenericName[pt_BR]=Navegador Web Mozilla
GenericName[ro]=Navigatorul Mozilla
GenericName[sl]=Spletni brskalnik Mozilla
GenericName[sq]=Mozilla - Shfletuesi Web
GenericName[sv]=Webbläsaren Mozilla
GenericName[tk]=Mozilla Web Ahtarçisi
GenericName[tr]=Mozilla Web Tarayıcı
GenericName[uk]=Переглядач web Mozilla
GenericName[vi]=Trình Duyt Web Mozilla
GenericName[wa]=Betchteu waibe mozilla
GenericName[zh_CN]=Mozilla Web
GenericName[zh_TW]=Mozilla
Comment=Browse the web
Comment[ar]=تصفح الانترنت
Comment[az]=Vebi gəzin
Comment[be]=Вандраваць па павуціньню
Comment[bg]=Сърфиране в интернет
Comment[bn]=
Comment[bs]=Pregledaj na internetu
Comment[ca]=Navegueu per la web
Comment[cs]=Prohlížet WWW
Comment[cy]=Pori'r we
Comment[da]=Benyt internettet
Comment[de]=Im Web surfen
Comment[el]=Περιήγηση στον παγκόσμιο ιστό
Comment[en_CA]=Browse the web
Comment[en_GB]=Browse the web
Comment[es]=Navegar por la web
Comment[et]=Sirvi veebi
Comment[eu]=Arakatu web-a
Comment[fa]=مرور وب
Comment[fi]=Selaa WWW:tä
Comment[fr]=Naviguer sur Internet
Comment[ga]=Brabhsáil an Líon
Comment[gu]=
Comment[he]=גלוש ברשת
Comment[hi]=
Comment[hr]=Pregledaj Web
Comment[hu]=A világháló böngészése
Comment[id]=Jelajah web
Comment[it]=Esplora il web
Comment[ja]=
Comment[ko]=
Comment[li]=Blajere op internet
Comment[lt]=Naršyti internete
Comment[mk]=Прелистувајте го вебот
Comment[ml]= ി
Comment[mn]=Веб броузе хийх
Comment[ms]=Layari web
Comment[nb]=Surf på nettet
Comment[nl]=Websurfen
Comment[nn]=Surf på nettet
Comment[no]=Surf på nettet
Comment[pa]=
Comment[pl]=Przeglądanie stron WWW
Comment[pt]=Navegar na web
Comment[pt_BR]=Navegar na web
Comment[ro]=Navigare Internet
Comment[ru]=Программа для просмотра веб-страниц
Comment[sk]=Prehliadať internet
Comment[sl]=Brskaj po spletu
Comment[sq]=Eksploro web-in
Comment[sr]=Прегледај веб
Comment[sr@Latn]=Pregledaj veb
Comment[sv]=Surfa på nätet
Comment[ta]=ி
Comment[th]= Mozilla
Comment[tk]=Webi Ahtar
Comment[tr]=Web'e Gözat
Comment[uk]=Програма перегляду web-сторінок
Comment[vi]=Duyt web
Comment[wa]=Naivyî avå les waibes
Comment[zh_CN]= Web
Comment[zh_TW]=
Exec=mozilla-devel %U
StartupNotify=true
Terminal=false
Type=Application
Icon=%%PREFIX%%/lib/mozilla-devel/chrome/icons/default/default.xpm
Categories=Application;Network;
MimeType=text/html;text/xml;application/xhtml+xml;

View File

@ -1,85 +0,0 @@
#!/bin/sh
MOZILLA_DIR="%%PREFIX%%/lib/%%MOZILLA%%"
MOZILLA_EXEC="./mozilla"
MOZILLA_REMOTE_EXEC="${MOZILLA_EXEC} -remote"
APPLICATION_ID="mozilla"
LOCATION='new-tab'
#MOZILLA_UILOCALE="en-US"
#MOZILLA_UIREGION="US"
#MOZILLA_DSP="auto"
cd $MOZILLA_DIR || exit 1
# LANG, MOZILLA_UILOCALE, MOZILLA_UIREGION
if [ -n "$LANG" -a ! -n "${MOZILLA_UILOCALE}" ]; then
_locale="${LANG%%.*}"
if [ "${_locale}" != "en_US" -a "${_locale}" != "C" ]; then
_region="${_locale##*_}"
_locale="${_locale%_*}"
[ -r chrome/${_locale}-${_region}.jar ] && \
MOZILLA_EXEC="${MOZILLA_EXEC} -UILocale ${_locale}-${_region}"
fi
elif [ -n "${MOZILLA_UILOCALE}" ]; then
MOZILLA_EXEC="${MOZILLA_EXEC} -UILocale ${MOZILLA_UILOCALE}"
if [ -n "${MOZILLA_UIREGION}" ]; then
MOZILLA_EXEC="${MOZILLA_EXEC} -UIRegion ${MOZILLA_UIREGION}"
fi
fi
# find a /dev/dsp handler
case "${MOZILLA_DSP}" in
# [Ee][Ss][Dd]|esddsp) # Use the esd dsp wrapper
# MOZILLA_DSP="esddsp"
# ;;
[Aa][Rr][Tt][Ss]|artsdsp) # Use the arts dsp wrapper
MOZILLA_DSP="artsdsp"
;;
[Nn][Oo][Nn][Ee]) # Direct dsp output
MOZILLA_DSP=""
;;
*) # Guest one (auto)
if [ -n "${KDE_FULL_SESSION}" ]; then
MOZILLA_DSP="artsdsp"
# elif [ -r ${HOME}/.esd_auth ]; then
# MOZILLA_DSP="esddsp"
else
MOZILLA_DSP=""
fi
;;
esac
if [ -n "${MOZILLA_DSP}" ] && type "${MOZILLA_DSP}" > /dev/null 2>&1; then
MOZILLA_EXEC="${MOZILLA_DSP} ${MOZILLA_EXEC}"
fi
case $1 in
-browser)
REMOTE_COMMAND="xfeDoCommand (openBrowser)"
;;
-mail)
REMOTE_COMMAND="xfeDoCommand (openInbox)"
;;
-compose)
REMOTE_COMMAND="xfeDoCommand (composeMessage)"
;;
-*)
exec ${MOZILLA_EXEC} "$@"
;;
*)
if [ -n "${LOCATION}" ]; then
REMOTE_COMMAND="openURL($@,$LOCATION)"
else
REMOTE_COMMAND="openURL($@)"
fi
;;
esac
# process found
${MOZILLA_REMOTE_EXEC} "ping()" >/dev/null 2>&1 &&
${MOZILLA_REMOTE_EXEC} "${REMOTE_COMMAND}" && exit 0
# no existing process
exec ${MOZILLA_EXEC} "$@"

View File

@ -1,92 +0,0 @@
Index: netwerk/base/src/nsStandardURL.cpp
===================================================================
RCS file: /cvs/mozilla/netwerk/base/src/nsStandardURL.cpp,v
retrieving revision 1.82
diff -p -u -1 -2 -r1.82 nsStandardURL.cpp
--- netwerk/base/src/nsStandardURL.cpp 20 Jun 2005 05:23:20 -0000 1.82
+++ netwerk/base/src/nsStandardURL.cpp 9 Sep 2005 16:34:42 -0000
@@ -458,24 +458,25 @@ nsStandardURL::AppendToBuf(char *buf, PR
// 4- update url segment positions and lengths
nsresult
nsStandardURL::BuildNormalizedSpec(const char *spec)
{
// Assumptions: all member URLSegments must be relative the |spec| argument
// passed to this function.
// buffers for holding escaped url segments (these will remain empty unless
// escaping is required).
nsCAutoString encUsername;
nsCAutoString encPassword;
nsCAutoString encHost;
+ PRBool useEncHost;
nsCAutoString encDirectory;
nsCAutoString encBasename;
nsCAutoString encExtension;
nsCAutoString encParam;
nsCAutoString encQuery;
nsCAutoString encRef;
//
// escape each URL segment, if necessary, and calculate approximate normalized
// spec length.
//
PRInt32 approxLen = 3; // includes room for "://"
@@ -497,25 +498,25 @@ nsStandardURL::BuildNormalizedSpec(const
approxLen += encoder.EncodeSegmentCount(spec, mParam, esc_Param, encParam);
approxLen += encoder.EncodeSegmentCount(spec, mQuery, esc_Query, encQuery);
approxLen += encoder.EncodeSegmentCount(spec, mRef, esc_Ref, encRef);
}
// do not escape the hostname, if IPv6 address literal, mHost will
// already point to a [ ] delimited IPv6 address literal.
// However, perform Unicode normalization on it, as IDN does.
mHostEncoding = eEncoding_ASCII;
if (mHost.mLen > 0) {
const nsCSubstring& tempHost =
Substring(spec + mHost.mPos, spec + mHost.mPos + mHost.mLen);
- if (NormalizeIDN(tempHost, encHost))
+ if ((useEncHost = NormalizeIDN(tempHost, encHost)))
approxLen += encHost.Length();
else
approxLen += mHost.mLen;
}
//
// generate the normalized URL string
//
mSpec.SetLength(approxLen + 32);
char *buf;
mSpec.BeginWriting(buf);
PRUint32 i = 0;
@@ -530,25 +531,30 @@ nsStandardURL::BuildNormalizedSpec(const
mAuthority.mPos = i;
// append authority
if (mUsername.mLen > 0) {
i = AppendSegmentToBuf(buf, i, spec, mUsername, &encUsername);
if (mPassword.mLen >= 0) {
buf[i++] = ':';
i = AppendSegmentToBuf(buf, i, spec, mPassword, &encPassword);
}
buf[i++] = '@';
}
if (mHost.mLen > 0) {
- i = AppendSegmentToBuf(buf, i, spec, mHost, &encHost);
+ if (useEncHost) {
+ mHost.mPos = i;
+ mHost.mLen = encHost.Length();
+ i = AppendToBuf(buf, i, encHost.get(), mHost.mLen);
+ } else
+ i = AppendSegmentToBuf(buf, i, spec, mHost);
net_ToLowerCase(buf + mHost.mPos, mHost.mLen);
if (mPort != -1 && mPort != mDefaultPort) {
nsCAutoString portbuf;
portbuf.AppendInt(mPort);
buf[i++] = ':';
i = AppendToBuf(buf, i, portbuf.get(), portbuf.Length());
}
}
// record authority length
mAuthority.mLen = i - mAuthority.mPos;

View File

@ -1,59 +0,0 @@
--- extensions/transformiix/source/base/Double.cpp.orig Thu Jan 30 09:26:46 2003
+++ extensions/transformiix/source/base/Double.cpp Sun Nov 16 01:46:42 2003
@@ -51,10 +51,10 @@
//A trick to handle IEEE floating point exceptions on FreeBSD - E.D.
#ifdef __FreeBSD__
#include <ieeefp.h>
-#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__)
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;
#endif
fp_except_t oldmask = fpsetmask(~allmask);
#endif
@@ -75,22 +75,31 @@
#define TX_DOUBLE_HI32_EXPMASK 0x7ff00000
#define TX_DOUBLE_HI32_MANTMASK 0x000fffff
+union ui32dun {
+ PRUint32 i[2];
+ double d;
+};
+
//-- Initialize Double related constants
#ifdef IS_BIG_ENDIAN
-const PRUint32 nanMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK,
- 0xffffffff};
-const PRUint32 infMask[2] = {TX_DOUBLE_HI32_EXPMASK, 0};
-const PRUint32 negInfMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0};
+const union ui32dun nanMask =
+ {{TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK, 0xffffffff}};
+const union ui32dun infMask =
+ {{TX_DOUBLE_HI32_EXPMASK, 0}};
+const union ui32dun negInfMask =
+ {{TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0}};
#else
-const PRUint32 nanMask[2] = {0xffffffff,
- TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK};
-const PRUint32 infMask[2] = {0, TX_DOUBLE_HI32_EXPMASK};
-const PRUint32 negInfMask[2] = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT};
+const union ui32dun nanMask =
+ {{0xffffffff, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK}};
+const union ui32dun infMask =
+ {{0, TX_DOUBLE_HI32_EXPMASK}};
+const union ui32dun negInfMask =
+ {{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);
+const double Double::NaN = nanMask.d;
+const double Double::POSITIVE_INFINITY = infMask.d;
+const double Double::NEGATIVE_INFINITY = negInfMask.d;
/*
* Determines whether the given double represents positive or negative

View File

@ -1,22 +0,0 @@
--- Makefile.in.orig Thu Oct 21 19:25:55 2004
+++ Makefile.in Thu Oct 21 19:26:46 2004
@@ -80,8 +80,7 @@
$(tier_1_dirs) \
$(tier_2_dirs) \
$(tier_9_dirs) \
- $(tier_50_dirs) \
- $(NULL)
+ $(tier_50_dirs)
ifdef GC_LEAK_DETECTOR
DIRS += gc/boehm
@@ -100,7 +99,8 @@
DIRS += $(tier_98_dirs)
endif
-DIRS += $(tier_99_dirs)
+DIRS += $(tier_99_dirs) \
+ $(NULL)
#
# tier 0 - base build config dirs

View File

@ -1,21 +0,0 @@
--- build/unix/run-mozilla.sh.orig Mon Dec 15 12:27:28 2003
+++ build/unix/run-mozilla.sh Wed Feb 11 14:24:17 2004
@@ -355,7 +355,7 @@
fi
##
## Set LD_LIBRARY_PATH
-LD_LIBRARY_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:${MRE_HOME}${LD_LIBRARY_PATH+":$LD_LIBRARY_PATH"}
+LD_LIBRARY_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:%%PREFIX%%/lib/browser_linux_plugins:%%PREFIX%%/lib/browser_plugins:${MRE_HOME}${LD_LIBRARY_PATH+":$LD_LIBRARY_PATH"}
if [ -n "$LD_LIBRARYN32_PATH" ]
then
LD_LIBRARYN32_PATH=${MOZ_DIST_BIN}:${MOZ_DIST_BIN}/plugins:${MRE_HOME}${LD_LIBRARYN32_PATH+":$LD_LIBRARYN32_PATH"}
@@ -442,6 +442,9 @@
#
export MOZILLA_FIVE_HOME LD_LIBRARY_PATH
export SHLIB_PATH LIBPATH LIBRARY_PATH ADDON_PATH DYLD_LIBRARY_PATH
+
+MOZ_PLUGIN_PATH=%%PREFIX%%/lib/browser_plugins:%%PREFIX%%/lib/browser_linux_plugins
+export MOZ_PLUGIN_PATH
if [ $moz_debug -eq 1 ]
then

View File

@ -1,10 +0,0 @@
--- config/mkdepend/imakemdep.h Fri Sep 4 21:22:25 1998
+++ config/mkdepend/imakemdep.h Thu Oct 16 22:43:25 2003
@@ -278,4 +278,7 @@
"-D__i386__",
# endif
+# if defined(__amd64__) || defined(__x86_64__)
+ "-D__amd64__ -D__x86_64__",
+# endif
# ifdef __GNUC__
"-traditional",

View File

@ -1,10 +0,0 @@
--- config/mkdepend/Makefile.in.orig Sun Apr 18 14:17:26 2004
+++ config/mkdepend/Makefile.in Sun Dec 12 09:42:11 2004
@@ -73,6 +73,7 @@
include $(topsrcdir)/config/rules.mk
HOST_CFLAGS += -DINCLUDEDIR=\"/usr/include\" -DOBJSUFFIX=\".$(OBJ_SUFFIX)\"
+HOST_CFLAGS += $(XCFLAGS)
ifdef GNU_CC
_GCCDIR = $(shell $(CC) -print-file-name=include)

View File

@ -1,14 +0,0 @@
--- config/rules.mk.orig Sun May 18 16:10:18 2003
+++ config/rules.mk Sun Jul 20 18:07:26 2003
@@ -448,7 +448,11 @@
ifeq ($(OS_ARCH),FreeBSD)
ifdef IS_COMPONENT
+ifneq (,$(filter alpha ia64,$(OS_TEST)))
+EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc
+else
EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
+endif
endif
endif

View File

@ -1,18 +0,0 @@
--- config/autoconf.mk.in.orig Mon Mar 15 22:56:25 2004
+++ config/autoconf.mk.in Fri Mar 19 15:17:50 2004
@@ -31,13 +31,13 @@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
-includedir = @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+includedir = @includedir@/mozilla%%HEADERS_SUFX%%
libdir = @libdir@
datadir = @datadir@
mandir = @mandir@
idldir = @datadir@/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-mozappdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+mozappdir = $(libdir)/%%MOZILLA%%
mredir = $(libdir)/mre/mre-$(MOZ_APP_VERSION)
mrelibdir = $(mredir)/lib

View File

@ -1,19 +0,0 @@
--- extensions/negotiateauth/Makefile.in.orig Wed Apr 28 03:26:19 2004
+++ extensions/negotiateauth/Makefile.in Tue Jul 6 16:27:07 2004
@@ -66,7 +66,6 @@
$(NULL)
EXTRA_DSO_LDOPTS = \
- $(MOZ_COMPONENT_LIBS) \
$(NULL)
ifneq (,$(GSSAPI_LIBS))
@@ -74,6 +73,8 @@
EXTRA_DSO_LDOPTS += $(GSSAPI_LIBS)
CPPSRCS += nsNegotiateAuthGSSAPI.cpp
endif
+
+EXTRA_DSO_LDOPTS += $(MOZ_COMPONENT_LIBS)
# make sure this component is never statically linked into the main
# application. this is necessary since we don't want to force users

View File

@ -1,30 +0,0 @@
--- extensions/p3p/Makefile.in.orig Sun Jul 9 14:10:16 2006
+++ extensions/p3p/Makefile.in Sun Jul 9 14:20:10 2006
@@ -62,23 +62,23 @@
p3p200010.xsl: resources/content/p3p.xsl.in Makefile.in
@$(RM) -f $@
$(PP) -DNAMESPACE=http://www.w3.org/2000/10/18/P3Pv1 \
- -DHAS_TMPL_RETENTION\
+ -DHAS_TMPL_RETENTION \
$< > $@
p3p200012.xsl: resources/content/p3p.xsl.in Makefile.in
@$(RM) -f $@
$(PP) -DNAMESPACE=http://www.w3.org/2000/12/P3Pv1 \
- -DHAS_CALL_OURS\
+ -DHAS_CALL_OURS \
$< > $@
p3p200109.xsl: resources/content/p3p.xsl.in Makefile.in
@$(RM) -f $@
$(PP) -DNAMESPACE=http://www.w3.org/2001/09/P3Pv1 \
- -DHAS_CALL_OURS\
+ -DHAS_CALL_OURS \
$< > $@
p3p200201.xsl: resources/content/p3p.xsl.in Makefile.in
@$(RM) -f $@
$(PP) -DNAMESPACE=http://www.w3.org/2002/01/P3Pv1 \
- -DHAS_CALL_OURS -DHAS_PURPOSE_SRC\
+ -DHAS_CALL_OURS -DHAS_PURPOSE_SRC \
$< > $@

View File

@ -1,12 +0,0 @@
--- gfx/src/gtk/nsFontMetricsXft.cpp.orig Wed Mar 17 02:08:01 2004
+++ gfx/src/gtk/nsFontMetricsXft.cpp Wed Mar 17 02:08:15 2004
@@ -65,7 +65,8 @@
#include <gdk/gdkx.h>
#include <freetype/tttables.h>
-#include <freetype/freetype.h>
+#include <ft2build.h>
+#include FT_FREETYPE_H
#define FORCE_PR_LOG
#include "prlog.h"

View File

@ -1,11 +0,0 @@
--- modules/plugin/base/public/nptypes.h.orig Sun Sep 5 18:56:55 2004
+++ modules/plugin/base/public/nptypes.h Thu Oct 21 19:29:29 2004
@@ -73,7 +73,7 @@
#if defined(bsdi) || defined(OPENBSD)
typedef u_int32_t uint32_t;
- #if defined(bsdi)
+ #if defined(bsdi) || defined(__FreeBSD__)
#if !defined(__cplusplus)
typedef int bool;
#endif

View File

@ -1,12 +0,0 @@
--- widget/src/gtk2/mozdrawingarea.c.orig Tue Apr 30 12:29:00 2002
+++ widget/src/gtk2/mozdrawingarea.c Thu Aug 18 22:27:27 2005
@@ -168,7 +168,9 @@
drawingarea = MOZ_DRAWINGAREA(object);
+ gdk_window_set_user_data(drawingarea->inner_window, NULL);
gdk_window_destroy(drawingarea->inner_window);
+ gdk_window_set_user_data(drawingarea->clip_window, NULL);
gdk_window_destroy(drawingarea->clip_window);
(* parent_class->finalize) (object);

View File

@ -1,11 +0,0 @@
--- nsprpub/pr/include/md/_pth.h.orig Sun Jan 16 16:09:10 2005
+++ nsprpub/pr/include/md/_pth.h Sun Jan 16 16:10:06 2005
@@ -84,7 +84,7 @@
#define _PT_PTHREAD_MUTEXATTR_DESTROY(x) /* */
#define _PT_PTHREAD_MUTEX_INIT(m, a) (memset(&(m), 0, sizeof(m)), \
pthread_mutex_init(&(m), NULL))
-#define _PT_PTHREAD_MUTEX_IS_LOCKED(m) (EBUSY == pthread_mutex_trylock(&(m)))
+#define _PT_PTHREAD_MUTEX_IS_LOCKED(m) (0 != pthread_mutex_trylock(&(m)))
#define _PT_PTHREAD_CONDATTR_INIT(x) 0
#define _PT_PTHREAD_CONDATTR_DESTROY(x) /* */
#define _PT_PTHREAD_COND_INIT(m, a) (memset(&(m), 0, sizeof(m)), \

View File

@ -1,11 +0,0 @@
--- nsprpub/pr/include/md/_freebsd.cfg.orig Sun Jan 16 16:13:08 2005
+++ nsprpub/pr/include/md/_freebsd.cfg Sun Jan 16 16:16:34 2005
@@ -141,7 +141,7 @@
#define PR_ALIGN_OF_DOUBLE 8
#define PR_ALIGN_OF_POINTER 8
-#elif defined(__sparc__)
+#elif defined(__sparc64__)
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1

View File

@ -1,14 +0,0 @@
--- nsprpub/pr/include/md/_freebsd.h.orig Sat Apr 22 17:14:55 2006
+++ nsprpub/pr/include/md/_freebsd.h Sat Apr 22 17:14:47 2006
@@ -106,6 +106,11 @@
#define _PR_IPV6_V6ONLY_PROBE
#endif
+#if (__FreeBSD_version >= 700016) || (__FreeBSD_version < 700000 && __FreeBSD_version >= 601103)
+#define _PR_HAVE_GETPROTO_R
+#define _PR_HAVE_5_ARG_GETPROTO_R
+#endif
+
#define USE_SETJMP
#ifndef _PR_PTHREADS

View File

@ -1,47 +0,0 @@
--- configure.orig Wed Dec 22 19:34:26 2004
+++ configure Sun Jan 16 16:30:16 2005
@@ -9446,7 +9446,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 9452 "configure"
#include "confdefs.h"
@@ -9477,7 +9477,7 @@
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
- _ICONV_LIBS="$_ICONV_LIBS -liconv"
+ _ICONV_LIBS="$_ICONV_LIBS -L$LOCALBASE/lib -liconv"
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for libiconv in -liconv""... $ac_c" 1>&6
@@ -9487,7 +9487,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 9493 "configure"
#include "confdefs.h"
@@ -9518,7 +9518,7 @@
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
- _ICONV_LIBS="$_ICONV_LIBS -liconv"
+ _ICONV_LIBS="$_ICONV_LIBS -L$LOCALBASE/lib -liconv"
else
echo "$ac_t""no" 1>&6
fi
@@ -11847,7 +11847,7 @@
MOZ_COMPOSER=1
MOZ_PROFILESHARING=1
MOZ_APP_VERSION=$MOZILLA_VERSION
- MOZ_EXTENSIONS_DEFAULT=" cookie wallet content-packs xml-rpc xmlextras help p3p pref transformiix venkman inspector irc universalchardet typeaheadfind webservices spellcheck gnomevfs negotiateauth sroaming permissions"
+ MOZ_EXTENSIONS_DEFAULT=" cookie wallet content-packs xml-rpc xmlextras help p3p pref transformiix venkman inspector universalchardet typeaheadfind webservices spellcheck gnomevfs negotiateauth sroaming permissions"
;;
browser)

View File

@ -1,37 +0,0 @@
--- security/coreconf/FreeBSD.mk.orig Wed Mar 26 20:17:25 2003
+++ security/coreconf/FreeBSD.mk Thu Jul 8 12:56:24 2004
@@ -35,16 +35,18 @@
include $(CORE_DEPTH)/coreconf/UNIX.mk
-DEFAULT_COMPILER = gcc
-CC = gcc
-CCC = g++
+CCC = ${CXX}
RANLIB = ranlib
ifeq ($(OS_TEST),alpha)
CPU_ARCH = alpha
else
+ifeq ($(OS_TEST),amd64)
+CPU_ARCH = amd64
+else
CPU_ARCH = x86
endif
+endif
OS_CFLAGS = $(DSO_CFLAGS) -ansi -Wall -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK
@@ -71,7 +73,11 @@
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
endif

View File

@ -1,29 +0,0 @@
--- uriloader/exthandler/unix/nsGNOMERegistry.cpp.orig Fri Dec 24 04:30:00 2004
+++ uriloader/exthandler/unix/nsGNOMERegistry.cpp Fri Dec 24 04:34:05 2004
@@ -143,7 +143,7 @@
PR_END_MACRO
// Attempt to open libgconf
- gconfLib = LoadVersionedLibrary("gconf-2", ".4");
+ gconfLib = PR_LoadLibrary("libgconf-2.so");
ENSURE_LIB(gconfLib);
GET_LIB_FUNCTION(gconf, gconf_client_get_default);
@@ -151,7 +151,7 @@
GET_LIB_FUNCTION(gconf, gconf_client_get_bool);
// Attempt to open libgnome
- gnomeLib = LoadVersionedLibrary("gnome-2", ".0");
+ gnomeLib = PR_LoadLibrary("libgnome-2.so");
ENSURE_LIB(gnomeLib);
GET_LIB_FUNCTION(gnome, gnome_url_show);
@@ -160,7 +160,7 @@
GET_LIB_FUNCTION(gnome, gnome_program_get);
// Attempt to open libgnomevfs
- vfsLib = LoadVersionedLibrary("gnomevfs-2", ".0");
+ vfsLib = PR_LoadLibrary("libgnomevfs-2.so");
ENSURE_LIB(vfsLib);
GET_LIB_FUNCTION(vfs, gnome_vfs_mime_type_from_name);

View File

@ -1,11 +0,0 @@
--- xpcom/reflect/xptcall/public/xptcstubsdecl.inc.orig Tue Mar 16 03:07:25 2004
+++ xpcom/reflect/xptcall/public/xptcstubsdecl.inc Fri Mar 19 15:58:14 2004
@@ -8,7 +8,7 @@
* 1 is AddRef
* 2 is Release
*/
-#if !defined(__ia64) || (!defined(__hpux) && !defined(__linux__))
+#if !defined(__ia64)
NS_IMETHOD Stub3();
NS_IMETHOD Stub4();
NS_IMETHOD Stub5();

View File

@ -1,56 +0,0 @@
--- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig Thu Aug 14 21:00:23 2003
+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in Sun Feb 1 14:31:25 2004
@@ -49,6 +49,9 @@
ifeq (86,$(findstring 86,$(OS_TEST)))
CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp
endif
+ifeq (amd64,$(OS_TEST))
+CPPSRCS := xptcinvoke_amd64_freebsd.cpp xptcstubs_amd64_freebsd.cpp
+endif
endif
#
# New code for Linux, et. al., with gcc
@@ -59,8 +62,8 @@
CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp
endif
endif
-# IA64 Linux
-ifneq (,$(filter Linux,$(OS_ARCH)))
+# IA64 Linux & FreeBSD
+ifneq (,$(filter Linux FreeBSD,$(OS_ARCH)))
ifneq (,$(findstring ia64,$(OS_TEST)))
CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp
ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s
@@ -106,9 +109,15 @@
ASFILES := xptcinvoke_asm_osf1_alpha.s xptcstubs_asm_osf1_alpha.s
endif
#
+# FreeBSD/Alpha
+#
+ifeq ($(OS_ARCH)$(OS_TEST),FreeBSDalpha)
+CPPSRCS := xptcinvoke_freebsd_alpha.cpp xptcstubs_freebsd_alpha.cpp
+endif
+#
# Linux/Alpha
#
-ifneq (,$(filter Linuxalpha FreeBSDalpha NetBSDalpha,$(OS_ARCH)$(OS_TEST)))
+ifneq (,$(filter Linuxalpha NetBSDalpha,$(OS_ARCH)$(OS_TEST)))
CPPSRCS := xptcinvoke_linux_alpha.cpp xptcstubs_linux_alpha.cpp
endif
#
@@ -294,6 +303,15 @@
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
+#
+# FreeBSD/SPARC64
+#
+ifeq ($(OS_ARCH),FreeBSD)
+ifneq (,$(findstring sparc,$(OS_TEST)))
+CPPSRCS := xptcinvoke_sparc64_freebsd.cpp xptcstubs_sparc64_freebsd.cpp
+ASFILES := xptcinvoke_asm_sparc64_freebsd.s xptcstubs_asm_sparcv9_solaris.s
+endif
endif
#
# Solaris/SPARC

View File

@ -1,430 +0,0 @@
--- xpfe/bootstrap/mozilla.in.orig Sat Apr 17 18:51:11 2004
+++ xpfe/bootstrap/mozilla.in Tue Mar 1 00:12:20 2005
@@ -49,139 +49,319 @@
## 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
#set -x
-moz_libdir=%MOZAPPDIR%
-MRE_HOME=%MREDIR%
+#
+# variables
+#
+location="new-tab"
+#MOZILLA_UILOCALE="en-US"
+#MOZILLA_UIREGION="US"
-# honor MOZILLA_FIVE_HOME if it's there
-if [ -n "$MOZILLA_FIVE_HOME" ] ; then
- dist_bin="$MOZILLA_FIVE_HOME"
-else
- # Use run-mozilla.sh in the current dir if it exists
- # If not, then start resolving symlinks until we find run-mozilla.sh
- found=0
- progname=$0
- curdir=`dirname "$progname"`
- run_moz="$curdir/run-mozilla.sh"
- if test -x "$run_moz"; then
- dist_bin=$curdir
+#
+# 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
+found=0
+progname="$0"
+curdir=`dirname "$progname"`
+progbase=`basename "$progname"`
+run_moz="$curdir/run-mozilla.sh"
+# mozilla must obey MOZILLA_FIVE_HOME
+if [ -n "$MOZILLA_FIVE_HOME" -a -d "$MOZILLA_FIVE_HOME" -a \
+ -x "$MOZILLA_FIVE_HOME/run-mozilla.sh" ]; then
+ curdir="$MOZILLA_FIVE_HOME"
+ run_moz="$curdir/run-mozilla.sh"
+ dist_bin="$curdir"
found=1
- else
- here=`/bin/pwd`
- while [ -h "$progname" ]; do
- bn=`basename "$progname"`
- cd `dirname "$progname"`
- progname=`/bin/ls -l "$bn" |sed -e 's/^.* -> //' `
- if [ ! -x "$progname" ]; then
- break
- fi
- curdir=`dirname "$progname"`
- run_moz="$curdir/run-mozilla.sh"
- if [ -x "$run_moz" ]; then
- cd "$curdir"
- dist_bin=`pwd`
- found=1
- break
- fi
+elif [ -x "$run_moz" ]; then
+ dist_bin="$curdir"
+ found=1
+else
+ while [ -h "${progname}" ]; do
+ bn=`basename "${progname}"`
+ cd `dirname "${progname}"`
+ progname=`ls -l "${bn}" | sed -e 's/^.* -> //'`
+ if [ ! -x "$progname" ]; then
+ break
+ fi
+ curdir=`dirname "${progname}"`
+ run_moz="${curdir}/run-mozilla.sh"
+ if [ -x "${run_moz}" ]; then
+ cd "$curdir"
+ dist_bin=`pwd`
+ run_moz="${dist_bin}/run-mozilla.sh"
+ found=1
+ break
+ fi
done
- cd "$here"
- fi
- if [ $found = 0 ]; then
+ cd "${here}"
+fi
+if [ $found = 0 ]; then
# Check default compile-time libdir
- if [ -x "$moz_libdir/run-mozilla.sh" ]; then
- dist_bin=$moz_libdir
- else
- echo "Cannot find mozilla runtime directory. Exiting."
- exit 1
- fi
- fi
+ if [ -x "${moz_libdir}/run-mozilla.sh" ]; then
+ dist_bin="$moz_libdir"
+ run_moz="${dist_bin}/run-mozilla.sh"
+ else
+ echo "$0: Cannot find mozilla runtime directory. Exiting." 1>&2
+ exit 1
+ fi
fi
-script_args=""
-moreargs=""
-debugging=0
-MOZILLA_BIN="%MOZILLA-BIN%"
-
+MOZILLA_BIN="${progbase}-bin"
if [ "$OSTYPE" = "beos" ]; then
- mimeset -F $MOZILLA_BIN
+ mimeset -F "$MOZILLA_BIN"
fi
+# test for binary apps in ${dist_bin}
+if [ -x "${dist_bin}/${MOZILLA_BIN}" ]; then
+ MOZILLA_BIN="${dist_bin}/${progbase}-bin"
+else
+ echo "$0: Cannot find mozilla binary executable. Exiting." 1>&2
+ exit 1
+fi
+if [ -x "${dist_bin}/mozilla-xremote-client" ]; then
+ MOZ_CLIENT_PROGRAM="${dist_bin}/mozilla-xremote-client -a ${progbase}"
+else
+ MOZ_CLIENT_PROGRAM="${MOZILLA_BIN} -remote -a ${progbase}"
+fi
+
+# guest a default remote command
+_remote_cmd="xfeDoCommand(openBrowser)"
+
+# parse options
+script_args= # null
+moreargs= # null
+target= # null
+ALREADY_RUNNING="test"
while [ $# -gt 0 ]
do
- case "$1" in
- -p | -pure)
- MOZILLA_BIN="%MOZILLA-BIN%.pure"
- shift
- ;;
- -g | --debug)
- script_args="$script_args -g"
- debugging=1
- shift
- ;;
- -d | --debugger)
- script_args="$script_args -d $2"
- shift 2
- ;;
- *)
- moreargs="$moreargs \"$1\""
- shift 1
- ;;
- esac
+ if [ -n "${target}" ]; then
+ # well, this can't be the target if not last
+ moreargs="${moreargs} \"${target}\""
+ target= # null
+ fi
+ case "$1" in
+ # preserve [pP] for profile
+ --pure | -pure)
+ MOZILLA_BIN="${MOZILLA_BIN}.pure"
+ shift
+ ;;
+ -g | --debug)
+ script_args="${script_args} -g"
+ debugging=1
+ shift
+ ;;
+ -d | --debugger)
+ if [ -n "$2" ]; then
+ script_args="${script_args} -d $2"
+ shift 2
+ else
+ "$0: ERROR, $1 needs an argument. Exiting" 1>&2
+ exit 1
+ fi
+ ;;
+ -[Uu][Ii][Ll]ocale)
+ if [ -n "$2" ]; then
+ uilocale="$2"
+ shift 2
+ else
+ echo "$0: ERROR, $1 needs an argument. Exiting" 1>&2
+ exit 1
+ fi
+ ;;
+ -[Uu][Ii][Rr]egion)
+ if [ -n "$2" ]; then
+ uiregion="$2"
+ shift 2
+ else
+ echo "$0: ERROR, $1 needs an argument. Exiting" 1>&2
+ exit 1
+ fi
+ ;;
+ -browser)
+ # browser is default for mozilla
+ shift
+ ;;
+ -mail)
+ _remote_cmd="xfeDoCommand(openInbox)"
+ moreargs="${moreargs} $1"
+ shift
+ ;;
+ -compose)
+ _remote_cmd="xfeDoCommand(composeMessage)"
+ moreargs="${moreargs} $1"
+ shift
+ ;;
+ -turbo | -nosplash | -quiet)
+ # use remote even with this
+ moreargs="${moreargs} $1"
+ shift
+ ;;
+ -*)
+ # don't use remote with options
+ ALREADY_RUNNING= # null
+ moreargs="${moreargs} $1"
+ shift
+ ;;
+ *)
+ target="$1"
+ shift
+ ;;
+ esac
done
-export MRE_HOME
-eval "set -- $moreargs"
+# test for a running copy of firefox
+# seems this is not needed
+#if [-n "${ALREADY_RUNNING}" ]; then
+# if [ -n "${DISPLAY}" ]; then
+# if [ -n "${debugging}" ]; then
+# echo "${run_moz} ${MOZ_CLIENT_PROGRAM} ping()"
+# ${run_moz} ${MOZ_CLIENT_PROGRAM} 'ping()' && ALREADY_RUNNING="yes"
+# else
+# ${run_moz} ${MOZ_CLIENT_PROGRAM} 'ping()' >/dev/null 2>&1 &&
+# ALREADY_RUNNING="yes"
+# fi
+# elif [ -n "${debugging}" ]; then
+# echo "$0: WARN, no DISPLAY environment" 1>&2
+# fi
+#fi
+
+# process target
+if [ -n "${target}" ]; then
+ moreargs="${moreargs} \"${target}\""
+ if [ -n "${ALREADY_RUNNING}" ]; then
+ if [ `expr "${target}" : '.*:.*'` -eq 0 ]; then
+ if [ `expr "${target}" : '/.*'` -eq 0 ]; then
+ target="${here}/${target}"
+ fi
+ if [ -r "${target}" -o -d "${target}" ]; then
+ [ -n "${use_openFile}" ] || target="file://${target}"
+ else
+ echo "$0: WARN, target: ${target} not an URI/file/dir" 1>&2
+ ALREADY_RUNNING= # null
+ fi
+ else
+ # an former URI, don't use openFile
+ use_openFile= # null
+ fi
+ fi
+fi
+
+# try remote protocol if running
+if [ -n "${ALREADY_RUNNING}" ]; then
+ if [ -n "${target}" ]; then
+ if [ -n "${use_openFile}" ]; then
+ _remote_cmd="openFile(${target})"
+ elif [ -n "${location}" ]; then
+ _remote_cmd="openURL(${target},${location})"
+ else
+ _remote_cmd="openURL(${target})"
+ fi
+ fi
+ # FIXME problems with freedesktop StartupNotify
+ if [ -n "${debugging}" ]; then
+ echo "${run_moz} ${script_args} ${MOZ_CLIENT_PROGRAM} ${_remote_cmd}"
+ fi
+ ${run_moz} ${script_args} ${MOZ_CLIENT_PROGRAM} ${_remote_cmd} && exit 0
+fi
+
+# fallback to direct invocation
+
+# UILocale, UIRegion
+if [ -z "${uilocale}" -a -n "${MOZILLA_UILOCALE}" ]; then
+ uilocale="${MOZILLA_UILOCALE}"
+fi
+if [ -z "${uiregion}" -a -n "${MOZILLA_UIREGION}" ]; then
+ uiregion="${MOZILLA_UIREGION}"
+fi
+if [ -n "${uiregion}" -a -z "${uilocale}" ]; then
+ uilocale="en-US"
+fi
+if [ -n "${uilocale}" ]; then
+ if [ -n "${uiregion}" ]; then
+ moreargs="-UIRegion ${uiregion} ${moreargs}"
+ fi
+ moreargs="-UILocale ${uilocale} ${moreargs}"
+fi
+
+# real invocation
+eval "set -- ${moreargs}"
## Start addon scripts
moz_pis_startstop_scripts "start"
-if [ $debugging = 1 ]
-then
- echo $dist_bin/run-mozilla.sh $script_args $dist_bin/$MOZILLA_BIN "$@"
+if [ -n "${debugging}" ]; then
+ echo "${run_moz} ${script_args} ${MOZILLA_BIN} $@"
fi
-"$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" "$@"
+${run_moz} ${script_args} ${MOZILLA_BIN} "$@"
exitcode=$?
## Stop addon scripts

View File

@ -1,459 +0,0 @@
--- 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"
+

View File

@ -1,386 +0,0 @@
--- /dev/null Wed Dec 31 16:00:00 1969
+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_amd64_freebsd.cpp Thu Oct 16 22:59:43 2003
@@ -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;
+}
--- /dev/null Wed Dec 31 16:00:00 1969
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_amd64_freebsd.cpp Thu Oct 16 23:01:08 2003
@@ -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

@ -1,38 +0,0 @@
--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ipf64.s.orig Sun Jul 20 00:05:32 2003
+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ipf64.s Sun Jul 20 00:06:37 2003
@@ -8,6 +8,7 @@
// Section has executable code
.section .text, "ax","progbits"
// procedure named 'XPTC_InvokeByIndex'
+ .global XPTC_InvokeByIndex
.proc XPTC_InvokeByIndex
// manual bundling
.explicit
@@ -24,7 +25,7 @@
// XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
// PRUint32 paramCount, nsXPTCVariant* params);
-XPTC_InvokeByIndex::
+XPTC_InvokeByIndex:
.prologue
.save ar.pfs, r37
// allocate 4 input args, 6 local args, and 8 output args
--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ipf64.s.orig Sun Jul 20 00:02:02 2003
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ipf64.s Sun Jul 20 00:02:40 2003
@@ -6,6 +6,7 @@
// Section has executable code
.section .text, "ax","progbits"
// procedure named 'SharedStub'
+ .global SharedStub
.proc SharedStub
// manual bundling
.explicit
@@ -14,7 +15,7 @@
// .exclass PrepareAndDispatch, @fullyvisible
.type PrepareAndDispatch,@function
-SharedStub::
+SharedStub:
// 9 arguments, first 8 are the input arguments of previous
// function call. The last one is methodIndex, and is passed in memory
.prologue

View File

@ -1,327 +0,0 @@
--- /dev/null Mon May 26 13:22:00 2003
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_sparc64_freebsd.cpp Mon May 26 04:12:55 2003
@@ -0,0 +1,123 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * The contents of this file are subject to the Mozilla 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/MPL/
+ *
+ * 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) 2001 Netscape Communications Corporation. All
+ * Rights Reserved.
+ *
+ * Contributor(s):
+ * Stuart Parmenter <pavlov@netscape.com>
+ */
+
+/* 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 = *((PRInt64*) ap); break;
+ case nsXPTType::T_I16 : dp->val.i16 = *((PRInt64*) ap); break;
+ case nsXPTType::T_I32 : dp->val.i32 = *((PRInt64*) 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 = *((PRUint64*) ap); break;
+ case nsXPTType::T_U16 : dp->val.u16 = *((PRUint64*)ap); break;
+ case nsXPTType::T_U32 : dp->val.u32 = *((PRUint64*)ap); break;
+ case nsXPTType::T_FLOAT : dp->val.f = ((float*) ap)[1]; break;
+ case nsXPTType::T_BOOL : dp->val.b = *((PRInt64*) ap); break;
+ case nsXPTType::T_CHAR : dp->val.c = *((PRUint64*) ap); break;
+ case nsXPTType::T_WCHAR : dp->val.wc = *((PRInt64*) 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__ */
--- /dev/null Mon May 26 13:22:00 2003
+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_sparc64_freebsd.s Mon May 26 04:06:09 2003
@@ -0,0 +1,104 @@
+/* -*- Mode: asm; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * The contents of this file are subject to the Mozilla 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/MPL/
+ *
+ * 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) 2001 Netscape Communications Corporation. All
+ * Rights Reserved.
+ *
+ * Contributor(s):
+ * Stuart Parmenter <pavlov@netscape.com>
+ * Chris Seawood <cls@seawood.org>
+ */
+
+/*
+ Platform specific code to invoke XPCOM methods on native objects
+ for sparcv9 Solaris.
+
+ See the SPARC Compliance Definition (SCD) Chapter 3
+ for more information about what is going on here, including
+ the use of BIAS (0x7ff).
+ The SCD is available from http://www.sparc.com/.
+*/
+
+ .global XPTC_InvokeByIndex
+ .type XPTC_InvokeByIndex, #function
+
+/*
+ XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
+ PRUint32 paramCount, nsXPTCVariant* params);
+
+*/
+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 %d2
+ 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
+! add %l0,16,%l0 ! there are 2 extra entries in the vTable (16bytes)
+ ldx [%i0],%l1 ! *that --> address of vtable
+ ldx [%l0 + %l1],%l0 ! that->vtable[index * 8 + 16] --> 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
--- /dev/null Mon May 26 14:00:00 2003
+++ xpcom/reflect/xptcall/src/md/unix/xptcinvoke_sparc64_freebsd.cpp Mon May 26 14:00:49 2003
@@ -0,0 +1,91 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * The contents of this file are subject to the Mozilla 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/MPL/
+ *
+ * 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) 2001 Netscape Communications Corporation. All
+ * Rights Reserved.
+ *
+ * Contributor(s):
+ * Stuart Parmenter <pavlov@netscape.com>
+ * Chris Seawood <cls@seawood.org>
+ */
+
+
+/* Platform specific code to invoke XPCOM methods on native objects */
+
+#include "xptcprivate.h"
+
+#if !defined(__sparc) && !defined(__sparc__)
+#error "This code is for Sparc only"
+#endif
+
+/* Prototype specifies unmangled function name */
+extern "C" PRUint64
+invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount, nsXPTCVariant* s);
+
+extern "C" PRUint64
+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

@ -1,9 +0,0 @@
This is the current release of the Mozilla open source web browser. It should
be fully compliant with all W3C standards, including HTML, CSS, XML, XSL,
JavaScript, MathML, SSL encryption, SVG and RDF. Also supports Java with
the use of the FreeBSD native Java plug-in.
This is the latest bleeding edge release. Beware that you'll probably find
bugs here, so if you value stability, try www/mozilla.
WWW: http://www.mozilla.org/