Version 4 (modified by 17 years ago) ( diff ) | ,
---|
GCC on OS/2 supports several extra options. They all start with -Z. With the exception of -Zomf (others?) they are affecting the linking.
- -Zcrtdll: link the C library dynamically
- -Zdll: create a dynamic link library
- -Zexe: create foo which is executable which calls foo.exe which is also created.
- -Zhigh-mem: link so that the C library calls in the program make use of "high memory". This is similiar to specifying OBJ_ANY to OS/2 API memory calls. If you use this option you should include os2safe.h as the first include file in every C file that uses OS/2 APIs.
- -Zlinker: pass option through to linker (like
-Zlinker /EXEPACK:2 -Zlinker /PACKCODE
) - -Zmap: tell linker or emxbind to create a .map file that contains the addresses of all symbols
- -Zno-autoconv: switch off automatic conversion between a.out and OMF format when linking.
- -Zomf: compile and link using OMF format instead of a.out.
- -Zargs-wild: call
_wildcard()
(see below) automatically on startup
These are mentioned in ReleaseNotes.os2 but not sure what they do exactly:
- -Zargs-resp: ??
- -Zdll-search: ??
- -Zhigh-low: ??
- -Zno-fork: turn off the
fork()
function? - -Zno-unix: non-unix like mode, affects slash handling and fork()?
These were supported options with EMX/gcc 2.8.x, not sure if they are still supported now:
- -Zbin-files: open files in binary mode by default (still supported)
- -Zbsd-signals: select the `BSD' signal processing model
- -Zmt: multithread code (now default)
- -Zmtd: multithread code, link C library dynamically
- -Zmts: multithread code, link C library statically
- -Zno-rte: create DLL without runtime environment
- -Zsmall-conv: use small, fast, and inaccurate routines for converting decimal numbers to binary and vice versa
- -Zstack: set the stack size
- -Zso: create stand-alone DLL
-Zsys: create stand-alone OS/2 program (no emx.dll) - there's nothing similar for current libc, if you use new gcc with new libc, you always need the libcxxx.dll- -Zsysv-signals: select the `System V' signal processing model
Finally, there are a couple of special functions which simplify porting of Unix programs:
_wildcard (int *argc, char ***argv)
: Same as in EMX, i.e. it expands it's arguments like a unix shell would do (but OS/2 cmd.exe doesn't), so you typically want to use this when porting a unix command line application. Instead of adding this to a program, compilation with -Zargs-wild can be used.
Note:
See TracWiki
for help on using the wiki.