mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 640838: Remove OpenVMS support. r=khuey
This commit is contained in:
parent
36e293870e
commit
355ae99518
@ -53,8 +53,3 @@ include $(topsrcdir)/config/rules.mk
|
||||
|
||||
libs:: $(srcdir)/run-mozilla.sh
|
||||
$(INSTALL) $< $(DIST)/bin
|
||||
|
||||
ifeq ($(OS_ARCH),OpenVMS)
|
||||
libs:: vms/mozilla.com vms/install.com vms/getinfo.com
|
||||
$(INSTALL) $? $(DIST)/bin
|
||||
endif
|
||||
|
@ -1,6 +0,0 @@
|
||||
! Component global symbol file, used for all true XPCOM components (those
|
||||
! which have IS_COMPONENT defined in their Makefile.
|
||||
!
|
||||
GSMATCH=LEQUAL,1,1
|
||||
case_sensitive=YES
|
||||
SYMBOL_VECTOR=(NSGetModule=PROCEDURE)
|
@ -1,36 +0,0 @@
|
||||
$ verify = 'f$verify(0)
|
||||
$ if p1 .eqs. "DECW" then goto decw
|
||||
$!
|
||||
$! This command file in not used by the Mozilla/CSWB software.
|
||||
$! It is here because if you report a software problem you may be asked
|
||||
$! to run it and send the output back to the support specialist.
|
||||
$!
|
||||
$ set verify
|
||||
$ set noon
|
||||
$ show process /quota
|
||||
$ show display
|
||||
$ write sys$output f$environment("procedure")
|
||||
$ show log /ful sys$disk,sys$login,tmp,home
|
||||
$ show log /ful decc*
|
||||
$ dir sys$login.;
|
||||
$ run sys$common:[syshlp.examples.decw.utils]xdpyinfo.exe
|
||||
$ show system /noprocess
|
||||
$ ucx show version
|
||||
$ type sys$sysroot:[sysmgr]decw$private_server_setup.com
|
||||
$ set noverify
|
||||
$ @sys$update:decw$versions all
|
||||
$decw:
|
||||
$ c = ""
|
||||
$f_loop:
|
||||
$ pid = f$pid(c)
|
||||
$ if pid .eqs. ""
|
||||
$ then
|
||||
$ write sys$output "Unable to find DECW$SERVER process"
|
||||
$ exit
|
||||
$ endif
|
||||
$ if f$getjpi(pid,"prcnam") .nes. "DECW$SERVER_0" then goto f_loop
|
||||
$loop:
|
||||
$ quota = f$getjpi(pid,"pgflquota")
|
||||
$ inuse = f$getjpi(pid,"pagfilcnt")
|
||||
$ write sys$output f$fao("!UL remaining out of !UL at !%D",inuse,quota,0)
|
||||
$ if verify then set verify
|
@ -1,52 +0,0 @@
|
||||
$! Command file to install/deinstall Mozilla image.
|
||||
$! This command file must exist in the root Mozilla directory (where the main
|
||||
$! images and shareables reside).
|
||||
$!
|
||||
$! P1 = INSTALL command to use.
|
||||
$! Default is "ADD /OPEN /HEADER_RESIDENT /SHARE"
|
||||
$! To remove previously installed images pass REMOVE as P1.
|
||||
$!
|
||||
$ saved_dir = f$environment("default")
|
||||
$!
|
||||
$ if p1 .eqs. "" then p1 = "add /open /head /share"
|
||||
$ me = f$envir("procedure")
|
||||
$ here = f$parse(me,,,"device") + f$parse(me,,,"directory")
|
||||
$!
|
||||
$! Main image(s).
|
||||
$!
|
||||
$ call do_many "''p1'" "''here'*-bin."
|
||||
$!
|
||||
$! All the .so files in the main directory.
|
||||
$!
|
||||
$ call do_many "''p1'" "''here'*.so"
|
||||
$!
|
||||
$! All the .so files in the components directory.
|
||||
$!
|
||||
$ set default 'here'
|
||||
$ set default [.components]
|
||||
$ me = f$envir("default")
|
||||
$ here = f$parse(me,,,"device") + f$parse(me,,,"directory")
|
||||
$ call do_many "''p1'" "''here'*.so"
|
||||
$!
|
||||
$ set default 'saved_dir'
|
||||
$ exit
|
||||
$!
|
||||
$do_one:
|
||||
$ subroutine
|
||||
$ write sys$output "Doing ",p2
|
||||
$ install 'p1' 'p2'
|
||||
$ endsubroutine
|
||||
$!
|
||||
$!
|
||||
$do_many:
|
||||
$ subroutine
|
||||
$loop:
|
||||
$ f=f$search(p2)
|
||||
$ if f .nes. ""
|
||||
$ then
|
||||
$ v=f$parse(f,,,"version")
|
||||
$ f=f-v
|
||||
$ call do_one "''p1'" "''f'"
|
||||
$ goto loop
|
||||
$ endif
|
||||
$ endsubroutine
|
@ -1,26 +0,0 @@
|
||||
! Fixed section of symbol vector for LIBXPCOM (debug)
|
||||
!
|
||||
GSMATCH=LEQUAL,2,2
|
||||
case_sensitive=YES
|
||||
!
|
||||
! --------------------------------------------------------------------------
|
||||
! Ident 2,1 introduced for M0.9.4
|
||||
! --------------------------------------------------------------------------
|
||||
!
|
||||
SYMBOL_VECTOR=(CXX$assgnfrmhlpr13nsCMPt3okfmbt=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CXX$clk16nsQeryntrfcxnk434ulf1t=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CXX$clk17nsGtSrvcByCDxnk20ffnk0=PROCEDURE)
|
||||
SYMBOL_VECTOR=(SPARE) ! __dt__13nsCOMPtr_basexv not present in debug
|
||||
!
|
||||
! --------------------------------------------------------------------------
|
||||
! Ident 2,2 introduced for Mozilla 1.1 (and hence CSWB post 1.0).
|
||||
! --------------------------------------------------------------------------
|
||||
!
|
||||
SYMBOL_VECTOR=(iid__L0__GetIID__9nsIModulexv=DATA)
|
||||
SYMBOL_VECTOR=(iid__L0__GetIID__10nsIFactoryxv=DATA)
|
||||
SYMBOL_VECTOR=(CXX$iidL0GtID11nsRnnblxv3t05kum=DATA)
|
||||
SYMBOL_VECTOR=(CXX$GtGlblSrvcMngr16nsSr1vcg2p7=PROCEDURE)
|
||||
!
|
||||
! --------------------------------------------------------------------------
|
||||
! End of fixed section
|
||||
! --------------------------------------------------------------------------
|
@ -1,26 +0,0 @@
|
||||
! Fixed section of symbol vector for LIBXPCOM (non-debug)
|
||||
!
|
||||
GSMATCH=LEQUAL,2,2
|
||||
case_sensitive=YES
|
||||
!
|
||||
! --------------------------------------------------------------------------
|
||||
! Ident 2,1 introduced for M0.9.4
|
||||
! --------------------------------------------------------------------------
|
||||
!
|
||||
SYMBOL_VECTOR=(CXX$assgnfrmhlpr13nsCMPt3okfmbt=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CXX$clk16nsQeryntrfcxnk434ulf1t=PROCEDURE)
|
||||
SYMBOL_VECTOR=(CXX$clk17nsGtSrvcByCDxnk20ffnk0=PROCEDURE)
|
||||
SYMBOL_VECTOR=(__dt__13nsCOMPtr_basexv=PROCEDURE)
|
||||
!
|
||||
! --------------------------------------------------------------------------
|
||||
! Ident 2,2 introduced for Mozilla 1.1 (and hence CSWB post 1.0).
|
||||
! --------------------------------------------------------------------------
|
||||
!
|
||||
SYMBOL_VECTOR=(iid__L0__GetIID__9nsIModulexv=DATA)
|
||||
SYMBOL_VECTOR=(iid__L0__GetIID__10nsIFactoryxv=DATA)
|
||||
SYMBOL_VECTOR=(CXX$iidL0GtID11nsRnnblxv3t05kum=DATA)
|
||||
SYMBOL_VECTOR=(CXX$GtGlblSrvcMngr16nsSr1vcg2p7=PROCEDURE)
|
||||
!
|
||||
! --------------------------------------------------------------------------
|
||||
! End of fixed section
|
||||
! --------------------------------------------------------------------------
|
@ -1,172 +0,0 @@
|
||||
$! Command file to run Mozilla.
|
||||
$! This command file must exist in the root Mozilla directory (where the main
|
||||
$! images and shareables reside).
|
||||
$!
|
||||
$ moz_self = f$envir("procedure")
|
||||
$ moz_dir = f$parse(moz_self,,,"device") + f$parse(moz_self,,,"directory")
|
||||
$!
|
||||
$ moz_user = f$edit(f$getjpi("","username"),"trim")
|
||||
$ moz_cwd = f$environment("default")
|
||||
$ moz_image = f$trnlnm("MOZILLA_IMAGE")
|
||||
$ if moz_image .eqs. ""
|
||||
$ then
|
||||
$ moz_image = f$search("''moz_dir'*-bin.;")
|
||||
$ if moz_image .nes. ""
|
||||
$ then
|
||||
$ moz_image = f$parse(moz_image,,,"name")
|
||||
$ else
|
||||
$ moz_image = "mozilla-bin"
|
||||
$ endif
|
||||
$ endif
|
||||
$!
|
||||
$ moz_gblpages_needed = (336 * 120/100)
|
||||
$ moz_gblsects_needed = (1 * 120/100)
|
||||
$ moz_gblpages_actual = f$getsyi("free_gblpages")
|
||||
$ moz_gblsects_actual = f$getsyi("free_gblsects")
|
||||
$ moz_wait = 0
|
||||
$ if moz_gblpages_actual .lt. moz_gblpages_needed
|
||||
$ then
|
||||
$ write sys$output -
|
||||
f$fao("WARNING, estimated global pages needed=!UL, available=!UL",-
|
||||
moz_gblpages_needed, moz_gblpages_actual)
|
||||
$ moz_wait = 1
|
||||
$ endif
|
||||
$ if moz_gblsects_actual .lt. moz_gblsects_needed
|
||||
$ then
|
||||
$ write sys$output -
|
||||
f$fao("WARNING, estimated global sections needed=!UL, available=!UL",-
|
||||
moz_gblsects_needed, moz_gblsects_actual)
|
||||
$ moz_wait = 1
|
||||
$ endif
|
||||
$ if moz_wait .and. (f$mode() .eqs. "INTERACTIVE")
|
||||
$ then
|
||||
$ type sys$input
|
||||
|
||||
The above system parameter(s) may not be sufficient to
|
||||
successfully run Mozilla.
|
||||
|
||||
$ read/prompt="Do you wish to continue [NO]: " sys$command moz_ans
|
||||
$ if .not. moz_ans then exit
|
||||
$ endif
|
||||
$!
|
||||
$! We need the directory as a unix-style spec.
|
||||
$!
|
||||
$ moz_unix = "/" + f$parse(moz_self,,,"device") - ":"
|
||||
$ moz_self_dir = f$parse(moz_self,,,"directory") - "[" - "]" - "<" - ">"
|
||||
$ i=0
|
||||
$uloop:
|
||||
$ e=f$element(i,".",moz_self_dir)
|
||||
$ if e .nes. "."
|
||||
$ then
|
||||
$ moz_unix = moz_unix + "/" + e
|
||||
$ i=i+1
|
||||
$ goto uloop
|
||||
$ endif
|
||||
$ moz_unix = f$edit(moz_unix,"lowercase")
|
||||
$!
|
||||
$ moz_found_one = 0
|
||||
$so_loop:
|
||||
$ moz_so_file = f$search("''moz_dir'*.so")
|
||||
$ if moz_so_file .nes. ""
|
||||
$ then
|
||||
$ name = f$parse(moz_so_file,,,"name")
|
||||
$ define /user 'name' 'moz_dir''name'.so
|
||||
$ moz_found_one = 1
|
||||
$ goto so_loop
|
||||
$ endif
|
||||
$ if .not. moz_found_one
|
||||
$ then
|
||||
$ write sys$output "Unable to locate Mozilla images. Most likely reason is"
|
||||
$ write sys$output "because the protection on the directory"
|
||||
$ write sys$output moz_dir
|
||||
$ write sys$output "does not allow you READ access."
|
||||
$ exit
|
||||
$ endif
|
||||
$!
|
||||
$ ipc_shr = f$trnlnm("ucx$ipc_shr") - ".EXE" + ".EXE"
|
||||
$ if (f$locate("MULTINET",ipc_shr) .ne. f$length(ipc_shr)) .or. -
|
||||
(f$locate("TCPWARE",ipc_shr) .ne. f$length(ipc_shr))
|
||||
$ then
|
||||
$ define /user VMS_NULL_DL_NAME 'ipc_shr'
|
||||
$ else
|
||||
$ define /user VMS_NULL_DL_NAME SYS$SHARE:TCPIP$IPC_SHR.EXE
|
||||
$ endif
|
||||
$ define /user GETADDRINFO TCPIP$GETADDRINFO
|
||||
$ define /user FREEADDRINFO TCPIP$FREEADDRINFO
|
||||
$ define /user GETNAMEINFO TCPIP$GETNAMEINFO
|
||||
$ define /user GETIPNODEBYNAME TCPIP$GETIPNODEBYNAME
|
||||
$ define /user GETIPNODEBYADDR TCPIP$GETIPNODEBYADDR
|
||||
$ define /user FREEHOSTENT TCPIP$FREEHOSTENT
|
||||
$!
|
||||
$! A networking problem which is still unresolved means that by default
|
||||
$! the IPv6 support is disabled. If you want to turn it back on define
|
||||
$! the logical MOZILLA_IPV6 (to anything), but beware that you may
|
||||
$! encounter hangs.
|
||||
$!
|
||||
$ if f$trnlnm("MOZILLA_IPV6") .eqs. ""
|
||||
$ then
|
||||
$ define /user /nolog GETIPNODEBYNAME NO_SUCH_NAME
|
||||
$ endif
|
||||
$!
|
||||
$! These logicals define how files are created/opened.
|
||||
$! The old code used: "shr=get,put", "rfm=stmlf", "deq=500", "fop=dfw,tef"
|
||||
$!
|
||||
$! Executables
|
||||
$ define /user VMS_OPEN_ARGS_1 ".EXE.SO.SFX_AXPEXE.SFX_VAXEXE", -
|
||||
"ctx=stm", "rfm=fix", "rat=none", "mrs=512"
|
||||
$!
|
||||
$! VMS savesets
|
||||
$ define /user VMS_OPEN_ARGS_2 ".BCK.SAV", -
|
||||
"ctx=stm", "rfm=fix", "rat=none", "mrs=32256"
|
||||
$!
|
||||
$! Binary files. STM doesn't work, needs to be STMLF.
|
||||
$ define /user VMS_OPEN_ARGS_3 "..DB.GIF.JAR.JPG.MAB.MFASL.MSF.WAV.XPM.XPT", -
|
||||
"ctx=stm", "rfm=stmlf", "rat=none"
|
||||
$!
|
||||
$! Text files - covered by the catchall
|
||||
$! ".BAK.COM.CSS.DAT.DTD.HTM.HTML.JS.RDF.NET.ORG.SH.SRC.TBL.TXT.XML.XUL"
|
||||
$!
|
||||
$ define /user VMS_OPEN_ARGS_4 " ",-
|
||||
"rfm=stmlf", "rat=cr"
|
||||
$!
|
||||
$ if f$trnlnm("USER") .eqs. "" then define /user user "''moz_user'"
|
||||
$ if f$trnlnm("LOGNAME") .eqs. "" then define /user logname "''moz_user'"
|
||||
$ define /user MOZILLA_FIVE_HOME "''moz_unix'"
|
||||
$ define /user VMS_USE_VMS_DEF_PROT 1
|
||||
$ define /user VMS_ACCESS_FIX_WOK 1
|
||||
$! define /user VMS_FILE_OPEN_MODE 3
|
||||
$! define /user VMS_POLL_TIMER_MIN 10
|
||||
$! define /user VMS_POLL_TIMER_DELTA 0
|
||||
$! define /user VMS_POLL_TIMER_MAX 200
|
||||
$! define /user NSPR_LOG_MODULES "all:5"
|
||||
$! define /user NSPR_LOG_FILE dkb100:[work]log.log
|
||||
$! define /user VMS_TRACE_FILENAMES 1
|
||||
$!
|
||||
$ define /user DECC$EFS_CASE_PRESERVE 0
|
||||
$!
|
||||
$! GTK key mapping mode: 0=none, 1=LK, 2=PC
|
||||
$ if f$trnlnm("GTK_KEY_MAPPING_MODE") .eqs. "" then -
|
||||
define /user GTK_KEY_MAPPING_MODE 1
|
||||
$!
|
||||
$ write sys$output "Starting ''moz_image'..."
|
||||
$ mcr 'moz_dir''moz_image'. 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8'
|
||||
$ set default 'moz_dir'
|
||||
$ if f$search("[.chrome]*.*;-1") .nes. ""
|
||||
$ then
|
||||
$ set default [.chrome]
|
||||
$ moz_chrome = f$environment("default")
|
||||
$ purge 'moz_chrome'
|
||||
$ moz_ver = f$parse(f$search("''moz_chrome'all-skins.rdf"),,,"version") - ";"
|
||||
$ if moz_ver .gt. 10000 then rename 'moz_chrome'*.rdf *.*;1
|
||||
$ endif
|
||||
$!
|
||||
$ moz_keep = f$trnlnm("MOZILLA_PURGE_KEEP")
|
||||
$ if moz_keep .eqs. "" then moz_keep = "5"
|
||||
$ set default sys$login
|
||||
$ if f$search("[._MOZILLA.*]*.*") .nes. ""
|
||||
$ then
|
||||
$ purge /keep='moz_keep' [._mozilla.*...]
|
||||
$ endif
|
||||
$ set default 'moz_cwd'
|
||||
$!
|
||||
$ exit
|
@ -434,23 +434,6 @@ ifeq ($(SOLARIS_SUNPRO_CXX),1)
|
||||
GARBAGE_DIRS += SunWS_cache
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OpenVMS)
|
||||
GARBAGE += $(wildcard *.*_defines)
|
||||
ifdef SHARED_LIBRARY
|
||||
VMS_SYMVEC_FILE = $(SHARED_LIBRARY:$(DLL_SUFFIX)=_symvec.opt)
|
||||
ifdef MOZ_DEBUG
|
||||
VMS_SYMVEC_FILE_MODULE = $(topsrcdir)/build/unix/vms/$(notdir $(SHARED_LIBRARY:$(DLL_SUFFIX)=_dbg_symvec.opt))
|
||||
else
|
||||
VMS_SYMVEC_FILE_MODULE = $(topsrcdir)/build/unix/vms/$(notdir $(SHARED_LIBRARY:$(DLL_SUFFIX)=_symvec.opt))
|
||||
endif
|
||||
VMS_SYMVEC_FILE_COMP = $(topsrcdir)/build/unix/vms/component_symvec.opt
|
||||
GARBAGE += $(VMS_SYMVEC_FILE)
|
||||
ifdef IS_COMPONENT
|
||||
DSO_LDOPTS := $(filter-out -auto_symvec,$(DSO_LDOPTS)) $(VMS_SYMVEC_FILE)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
XPIDL_GEN_DIR = _xpidlgen
|
||||
|
||||
ifdef MOZ_UPDATE_XTERM
|
||||
@ -1180,20 +1163,6 @@ $(SHARED_LIBRARY): $(OBJS) $(LOBJS) $(DEF_FILE) $(RESFILE) $(SHARED_LIBRARY_LIBS
|
||||
ifndef INCREMENTAL_LINKER
|
||||
rm -f $@
|
||||
endif
|
||||
ifeq ($(OS_ARCH),OpenVMS)
|
||||
@if test ! -f $(VMS_SYMVEC_FILE); then \
|
||||
if test -f $(VMS_SYMVEC_FILE_MODULE); then \
|
||||
echo Creating specific component options file $(VMS_SYMVEC_FILE); \
|
||||
cp $(VMS_SYMVEC_FILE_MODULE) $(VMS_SYMVEC_FILE); \
|
||||
fi; \
|
||||
fi
|
||||
ifdef IS_COMPONENT
|
||||
@if test ! -f $(VMS_SYMVEC_FILE); then \
|
||||
echo Creating generic component options file $(VMS_SYMVEC_FILE); \
|
||||
cp $(VMS_SYMVEC_FILE_COMP) $(VMS_SYMVEC_FILE); \
|
||||
fi
|
||||
endif
|
||||
endif # OpenVMS
|
||||
ifdef DTRACE_LIB_DEPENDENT
|
||||
ifndef XP_MACOSX
|
||||
dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
|
||||
|
40
configure.in
40
configure.in
@ -1343,9 +1343,6 @@ UNIX_SYSTEM_V)
|
||||
;;
|
||||
OSF1)
|
||||
;;
|
||||
*OpenVMS*)
|
||||
HOST_OS_ARCH=OpenVMS
|
||||
;;
|
||||
OS_2)
|
||||
HOST_OS_ARCH=OS2
|
||||
;;
|
||||
@ -1434,11 +1431,6 @@ OSF1)
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*OpenVMS*)
|
||||
OS_ARCH=OpenVMS
|
||||
OS_RELEASE=`uname -v`
|
||||
OS_TEST=`uname -p`
|
||||
;;
|
||||
OS_2)
|
||||
OS_ARCH=OS2
|
||||
OS_TARGET=OS2
|
||||
@ -2614,25 +2606,6 @@ ia64*-hpux*)
|
||||
fi
|
||||
;;
|
||||
|
||||
*-openvms*)
|
||||
AC_DEFINE(NO_PW_GECOS)
|
||||
AC_DEFINE(NO_UDSOCK)
|
||||
AC_DEFINE(POLL_WITH_XCONNECTIONNUMBER)
|
||||
USE_PTHREADS=1
|
||||
MKSHLIB_FORCE_ALL='-all'
|
||||
MKSHLIB_UNFORCE_ALL='-none'
|
||||
AS='as'
|
||||
AS_DASH_C_FLAG='-Wc/names=as_is'
|
||||
AR_FLAGS='c $@'
|
||||
DSO_LDOPTS='-shared -auto_symvec'
|
||||
DSO_PIC_CFLAGS=
|
||||
MOZ_DEBUG_LDFLAGS='-g'
|
||||
COMPAQ_CXX=1
|
||||
CC_VERSION=`$CC -V 2>&1 | awk '/ C / { print $3 }'`
|
||||
CXX_VERSION=`$CXX -V 2>&1 | awk '/ C\+\+ / { print $3 }'`
|
||||
;;
|
||||
|
||||
|
||||
*-os2*)
|
||||
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
|
||||
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
|
||||
@ -2895,9 +2868,6 @@ case "$target" in
|
||||
*-aix4.3*|*-aix5*)
|
||||
NO_LD_ARCHIVE_FLAGS=
|
||||
;;
|
||||
*-openvms*)
|
||||
NO_LD_ARCHIVE_FLAGS=
|
||||
;;
|
||||
*-mingw*|*-wince|*-winmo)
|
||||
if test -z "$GNU_CC"; then
|
||||
NO_LD_ARCHIVE_FLAGS=
|
||||
@ -8245,11 +8215,7 @@ MOZ_ARG_DISABLE_BOOL(md,
|
||||
fi])
|
||||
if test "$_cpp_md_flag"; then
|
||||
COMPILER_DEPEND=1
|
||||
if test "$OS_ARCH" = "OpenVMS"; then
|
||||
_DEPEND_CFLAGS='$(subst =, ,$(filter-out %/.pp,-MM=-MD=-MF=$(MDDEPDIR)/$(basename $(@F)).pp))'
|
||||
else
|
||||
_DEPEND_CFLAGS='$(filter-out %/.pp,-MD -MF $(MDDEPDIR)/$(basename $(@F)).pp)'
|
||||
fi
|
||||
_DEPEND_CFLAGS='$(filter-out %/.pp,-MD -MF $(MDDEPDIR)/$(basename $(@F)).pp)'
|
||||
dnl Sun Studio on Solaris use -xM instead of -MD, see config/rules.mk
|
||||
if test "$SOLARIS_SUNPRO_CC"; then
|
||||
_DEPEND_CFLAGS=
|
||||
@ -9297,8 +9263,6 @@ dnl ========================================================
|
||||
if test "$OS_ARCH" = "Darwin"; then
|
||||
AC_DEFINE(XP_UNIX)
|
||||
AC_DEFINE(UNIX_ASYNC_DNS)
|
||||
elif test "$OS_ARCH" = "OpenVMS"; then
|
||||
AC_DEFINE(XP_UNIX)
|
||||
elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2" -a "$OS_ARCH" != "WINCE"; then
|
||||
AC_DEFINE(XP_UNIX)
|
||||
AC_DEFINE(UNIX_ASYNC_DNS)
|
||||
@ -9435,8 +9399,6 @@ dnl If it fails, nothing is set and config.status will run as usual.
|
||||
dnl
|
||||
dnl This does not change the $MAKEFILES variable.
|
||||
dnl
|
||||
dnl OpenVMS gets a line overflow on the long eval command, so use a temp file.
|
||||
dnl
|
||||
echo $MAKEFILES | ${PERL} $srcdir/build/autoconf/acoutput-fast.pl > conftest.sh
|
||||
. ./conftest.sh
|
||||
rm conftest.sh
|
||||
|
@ -99,7 +99,3 @@ ifndef GNU_CC
|
||||
DEFINES += -D_TIME_H=1
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), OpenVMS)
|
||||
DEFINES += -DGENERIC_MOTIF_REDEFINES
|
||||
endif
|
||||
|
@ -652,7 +652,7 @@ LIBS += C:/Program\ Files/Intel/VTune/Analyzer/Lib/VtuneApi.lib
|
||||
endif
|
||||
|
||||
# HP-UX does not require the extra linking of "-lm"
|
||||
ifeq (,$(filter HP-UX WINNT WINCE OpenVMS OS2,$(OS_ARCH)))
|
||||
ifeq (,$(filter HP-UX WINNT WINCE OS2,$(OS_ARCH)))
|
||||
EXTRA_LIBS += -lm
|
||||
endif
|
||||
|
||||
|
@ -434,23 +434,6 @@ ifeq ($(SOLARIS_SUNPRO_CXX),1)
|
||||
GARBAGE_DIRS += SunWS_cache
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OpenVMS)
|
||||
GARBAGE += $(wildcard *.*_defines)
|
||||
ifdef SHARED_LIBRARY
|
||||
VMS_SYMVEC_FILE = $(SHARED_LIBRARY:$(DLL_SUFFIX)=_symvec.opt)
|
||||
ifdef MOZ_DEBUG
|
||||
VMS_SYMVEC_FILE_MODULE = $(topsrcdir)/build/unix/vms/$(notdir $(SHARED_LIBRARY:$(DLL_SUFFIX)=_dbg_symvec.opt))
|
||||
else
|
||||
VMS_SYMVEC_FILE_MODULE = $(topsrcdir)/build/unix/vms/$(notdir $(SHARED_LIBRARY:$(DLL_SUFFIX)=_symvec.opt))
|
||||
endif
|
||||
VMS_SYMVEC_FILE_COMP = $(topsrcdir)/build/unix/vms/component_symvec.opt
|
||||
GARBAGE += $(VMS_SYMVEC_FILE)
|
||||
ifdef IS_COMPONENT
|
||||
DSO_LDOPTS := $(filter-out -auto_symvec,$(DSO_LDOPTS)) $(VMS_SYMVEC_FILE)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
XPIDL_GEN_DIR = _xpidlgen
|
||||
|
||||
ifdef MOZ_UPDATE_XTERM
|
||||
@ -1180,20 +1163,6 @@ $(SHARED_LIBRARY): $(OBJS) $(LOBJS) $(DEF_FILE) $(RESFILE) $(SHARED_LIBRARY_LIBS
|
||||
ifndef INCREMENTAL_LINKER
|
||||
rm -f $@
|
||||
endif
|
||||
ifeq ($(OS_ARCH),OpenVMS)
|
||||
@if test ! -f $(VMS_SYMVEC_FILE); then \
|
||||
if test -f $(VMS_SYMVEC_FILE_MODULE); then \
|
||||
echo Creating specific component options file $(VMS_SYMVEC_FILE); \
|
||||
cp $(VMS_SYMVEC_FILE_MODULE) $(VMS_SYMVEC_FILE); \
|
||||
fi; \
|
||||
fi
|
||||
ifdef IS_COMPONENT
|
||||
@if test ! -f $(VMS_SYMVEC_FILE); then \
|
||||
echo Creating generic component options file $(VMS_SYMVEC_FILE); \
|
||||
cp $(VMS_SYMVEC_FILE_COMP) $(VMS_SYMVEC_FILE); \
|
||||
fi
|
||||
endif
|
||||
endif # OpenVMS
|
||||
ifdef DTRACE_LIB_DEPENDENT
|
||||
ifndef XP_MACOSX
|
||||
dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
|
||||
|
@ -1320,9 +1320,6 @@ UNIX_SYSTEM_V)
|
||||
;;
|
||||
OSF1)
|
||||
;;
|
||||
*OpenVMS*)
|
||||
HOST_OS_ARCH=OpenVMS
|
||||
;;
|
||||
OS_2)
|
||||
HOST_OS_ARCH=OS2
|
||||
;;
|
||||
@ -1416,11 +1413,6 @@ OSF1)
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*OpenVMS*)
|
||||
OS_ARCH=OpenVMS
|
||||
OS_RELEASE=`uname -v`
|
||||
OS_TEST=`uname -p`
|
||||
;;
|
||||
OS_2)
|
||||
OS_ARCH=OS2
|
||||
OS_TARGET=OS2
|
||||
@ -2530,25 +2522,6 @@ ia64*-hpux*)
|
||||
fi
|
||||
;;
|
||||
|
||||
*-openvms*)
|
||||
AC_DEFINE(NO_PW_GECOS)
|
||||
AC_DEFINE(NO_UDSOCK)
|
||||
AC_DEFINE(POLL_WITH_XCONNECTIONNUMBER)
|
||||
USE_PTHREADS=1
|
||||
MKSHLIB_FORCE_ALL='-all'
|
||||
MKSHLIB_UNFORCE_ALL='-none'
|
||||
AS='as'
|
||||
AS_DASH_C_FLAG='-Wc/names=as_is'
|
||||
AR_FLAGS='c $@'
|
||||
DSO_LDOPTS='-shared -auto_symvec'
|
||||
DSO_PIC_CFLAGS=
|
||||
MOZ_DEBUG_LDFLAGS='-g'
|
||||
COMPAQ_CXX=1
|
||||
CC_VERSION=`$CC -V 2>&1 | awk '/ C / { print $3 }'`
|
||||
CXX_VERSION=`$CXX -V 2>&1 | awk '/ C\+\+ / { print $3 }'`
|
||||
;;
|
||||
|
||||
|
||||
*-os2*)
|
||||
MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
|
||||
MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
|
||||
@ -2816,9 +2789,6 @@ case "$target" in
|
||||
*-aix4.3*|*-aix5*)
|
||||
NO_LD_ARCHIVE_FLAGS=
|
||||
;;
|
||||
*-openvms*)
|
||||
NO_LD_ARCHIVE_FLAGS=
|
||||
;;
|
||||
*-mingw*|*-wince|*-winmo)
|
||||
if test -z "$GNU_CC"; then
|
||||
NO_LD_ARCHIVE_FLAGS=
|
||||
@ -5496,11 +5466,7 @@ MOZ_ARG_DISABLE_BOOL(md,
|
||||
fi])
|
||||
if test "$_cpp_md_flag"; then
|
||||
COMPILER_DEPEND=1
|
||||
if test "$OS_ARCH" = "OpenVMS"; then
|
||||
_DEPEND_CFLAGS='$(subst =, ,$(filter-out %/.pp,-MM=-MD=-MF=$(MDDEPDIR)/$(basename $(@F)).pp))'
|
||||
else
|
||||
_DEPEND_CFLAGS='$(filter-out %/.pp,-MD -MF $(MDDEPDIR)/$(basename $(@F)).pp)'
|
||||
fi
|
||||
_DEPEND_CFLAGS='$(filter-out %/.pp,-MD -MF $(MDDEPDIR)/$(basename $(@F)).pp)'
|
||||
dnl Sun Studio on Solaris use -xM instead of -MD, see config/rules.mk
|
||||
if test "$SOLARIS_SUNPRO_CC"; then
|
||||
_DEPEND_CFLAGS=
|
||||
@ -5857,8 +5823,6 @@ if test "$OS_ARCH" = "Darwin"; then
|
||||
AC_DEFINE(XP_MACOSX)
|
||||
AC_DEFINE(XP_UNIX)
|
||||
AC_DEFINE(UNIX_ASYNC_DNS)
|
||||
elif test "$OS_ARCH" = "OpenVMS"; then
|
||||
AC_DEFINE(XP_UNIX)
|
||||
elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2" -a "$OS_ARCH" != "WINCE"; then
|
||||
AC_DEFINE(XP_UNIX)
|
||||
AC_DEFINE(UNIX_ASYNC_DNS)
|
||||
@ -5985,8 +5949,6 @@ dnl If it fails, nothing is set and config.status will run as usual.
|
||||
dnl
|
||||
dnl This does not change the $MAKEFILES variable.
|
||||
dnl
|
||||
dnl OpenVMS gets a line overflow on the long eval command, so use a temp file.
|
||||
dnl
|
||||
echo $MAKEFILES | ${PERL} $srcdir/build/autoconf/acoutput-fast.pl > conftest.sh
|
||||
. ./conftest.sh
|
||||
rm conftest.sh
|
||||
|
@ -81,7 +81,7 @@ include $(topsrcdir)/config/rules.mk
|
||||
|
||||
GARBAGE += $(addprefix $(DIST)/bin/defaults/pref/, \
|
||||
mailnews.js editor.js \
|
||||
aix.js unix.js winpref.js os2prefs.js openvms.js)
|
||||
aix.js unix.js winpref.js os2prefs.js)
|
||||
|
||||
GARBAGE += greprefs.js
|
||||
|
||||
|
@ -3002,32 +3002,6 @@ pref("mousewheel.system_scroll_override_on_root_content.enabled", false);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if OS_ARCH==OpenVMS
|
||||
|
||||
pref("mail.use_builtin_movemail", false);
|
||||
|
||||
pref("helpers.global_mime_types_file", "/sys$manager/netscape/mime.types");
|
||||
pref("helpers.global_mailcap_file", "/sys$manager/netscape/mailcap");
|
||||
pref("helpers.private_mime_types_file", "/sys$login/.mime.types");
|
||||
pref("helpers.private_mailcaptypes_file", "/sys$login/.mailcap");
|
||||
|
||||
pref("applications.telnet", "create /term /detach \"telnet %h %p\"");
|
||||
pref("applications.tn3270", "create /term /detach \"telnet /term=IBM-3278-5 %h %p\"");
|
||||
pref("applications.rlogin", "create /term /detach \"rlogin %h\"");
|
||||
pref("applications.rlogin_with_user", "create /term /detach \"rlogin %h -l %u\"");
|
||||
|
||||
/* PostScript module specific (see unix.js for additional configuration details) */
|
||||
pref("print.postscript.print_command", "print /delete");
|
||||
/* Print module independent */
|
||||
pref("print.print_command", "print /delete");
|
||||
pref("print.print_color", false);
|
||||
|
||||
pref("browser.cache.disk.capacity", 4096);
|
||||
pref("plugin.soname.list", "");
|
||||
|
||||
# OpenVMS
|
||||
#endif
|
||||
|
||||
#if OS_ARCH==AIX
|
||||
|
||||
// Override default Japanese fonts
|
||||
|
@ -128,11 +128,6 @@ ifeq ($(OS_ARCH),WINNT)
|
||||
OS_LIBS += $(call EXPAND_LIBNAME,version)
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH), OpenVMS)
|
||||
DEFINES += -DGENERIC_MOTIF_REDEFINES
|
||||
OS_CXXFLAGS += -Wc,warn=disa=NOSIMPINT
|
||||
endif
|
||||
|
||||
CXXFLAGS += $(TK_CFLAGS)
|
||||
EXTRA_DSO_LDOPTS += $(TK_LIBS)
|
||||
|
||||
|
@ -226,10 +226,6 @@ ifdef MOZ_OS2_HIGH_MEMORY
|
||||
DEFAULT_GMAKE_FLAGS += MOZ_OS2_HIGH_MEMORY=1
|
||||
endif
|
||||
endif # OS2
|
||||
# OS_CFLAGS needs to be passed on down.
|
||||
ifeq ($(OS_ARCH),OpenVMS)
|
||||
DEFAULT_GMAKE_FLAGS += XCFLAGS="$(OS_CFLAGS)"
|
||||
endif
|
||||
ifeq ($(OS_ARCH),Darwin)
|
||||
# Make nsinstall use absolute symlinks by default when building NSS
|
||||
# for Mozilla on Mac OS X. (Bugzilla bug 193164)
|
||||
|
@ -67,10 +67,6 @@ endif
|
||||
|
||||
DEFINES += -D_IMPL_GTKXTBIN_API
|
||||
|
||||
ifeq ($(OS_ARCH), OpenVMS)
|
||||
DEFINES += -DGENERIC_MOTIF_REDEFINES
|
||||
endif
|
||||
|
||||
INCLUDES += \
|
||||
-I$(srcdir) \
|
||||
$(NULL)
|
||||
|
@ -72,9 +72,5 @@ LIBS = \
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
ifeq ($(OS_ARCH), OpenVMS)
|
||||
DEFINES += -DGENERIC_MOTIF_REDEFINES
|
||||
endif
|
||||
|
||||
XRemoteClient_standalone.$(OBJ_SUFFIX): XRemoteClient.cpp
|
||||
$(CXX) $(OUTOPTION)$@ -c $(COMPILE_CXXFLAGS) $<
|
||||
|
@ -195,13 +195,6 @@ endif
|
||||
ifeq ($(OS_ARCH)$(OS_TEST),OpenBSDalpha)
|
||||
CPPSRCS := xptcinvoke_alpha_openbsd.cpp xptcstubs_alpha_openbsd.cpp
|
||||
endif
|
||||
#
|
||||
# OpenVMS/Alpha
|
||||
#
|
||||
ifeq ($(OS_ARCH)$(CPU_ARCH),OpenVMSAlpha)
|
||||
CPPSRCS := xptcinvoke_openvms_alpha.cpp xptcstubs_openvms_alpha.cpp
|
||||
ASFILES := xptcinvoke_asm_openvms_alpha.s xptcstubs_asm_openvms_alpha.s
|
||||
endif
|
||||
|
||||
######################################################################
|
||||
# ARM
|
||||
@ -537,19 +530,6 @@ xptcstubs_asm_irix.o: $(DIST)/include/xptcstubsdef.inc $(srcdir)/xptcstubs_asm_i
|
||||
@if test ! -f ./Makefile.in; then rm -f ./xptcstubs_asm_irix.s; else true; fi
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),OpenVMS)
|
||||
# Our assembler wants the include file to be of assembler syntax, not C/C++
|
||||
# syntax, so we have to massage it slightly.
|
||||
|
||||
xptcstubs_asm_openvms_alpha.o: $(DIST)/include/xptcstubsdef.inc $(srcdir)/xptcstubs_asm_openvms_alpha.s
|
||||
sed \
|
||||
-e 's/^\(.*_ENTRY\)(\([0-9]*\))/ \1 \2/' \
|
||||
-e 's/\/\*\(.*\)\*\//; \1/' \
|
||||
$(DIST)/include/xptcstubsdef.inc > ./xptcstubsdef_asm.vms
|
||||
$(AS) -o $@ $(ASFLAGS) $(AS_DASH_C_FLAG) $(srcdir)/xptcstubs_asm_openvms_alpha.s
|
||||
@rm -f ./xptcstubsdef_asm.vms
|
||||
endif
|
||||
|
||||
ifeq ($(OS_ARCH),SunOS)
|
||||
ifeq (86,$(findstring 86,$(OS_TEST)))
|
||||
ifndef GNU_CC
|
||||
|
@ -1,115 +0,0 @@
|
||||
; -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
;
|
||||
; ***** BEGIN LICENSE BLOCK *****
|
||||
; Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
;
|
||||
; 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 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 MPL, 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 MPL, the GPL or the LGPL.
|
||||
;
|
||||
; ***** END LICENSE BLOCK *****
|
||||
|
||||
;
|
||||
; XPTC_PUBLIC_API(nsresult)
|
||||
; XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
|
||||
; PRUint32 paramCount, nsXPTCVariant* params)
|
||||
;
|
||||
|
||||
.title "INVOKE" "Invoke By Index"
|
||||
|
||||
$routine XPTC_InvokeByIndex, kind=stack, saved_regs=<R2,R3,R4>
|
||||
|
||||
mov r27,r2 ; Need to set up a base register...
|
||||
.base r2,$LS ; ...for the LINKAGE_PAIR call
|
||||
|
||||
mov r17,r3 ; save methodIndex in r3
|
||||
mov r18,r4 ; save paramCount in r4
|
||||
|
||||
;
|
||||
; 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.
|
||||
;
|
||||
|
||||
cmplt R18,5,R1 ; paramCount = MAX(5, "paramCount")
|
||||
cmovne R1,5,R18
|
||||
s8addq R18,16,R1 ; room for "paramCount"+1 params (8 bytes each)
|
||||
bic R1,15,R1 ; stack space is rounded up to 0 % 16
|
||||
subq SP,R1,SP
|
||||
|
||||
stq R16,0(SP) ; save "that" (as "this" pointer)
|
||||
addq SP,8,R16 ; pass stack pointer
|
||||
mov R4,R17 ; pass original "paramCount
|
||||
mov R19,R18 ; pass "params"
|
||||
mov 4,r25 ; argument count
|
||||
|
||||
$LINKAGE_PAIR invoke_copy_to_stack
|
||||
ldq r26,$LP ; get entry point address from linkage pair
|
||||
ldq r27,$LP+8 ; get procedure descriptor address from lp
|
||||
jsr r26,r26 ; and call the routine
|
||||
|
||||
;
|
||||
; 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 R16,0(SP) ; integer registers
|
||||
ldq R17,8(SP)
|
||||
ldq R18,16(SP)
|
||||
ldq R19,24(SP)
|
||||
ldq R20,32(SP)
|
||||
ldq R21,40(SP)
|
||||
ldt F17,8(SP) ; floating point registers
|
||||
ldt F18,16(SP)
|
||||
ldt F19,24(SP)
|
||||
ldt F20,32(SP)
|
||||
ldt F21,40(SP)
|
||||
|
||||
addq SP,48,SP ; remove params from stack
|
||||
|
||||
;
|
||||
; Call the virtual function with the constructed stack frame.
|
||||
; First three methods are always QueryInterface, AddRef and Release.
|
||||
;
|
||||
addq r4,1,r25 ; argument count now includes "this"
|
||||
mov R16,R1 ; load "this"
|
||||
ldl R1,0(R1) ; load vtable
|
||||
s4addq r3,0,r28 ; vtable index = "methodIndex" * 4
|
||||
addq r1,r28,r1
|
||||
ldl r27,0(r1) ; load procedure value
|
||||
ldq r26,8(r27) ; load entry point address
|
||||
jsr r26,r26 ; call virtual function
|
||||
|
||||
$return
|
||||
|
||||
$end_routine XPTC_InvokeByIndex
|
||||
.end
|
@ -1,107 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* 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 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 of 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 MPL, 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 MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/* Platform specific code to invoke XPCOM methods on native objects */
|
||||
|
||||
#include "xptcprivate.h"
|
||||
|
||||
extern "C" {
|
||||
|
||||
/* This is in the ASM file */
|
||||
XPTC_PUBLIC_API(nsresult)
|
||||
XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
|
||||
PRUint32 paramCount, nsXPTCVariant* params);
|
||||
|
||||
|
||||
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)
|
||||
{
|
||||
/*
|
||||
** The line for T_U32 may look wrong (we use signed value for an
|
||||
** unsigned data type), but it is right. Why? The Alpha calling
|
||||
** standard is defined to sign extend all 32-bit values, regardless
|
||||
** of whether they are int, unsigned int, or 32-bit pointer. The
|
||||
** caller must "sign-extend" it by replicating bit 31 in bits 32
|
||||
** thru 63 (yes, even for unsigned). This is the format that results
|
||||
** naturally from the LDL instruction, the ADDL instruction, etc.
|
||||
*/
|
||||
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.i32; 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,131 +0,0 @@
|
||||
; -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
;
|
||||
; ***** BEGIN LICENSE BLOCK *****
|
||||
; Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
;
|
||||
; 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 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 MPL, 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 MPL, the GPL or the LGPL.
|
||||
;
|
||||
; ***** END LICENSE BLOCK *****
|
||||
|
||||
; Implement shared vtbl methods.
|
||||
|
||||
.title "STUBS" "Stub Code"
|
||||
|
||||
MBIT = "__14nsXPTCStubBasexv" ; this is the mangled part of the name
|
||||
|
||||
; The layout of the linkage section is important. First comes
|
||||
; PrepareAndDispatch, and then the Procedure Descriptors for the stubs. Each
|
||||
; is known to be 16 bytes long, and we use this fact to be able to locate the
|
||||
; PrepareAndDispatch linkage pair from any of the stubs.
|
||||
|
||||
.PSECT $LINK$, OCTA, NOPIC, CON, REL, LCL, NOSHR, NOEXE, RD, NOWRT
|
||||
.LINKAGE_PAIR PrepareAndDispatch
|
||||
LINKOFF = 16 ; first stub lp will be 16 bytes away
|
||||
|
||||
; STUB_ENTRY createa a routine nsXPTCStubBase::Stub<n>() where n is the
|
||||
; argument passed in to STUB_ENTRY. It puts its stub number into R1 and then
|
||||
; jumps into SharedStub. It does it this way because we don't want to mess
|
||||
; up the arguments that may be on the stack. In order that we can find
|
||||
; our way around the linkage section, we subtract our offset from the
|
||||
; start of the linkage section (LINKOFF) from our own PV, thus giving
|
||||
; us the PV os the first entry in the linkage section (this should be
|
||||
; PrepareAndDispatch);
|
||||
|
||||
.macro STUB_ENTRY n
|
||||
$routine Stub'n%MBIT%, kind=null
|
||||
mov LINKOFF, r1 ; distance from lp for PrepareAndDispatch
|
||||
subq r27,r1,r27 ; subtract it from address of our proc desc
|
||||
mov n,r1 ; stub number is passed in r1
|
||||
br SharedStub ; off to common code
|
||||
$end_routine
|
||||
LINKOFF = LINKOFF + 16 ; we just put 16 bytes into linkage section
|
||||
.endm STUB_ENTRY
|
||||
|
||||
; SENTINEL_ENTRY is in the C++ module. We need to define a empty macro
|
||||
; here to keep the assembler happy.
|
||||
.macro SENTINEL_ENTRY n
|
||||
.endm SENTINEL_ENTRY
|
||||
|
||||
.PSECT $CODE$, OCTA, PIC, CON, REL, LCL, SHR, EXE, NORD, NOWRT
|
||||
|
||||
;
|
||||
; SharedStub()
|
||||
; Collects arguments and calls PrepareAndDispatch.
|
||||
;
|
||||
; r1 - The "methodIndex"
|
||||
; r27 - points to the first entry in the linkage section, which by design
|
||||
; is the linkage pair for PrepareAndDispatch.
|
||||
;
|
||||
; Arguments are passed in a non-standard way so that we don't disturb the
|
||||
; original arguments that were passed in to the stub. Since some args (if
|
||||
; there were more than 6) will already be on the stack, the stub had to not
|
||||
; only preserve R16-R21, but also preserve the stack too.
|
||||
;
|
||||
|
||||
SharedStub::
|
||||
subq sp,96,sp ; get some stack space for the args and saves
|
||||
stq r26,0(sp) ; save r26 (the return address)
|
||||
|
||||
;
|
||||
; 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(sp) ; floating point registers
|
||||
stt f18,24(sp)
|
||||
stt f19,32(sp)
|
||||
stt f20,40(sp)
|
||||
stt f21,48(sp)
|
||||
stq r17,56(sp) ; integer registers
|
||||
stq r18,64(sp)
|
||||
stq r19,72(sp)
|
||||
stq r20,80(sp)
|
||||
stq r21,88(sp)
|
||||
|
||||
;
|
||||
; Call PrepareAndDispatch function.
|
||||
;
|
||||
mov r1,r17 ; pass "methodIndex"
|
||||
addq sp,16,r18 ; pass "args"
|
||||
mov 3,r25 ; number of args into AI
|
||||
|
||||
LDQ R26, 0(R27) ; get entry point address from linkage pair
|
||||
LDQ R27, 8(R27) ; get procedure descriptor address from lp
|
||||
JSR R26, R26
|
||||
|
||||
ldq r26, 0(sp) ; restore return address
|
||||
addq sp,96,sp ; return stack space
|
||||
ret r26 ; and we're outta here
|
||||
|
||||
.include "xptcstubsdef_asm.vms"
|
||||
|
||||
.end
|
@ -1,147 +0,0 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* 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 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 of 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 MPL, 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 MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/* Implement shared vtbl methods. */
|
||||
|
||||
#include "xptcprivate.h"
|
||||
|
||||
extern "C" {
|
||||
|
||||
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_ERROR("bad type");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
result = self->CallMethod((PRUint16)methodIndex, info, dispatchParams);
|
||||
|
||||
NS_RELEASE(iface_info);
|
||||
|
||||
if(dispatchParams != paramBuffer)
|
||||
delete [] dispatchParams;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#define STUB_ENTRY(n) /* This is in the ASM file */
|
||||
|
||||
#define SENTINEL_ENTRY(n) \
|
||||
nsresult nsXPTCStubBase::Sentinel##n() \
|
||||
{ \
|
||||
NS_ERROR("nsXPTCStubBase::Sentinel called"); \
|
||||
return NS_ERROR_NOT_IMPLEMENTED; \
|
||||
}
|
||||
|
||||
#include "xptcstubsdef.inc"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user