Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Sat, 13 Oct 2001 04:00:52 -0700 From: Aj Lavin To: cygwin AT cygwin DOT com Subject: 1.3.3-2: Standard out writes fail after cygwin generated dll loaded Message-ID: <20011013040052.A5293@zappa> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="YiEDa0DAkWCtVeE4" Content-Disposition: inline User-Agent: Mutt/1.2.5i --YiEDa0DAkWCtVeE4 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline I used cygwin 1.3.3-2 under Windows 2000 to create a JNI dll which I then loaded in a java Application. When run in a DOS shell, the java Application succeeds in writing to standard output up until the point when the dll is loaded. All subsequent writes give no output. Also, no errors were reported by the Sun JVM 1.3, even with -verbose. When run in the Cygwin shell, the java Application works. The application continues to write to standard output after the dll is loaded. I believe this error is related to the report "Standard streams closed when g++-produced DLL loaded" (http://gcc.gnu.org/ml/gcc-prs/2001-07/msg00739.html) which was made by lerios at cs dot stanford dot edu. All the relevant files are attached. Regards, A.j. --YiEDa0DAkWCtVeE4 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="cygcheck.out" Cygnus Win95/NT Configuration Diagnostics Current System Time: Sat Oct 13 03:23:38 2001 WinNT Ver 5.0 build 2195 Service Pack 2 Path: /C/DJGPP/BIN /C/WINNT/system32 /C/WINNT /C/WINNT/System32/Wbem /C/Program Files/Dell/Resolution Assistant/Common/bin /C/jdk1.3/bin /usr/bin SysDir: C:\WINNT\System32 WinDir: C:\WINNT !C: = `C:\JavaWork' !EXITCODE = `00000000' ALLUSERSPROFILE = `C:\Documents and Settings\All Users' APPDATA = `C:\Documents and Settings\Kara Elmquist\Application Data' CLASSPATH = `.;C:\jdk1.3\lib\tools.jar;C:\Tomcat3.2.3\lib\servlet.jar' COMMONPROGRAMFILES = `C:\Program Files\Common Files' COMPUTERNAME = `YT' COMSPEC = `C:\WINNT\system32\cmd.exe' DJGPP = `C:\DJGPP\DJGPP.ENV' HOMEDRIVE = `C:' HOMEPATH = `\' JAVA_HOME = `C:\jdk1.3' LOGONSERVER = `\\YT' NUMBER_OF_PROCESSORS = `1' OS = `Windows_NT' OS2LIBPATH = `C:\WINNT\system32\os2\dll;' PATHEXT = `.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH' PROCESSOR_ARCHITECTURE = `x86' PROCESSOR_IDENTIFIER = `x86 Family 6 Model 8 Stepping 6, GenuineIntel' PROCESSOR_LEVEL = `6' PROCESSOR_REVISION = `0806' PROGRAMFILES = `C:\Program Files' PROMPT = `$P$G' SYSTEMDRIVE = `C:' SYSTEMROOT = `C:\WINNT' TEMP = `/C/DOCUME~1/KARAEL~1/LOCALS~1/Temp' TMP = `/C/DOCUME~1/KARAEL~1/LOCALS~1/Temp' TOMCAT_HOME = `C:\Tomcat3.2.3' USERDOMAIN = `YT' USERNAME = `Kara Elmquist' USERPROFILE = `C:\Documents and Settings\Kara Elmquist' WINDIR = `C:\WINNT' TERM = `cygwin' TZ = `PST8PDT7,M4.1.0/2,M10.5.0/2' HKEY_CURRENT_USER\Software\Cygnus Solutions HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2 (default) = `/cygdrive' cygdrive flags = 0x00000022 HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/C (default) = `C:' flags = 0x00000000 HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\Programs\Cygnus Solutions HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/ (default) = `C:/cygwin' flags = 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/bin (default) = `C:/cygwin/bin' flags = 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/lib (default) = `C:/cygwin/lib' flags = 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\Program Options a: fd FAT 1Mb 11% CP UN c: hd FAT32 9772Mb 31% CP UN d: cd N/A N/A C:\cygwin\bin /usr/bin system binmode C:\cygwin\lib /usr/lib system binmode C:\cygwin / system binmode C: /C user textmode Found: C:\cygwin\bin\bash.exe Found: C:\cygwin\bin\cat.exe Found: C:\cygwin\bin\cpp.exe Found: C:\cygwin\bin\find.exe Found: C:\cygwin\bin\gcc.exe Found: C:\cygwin\bin\gdb.exe Found: C:\cygwin\bin\ld.exe Found: C:\cygwin\bin\ls.exe Found: C:\cygwin\bin\make.exe Found: C:\cygwin\bin\sh.exe 701k 2001/10/13 .\cygwin1.dll - os=4.0 img=1.0 sys=4.0 "cygwin1.dll" v0.0 ts=2001/9/12 20:54 Cygwin DLL version info: dll major: 1003 dll minor: 3 dll epoch: 19 dll bad signal mask: 19005 dll old termios: 5 dll malloc env: 28 api major: 0 api minor: 46 shared data: 3 dll identifier: cygwin1 mount registry: 2 cygnus registry name: Cygnus Solutions cygwin registry name: Cygwin program options name: Program Options cygwin mount registry name: mounts v2 cygdrive flags: cygdrive flags cygdrive prefix: cygdrive prefix cygdrive default prefix: build date: Wed Sep 12 23:54:31 EDT 2001 shared id: cygwin1S3 701k 2001/10/13 .\cygwin1.dll - os=4.0 img=1.0 sys=4.0 "cygwin1.dll" v0.0 ts=2001/9/12 20:54 Cygwin DLL version info: dll major: 1003 dll minor: 3 dll epoch: 19 dll bad signal mask: 19005 dll old termios: 5 dll malloc env: 28 api major: 0 api minor: 46 shared data: 3 dll identifier: cygwin1 mount registry: 2 cygnus registry name: Cygnus Solutions cygwin registry name: Cygwin program options name: Program Options cygwin mount registry name: mounts v2 cygdrive flags: cygdrive flags cygdrive prefix: cygdrive prefix cygdrive default prefix: build date: Wed Sep 12 23:54:31 EDT 2001 shared id: cygwin1S3 56k 2000/12/03 C:\cygwin\bin\cygbz21.0.dll - os=4.0 img=1.0 sys=4.0 "cygbz21.0.dll" v0.0 ts=2000/11/20 15:53 18k 2000/10/23 C:\cygwin\bin\cyggdbm.dll - os=4.0 img=1.0 sys=4.0 "cyggdbm.dll" v0.0 ts=2000/10/22 19:26 21k 2001/06/20 C:\cygwin\bin\cygintl.dll - os=4.0 img=1.0 sys=4.0 "cygintl.dll" v0.0 ts=2001/6/20 10:09 45k 2001/07/04 C:\cygwin\bin\cygjbig1.dll - os=4.0 img=1.0 sys=4.0 "cygjbig1.dll" v0.0 ts=2001/7/3 20:25 119k 2001/06/06 C:\cygwin\bin\cygjpeg6b.dll - os=4.0 img=1.0 sys=4.0 "cygjpeg6b.dll" v0.0 ts=2001/6/5 21:27 45k 2001/04/25 C:\cygwin\bin\cygform5.dll - os=4.0 img=1.0 sys=4.0 "cygform5.dll" v0.0 ts=2001/4/24 22:28 26k 2001/04/25 C:\cygwin\bin\cygmenu5.dll - os=4.0 img=1.0 sys=4.0 "cygmenu5.dll" v0.0 ts=2001/4/24 22:27 156k 2001/04/25 C:\cygwin\bin\cygncurses++5.dll - os=4.0 img=1.0 sys=4.0 "cygncurses++5.dll" v0.0 ts=2001/4/24 22:29 226k 2001/04/25 C:\cygwin\bin\cygncurses5.dll - os=4.0 img=1.0 sys=4.0 "cygncurses5.dll" v0.0 ts=2001/4/24 22:17 15k 2001/04/25 C:\cygwin\bin\cygpanel5.dll - os=4.0 img=1.0 sys=4.0 "cygpanel5.dll" v0.0 ts=2001/4/24 22:27 34k 2001/09/30 C:\cygwin\bin\cygform6.dll - os=4.0 img=1.0 sys=4.0 "cygform6.dll" v0.0 ts=2001/9/29 19:43 19k 2001/09/30 C:\cygwin\bin\cygmenu6.dll - os=4.0 img=1.0 sys=4.0 "cygmenu6.dll" v0.0 ts=2001/9/29 19:43 175k 2001/09/30 C:\cygwin\bin\cygncurses++6.dll - os=4.0 img=1.0 sys=4.0 "cygncurses++6.dll" v0.0 ts=2001/9/29 19:45 201k 2001/09/30 C:\cygwin\bin\cygncurses6.dll - os=4.0 img=1.0 sys=4.0 "cygncurses6.dll" v0.0 ts=2001/9/29 19:42 12k 2001/09/30 C:\cygwin\bin\cygpanel6.dll - os=4.0 img=1.0 sys=4.0 "cygpanel6.dll" v0.0 ts=2001/9/29 19:43 163k 2001/05/06 C:\cygwin\bin\cygpng2.dll - os=4.0 img=1.0 sys=4.0 "cygpng2.dll" v0.0 ts=2001/5/5 21:05 17k 2001/06/28 C:\cygwin\bin\cyghistory4.dll - os=4.0 img=1.0 sys=4.0 "cyghistory4.dll" v0.0 ts=2001/1/6 20:34 21k 2001/06/28 C:\cygwin\bin\cyghistory5.dll - os=4.0 img=1.0 sys=4.0 "cyghistory5.dll" v0.0 ts=2001/6/27 19:27 108k 2001/06/28 C:\cygwin\bin\cygreadline4.dll - os=4.0 img=1.0 sys=4.0 "cygreadline4.dll" v0.0 ts=2001/1/6 20:34 135k 2001/06/28 C:\cygwin\bin\cygreadline5.dll - os=4.0 img=1.0 sys=4.0 "cygreadline5.dll" v0.0 ts=2001/6/27 19:27 81k 2000/12/05 C:\cygwin\bin\cygitcl30.dll - os=4.0 img=1.0 sys=4.0 "cygitcl30.dll" v0.0 ts=2000/11/25 17:43 35k 2000/12/05 C:\cygwin\bin\cygitk30.dll - os=4.0 img=1.0 sys=4.0 "cygitk30.dll" v0.0 ts=2000/11/25 17:43 390k 2000/12/05 C:\cygwin\bin\cygtcl80.dll - os=4.0 img=1.0 sys=4.0 "cygtcl80.dll" v0.0 ts=2000/11/25 17:39 5k 2000/12/05 C:\cygwin\bin\cygtclpip80.dll - os=4.0 img=1.0 sys=4.0 10k 2000/12/05 C:\cygwin\bin\cygtclreg80.dll - os=4.0 img=1.0 sys=4.0 "cygtclreg80.dll" v0.0 ts=2000/11/25 17:39 623k 2000/12/05 C:\cygwin\bin\cygtk80.dll - os=4.0 img=1.0 sys=4.0 "cygtk80.dll" v0.0 ts=2000/11/25 17:43 245k 2001/06/12 C:\cygwin\bin\cygtiff3.dll - os=4.0 img=1.0 sys=4.0 "cygtiff3.dll" v0.0 ts=2001/6/12 10:25 41k 2001/07/04 C:\cygwin\bin\cygXpm-noX4.dll - os=4.0 img=1.0 sys=4.0 "cygXpm-noX4.dll" v0.0 ts=2001/7/3 18:21 45k 2001/07/04 C:\cygwin\bin\cygXpm-X4.dll - os=4.0 img=1.0 sys=4.0 "cygXpm-X4.dll" v0.0 ts=2000/11/19 18:45 49k 2001/02/03 C:\cygwin\bin\cygz.dll - os=4.0 img=1.0 sys=4.0 "cygz.dll" v0.0 ts=2001/2/3 12:35 701k 2001/09/13 C:\cygwin\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0 "cygwin1.dll" v0.0 ts=2001/9/12 20:54 Cygwin DLL version info: dll major: 1003 dll minor: 3 dll epoch: 19 dll bad signal mask: 19005 dll old termios: 5 dll malloc env: 28 api major: 0 api minor: 46 shared data: 3 dll identifier: cygwin1 mount registry: 2 cygnus registry name: Cygnus Solutions cygwin registry name: Cygwin program options name: Program Options cygwin mount registry name: mounts v2 cygdrive flags: cygdrive flags cygdrive prefix: cygdrive prefix cygdrive default prefix: build date: Wed Sep 12 23:54:31 EDT 2001 shared id: cygwin1S3 Use -h to see help about each section --YiEDa0DAkWCtVeE4 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=Makefile # # Sample makefile to create Java JNI with Cygwin b20.1 tools. This *will not* # work with Cygwin versions earlier than b20.1. # # The only difference from creating a regular DLL is to supply a different # entry point, __cygwin_noncygwin_dll_entry AT 12, since Java is an MSVC app. # # See Makefile.nocyg if you want to use -mno-cygwin and build a Mingw JNI. # CC = gcc CXX = c++ DEBUG = -g -Wall -O2 CXXFLAGS = $(DEBUG) CFLAGS = $(DEBUG) CPPFLAGS = -I. -I$(JDK_ROOT)/include -I$(JDK_ROOT)/include/win32 JDK_ROOT = c:/jdk1.3 AS = as DLLTOOL = dlltool DLLWRAP = dllwrap # # Various targets to build. # DLL_NAME = Summation.dll DLL_EXP_DEF = Summation.def all: $(DLL_NAME) # # DLL related variables. These are used when building the DLL. See later. # # Some tools require special CPP macros when building a DLL (eg., _DLL etc). # Here we don't need anything. DLL_CFLAGS = -DBUILDING_DLL=1 -D_DLL=1 # The default entry point defined by dllwrap is __cygwin_dll_entry AT 12 # defined in libcygwin.a, but that's only appropriate for Cygwin apps, # but since Java is a MSVC app, we need to provide a different entry # point. Note the leading underscore and the trailing @12. # The -s flag strips the DLL to shrink the size. DLL_LDFLAGS = -Wl,-e,__cygwin_noncygwin_dll_entry AT 12 -s # any extra libraries that your DLL may depend on. DLL_LDLIBS = DLL_SRCS = Summation.cc DLL_OBJS = $(DLL_SRCS:.cc=.o) DLL_OBJS := $(DLL_OBJS:.c=.o) ### # # Making DLL # ### DLLWRAP_FLAGS = --output-def $(DLL_EXP_DEF) \ --add-stdcall-alias \ --driver-name $(CC) \ $(IMAGE_BASE) $(DLL_NAME): $(DLL_OBJS) $(DLLWRAP) $(DLLWRAP_FLAGS) -o $(DLL_NAME) \ $(DLL_OBJS) $(DLL_LDFLAGS) $(DLL_LDLIBS) # # dependencies. # # # default rules for building DLL objects. Note that client programs (ie., # the ones that *use* the DLL) have to be compiled without the DLL_CFLAGS # flags. # .cc.o: $(CXX) -c $(DLL_CFLAGS) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< .c.o: $(CC) -c $(DLL_CFLAGS) $(CPPFLAGS) $(CFLAGS) -o $@ $< # Note that we omit the $(DLL_CFLAGS) for client programs. usedll.o: %o: %c $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< clean: -rm -f $(OBJS) $(DLL_OBJS) $(DLL_NAME) $(DLL_EXP_LIB) $(DLL_EXP_DEF) $(TESTPROGS) --YiEDa0DAkWCtVeE4 Content-Type: text/x-csrc; charset=us-ascii Content-Disposition: attachment; filename="Summation.c" // PROGRAM: Summation.c // PROGRAMMER: Kara Elmquist // DATE: 2001/10/12 // PURPOSE: Sum integers from 1 to X #include #include "Summation.h" JNIEXPORT jdouble JNICALL Java_Summation_summation_1C (JNIEnv *env, jobject obj, jlong X) { /*Sum integers from 1 to X*/ double i; double sum; for(i=1,sum=0; i<=X; i++) { sum = sum + i; } return sum; } --YiEDa0DAkWCtVeE4 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="Summation.def" ; dlltool --base-file /C/DOCUME~1/KARAEL~1/LOCALS~1/Temp/cc001148.base --output-exp Summation.exp --dllname Summation.dll --output-def Summation.def --add-stdcall-alias --exclude-symbol=_cygwin_dll_entry AT 12 --def /C/DOCUME~1/KARAEL~1/LOCALS~1/Temp/cc001148.def EXPORTS Java_Summation_summation_1C = Java_Summation_summation_1C AT 16 @ 1 ; Java_Summation_summation_1C AT 16 @ 2 ; --YiEDa0DAkWCtVeE4 Content-Type: application/x-msdos-program Content-Disposition: attachment; filename="Summation.dll" Content-Transfer-Encoding: base64 TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4g RE9TIG1vZGUuDQ0KJAAAAAAAAABQRQAATAEGADD7xzsAAAAAAAAAAOAADiILAQI4AAQAAAAM AAAAAgAAKBEAAAAQAAAAIAAAAADYaQAQAAAAAgAABAAAAAEAAAAEAAAAAAAAAABwAAAABAAA AAAAAAMAAAAAACAAABAAAAAAEAAAEAAAAAAAABAAAAAAQAAAiAAAAABQAABQAQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAGAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC50 ZXh0AAAAEAMAAAAQAAAABAAAAAQAAAAAAAAAAAAAAAAAAGAAAGAuZGF0YQAAABAAAAAAIAAA AAIAAAAIAAAAAAAAAAAAAAAAAABAAADALmJzcwAAAAD8AAAAADAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAgAAAwC5lZGF0YQAAiAAAAABAAAAAAgAAAAoAAAAAAAAAAAAAAAAAAEAAAMAuaWRh dGEAAFABAAAAUAAAAAIAAAAMAAAAAAAAAAAAAAAAAABAAADALnJlbG9jAABUAAAAAGAAAAAC AAAADgAAAAAAAAAAAAAAAAAAQAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFXZ 6Inl2e6D7BiLRRCLVRSJRfiJVfzfbfjY0t/ggOQFdSjZwusG2cvZyon22crYw9nL2MLY0d/g gORF/syA/EBy5N3Y3djd2OsE3djd2YnsXcIQAFWJ5aEgMNhpg+wIg8T8UKEQMNhpUKEAMNhp UOjUAAAAiexdw1WJ5YPsFFOLTQi7AQAAAItFDItVEIP4AXQOckCD+AJ0a4P4A3Ru63qJDQAw 2GmDxPjHBRAw2GkBAAAAiRUgMNhpaFQQ2GlR6JwAAACjMDDYaYP4/3VMMdvrSIn2g8T8UlBR 6GkAAACJw4PEBIXbdDKDxPShMDDYaVDoYgAAAMcFMDDYaf/////rGIn2g8T8UmoC6waDxPxS agNR6DAAAACJw4nYi13oiexdwgwAjXYAVYnlg+wIi00Ig8T8i1UMi0UQUFJR6Db///+J7F3C DABVuAEAAACJ5YnsXcIMAIn2/yV0UNhpkJBVieWD7BRTi10Ig8T4i0UMaEAw2GlQ6BUAAABo QDDYaVPoIgEAAItd6InsXcONdgBVieWD7BRTi10Mhdt0BjHA6yWJ9oPE9GoI6EIBAACDxBCD +P91CjHA6eEAAACNdgCJw7gBAAAAx0MEqAAAAMdDCOsDAADHQwwDAAAAx4OAAAAAAAAAAMeD hAAAAC4AAADHQywAE9hpx0MwCBPYacdDFPQw2GmFwHQPi4OkAAAAo/Aw2GnrCYn2x0MQ8DDY acdDeAAAAACDxPSLRQiJQyjHQ0joEthpx0NM4BLYacdDUNgS2GnHQ1TQEthpx0Mk+DDYaYtF AIkDx0MYyBLYacdDHMAS2GnHQyC4Ethpx0NEsBLYaWoA6H4AAACJQ3zHQzQAINhpuAEAAADH QzgQINhpx0M8ADDYacdDQPww2GmLXeiJ7F3CCACQ/yV8UNhpkJD/JXBQ2GmQkP8liFDYaZCQ /yWAUNhpkJD/JYRQ2GmQkFWJ5YnsXcOQVYnliexdw5BVieWJ7F3DkFWJ5YnsXcOQ/yV4UNhp kJD/JZRQ2GmQkP////8AAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv+8c7AAAAAChAAAABAAAAAgAAAAIAAAA4QAAA QEAAAEhAAABTdW1tYXRpb24uZGxsAAAAABAAAAAQAABMQAAAaEAAAAAAAQBKYXZhX1N1bW1h dGlvbl9zdW1tYXRpb25fMUMASmF2YV9TdW1tYXRpb25fc3VtbWF0aW9uXzFDQDE2AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQFAAAAAA AAAAAAAAMFEAAHBQAABkUAAAAAAAAAAAAABAUQAAlFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAJxQAACoUAAAvFAAANBQAADgUAAA6FAAAPRQAAAAAAAAAAAAAABRAAAAAAAAAAAAAJxQ AACoUAAAvFAAANBQAADgUAAA6FAAAPRQAAAAAAAAAAAAAABRAAAAAAAAOwJjYWxsb2MAAAAA bgJjeWd3aW5fZGV0YWNoX2RsbABwAmN5Z3dpbl9pbnRlcm5hbAAAAIMCZGxsX2RsbGNydDAA AADGAmZyZWUAAF0DbWFsbG9jAAAAANsDcmVhbGxvYwAAACgBR2V0TW9kdWxlSGFuZGxlQQAA AFAAAABQAAAAUAAAAFAAAABQAAAAUAAAAFAAAGN5Z3dpbjEuZGxsABRQAABLRVJORUwzMi5k bGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAVAAAAFgwZDBqMKIwqzC1MLowxTDsMPgwWjFxMXwx 8zH6MQEyEDIbMjIyOTJAMkcyTjJaMmEyaDJvMoAyjDKTMpoyqjKyMroywjLKMvIy+jIAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== --YiEDa0DAkWCtVeE4 Content-Type: text/x-chdr; charset=us-ascii Content-Disposition: attachment; filename="Summation.h" /* DO NOT EDIT THIS FILE - it is machine generated */ #include /* Header for class Summation */ #ifndef _Included_Summation #define _Included_Summation #ifdef __cplusplus extern "C" { #endif /* Inaccessible static: theSummation */ /* * Class: Summation * Method: summation_C * Signature: (J)D */ JNIEXPORT jdouble JNICALL Java_Summation_summation_1C (JNIEnv *, jobject, jlong); #ifdef __cplusplus } #endif #endif --YiEDa0DAkWCtVeE4 Content-Type: text/x-java; charset=us-ascii Content-Disposition: attachment; filename="Summation.java" // PROGRAM: Summation.java // PROGRAMMER: Kara Elmquist // DATE: 2001/10/12 // PURPOSE: Sum integers from 1 to X public class Summation { private static Summation theSummation = new Summation(); public native double summation_C(long X); public double summation(long X) { double i; double sum; for(i=1,sum=0; i<=X; i++) { sum = sum + i; } return sum; } public void run(long[] testNumbers) { System.out.println("Java Function Results:"); Timer clock = new Timer(); //A timer for(int i=0;i