This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Standard out writes fail after cygwin generated dll loaded


I have not experienced this problem.  I am using Cygwin to build a JNI .dll file, and regularly use both the cerr output stream from the c++ side and the System.err.println() output function from the java side. Note that I am always running from a Cygwin window.

If you have not seen it, you should try visiting the excellend Cygwin/JNI website at:  http://www.inonit.com/cygwin/  Note also that you don't need to use the -mno-cygwin hack (perhaps this is related to your problems?).  Here is a part of my ant build script (I use the normal Cygwin g++ for builds).

  <target name="ccCompCygwin" > 
    <exec executable="${cppCompilerName}" dir="${ctmp}" > 
      <arg line=" -D_REENTRANT -D_GNU_SOURCE -D__int64='long long' "  /> 
      <arg line=" -I${env.JAVA_HOME}/include " /> 
      <arg line=" -I${env.JAVA_HOME}/include/win32 " /> 
      <arg line=" -I${ctmp} " /> 
      <arg line=" -c " /> 
      <arg line=" Globals.c " /> 
      .....
    </exec> 
  </target> 

  <target name="ccLinkCygwin" > 
    <exec executable="${cppCompilerName}" dir="${ctmp}" > 
      <arg line=" -Wl,--add-stdcall-alias -shared" /> 
      <arg line="-I${env.JAVA_HOME}/include" /> 
      <arg line="-I${env.JAVA_HOME}/include/win32" /> 
      <arg line="  " /> 
      <arg line=" -o ${bin}/Native.dll " /> 
      <arg line=" Globals.o" /> 
      .......
    </exec> 
  </target> 

Alan Thompson


At 12:18 PM 3/7/2003 +0100, José Lorenzo Mon wrote:

>Hi Luis and All,
>
>>When trying to run through the JNI native C code compiled in a DLL
>>using Cygwin, I found that standard Java output stops to work as
>>soon as the DLL is loaded. However, if the same code is compiled
>>without Cygwing (-mno-cygwin) the Java output works OK after and
>>before loading the DLL.
>
>I am having same problem. My tests more in detail:
>
>- When running the Java VM *from a cygwin shell*, the stdout channel
>works OK before and after loading the DLL generated with the cygwin
>gcc. However, the stderr stops working after loading the DLL.
>After loading the DLL and using the stdout and stderr
>channels by the native C function, the Java program is only able to use
>the stdout channel.
>
>- When running the Java VM *from a windows shell*, both the stdout and
>stderr channels stop working after loading the DLL.
>
>- When compiling the dll *without* cygwin support (with the
>"-mno-cygwin" flag), both channels work ok in both shells.
>
>- The version employed of "jni.h" does not seem to affect to the
>results. I have tried both versions, the one comming with cygwin and
>the version provided with the JDK distribution (defining by
>myself __int64).
>
>- The version of the JDK (1.3 or 1.4) does not seem to affect to the
>results.
>
>- I have tried with different combination of flags for the gcc compiler
>and they do not seem to affect to the results.
>
>
>Does anyone know why this is happening or a possible solution?
>
>Thanks in advance,
>
>      Jose
>
>
>
>_________________________________________________________________
>Help STOP SPAM with the new MSN 8 and get 2 months FREE*  
>http://join.msn.com/?page=features/junkmail
>
>
>--
>Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
>Bug reporting:         http://cygwin.com/bugs.html
>Documentation:         http://cygwin.com/docs.html
>FAQ:                   http://cygwin.com/faq/
>



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]