development FAQ

  1. Which language has been used for developing UWIN?

    UWIN is written almost entirely in C or ksh. The control panel Applet was written by Wipro in C++. UWIN was compiled with the Microsoft Visual C/C++ compiler.

  2. What compiler comes with UWIN?

    The UWIN development kit provides a cc command that is a wrapper for an underlying compiler which is not provided by UWIN. The cc command can work with several different compilers including free and commercial versions of Microsoft Visual C/C++, MingW (GNU), Digital Mars, and Borland. The compiler uses UNIX conventions and generates .o and .a files. The cc and ld can also be used to generate DLLs. With the -V option of cc, you can see the compiler commands that are invoked.

  3. Is gcc available for building UWIN executables?

    The GNU compiler set, gcc, g++, g77.exe, gdb is available for UWIN as part of MingW.

  4. Can I compile and run C++ applications for UWIN?

    Yes. UWIN provides the CC compiler that takes the same options as the compiler on any UNIX platform. The compiler is a wrapper over the underlying native C compiler.

  5. Can I develop native applications with UWIN development kit?

    Yes, you can use ncc and nld to build native executables and dlls that do not depend on the UWIN run time facilities or headers.

  6. How do I pass non-standard options to the underlying compiler?

    To pass options directly to the underlying compiler, linker, or preprocessor, use the -Y option of cc. The -Y option takes an option argument of the form <letter>,<option> where <letter> is c,l, or p and option is the option to be passed down. For example, -Yl,-Z20 will pass the option -Z20 to the underlying linker.

  7. What C preprocessor does UWIN use?

    By default, UWIN uses the AST C/C++ preprocessor. The reason for this is that native C preprocessors do not know how to resolve UWIN symlinks and UNIX source code frequently contains symlinks. The AST preprocessor should be able to emulate all the known preprocessors. To use the native preprocessor, set the environment variable nativepp=-1.

  8. Which system calls are supported?

    Most of the X/Open Release 4 APIs are supported.

  9. Are there any UWIN specific APIs?

    Yes, UWIN provides some functions which help the user to use native WIN32 calls from UWIN applications. The <uwin.h> header provides an interface to these functions.

  10. Can I mix UWIN with native Win32 API's?

    Yes, you can mix calls. However, in some cases blocking WIN32 calls will not be interruptable by UNIX signals.

  11. Does UWIN support sockets?

    UWIN provides a UNIX interface to WINSOCK2 and returns file descriptors instead of Windows handles.

  12. Can I run curses programs with UWIN?

    Yes. UWIN supports vt100 emulation and provides virtually complete termios support. The curses library is included in UWIN 4.0.

  13. Is tcl/tk available for UWIN?

    UWIN 4.0supports tcl 7.6 but it should be possible to compile newer versions.

  14. How can I make my application obey the older BSD signal semantics?

    Compile the applications with the -D_BSDCOMPAT flag to obey BSD Unix signal semantics.

  15. How can I build dynamically linked libraries for UWIN Applications?

    Using the ld command. For detailed procedure on building Dlls refer documentation in /usr/doc.

  16. What debugger comes with UWIN?

    UWIN does not provide a debugger. You can use the native debugger for debugging by invoking msvc or msdev. Applications compiled on UWIN using the cc compiler can be debugged using the Microsoft Visual C++ IDE. However, when the GNU gcc compiler is used, the debugger that comes along with it must be used.

  17. How can I trace an application using UWIN?

    All UWIN applications can be traced using the command /bin/trace. It gives information about the system calls made the application. The output can also be redirected to a file. For more information on how to use trace command see the man page.

  18. How do I trace the UWIN daemons?

    The utility /etc/traceit can be used to enable system call tracing for a daemon. See the man page for /etc/traceit for more details.

  19. Why is the setuid call failing on UWIN?

    There can be two reasons why a setuid call can fail in UWIN. Either the UMS service is not installed/not running or the UCS client is not installed for that particular user.


UWIN users mailgroup
Information and Software Systems Research
AT&T Research
Florham Park NJ
December 28, 2004