Compiling data-conversion exits on UNIX and Linux

The following sections give examples of how to compile a data conversion exit on UNIX(R) platforms and Linux(R).

On all platforms, the entry point to the module is MQStart.

On AIX(R)

32-bit non-threaded

  $ cc -e MQStart -bE:MYFORMAT.EXP -bM:SRE -o /var/mqm/exits/MYFORMAT MYFORMAT.C -I/usr/mqm/inc \
 -L/usr/mqm/lib -lmqm 

32-bit threaded.

  $ xlc_r -e MQStart -bE:MYFORMAT.EXP -bM:SRE -o /var/mqm/exits/MYFORMAT_r MYFORMAT.C \
     -I/usr/mqm/inc -L/usr/mqm/lib -lmqm_r

64-bit non-threaded

 $ cc -q64 -e MQStart -bE:MYFORMAT.EXP -bM:SRE -o /var/mqm/exits64/MYFORMAT MYFORMAT.C  \
 -I/usr/mqm/inc -L/usr/mqm/lib64 -lmqm

64-bit threaded.

  $ xlc_r -q64 -e MQStart -bE:MYFORMAT.EXP -bM:SRE -o /var/mqm/exits64/MYFORMAT_r MYFORMAT.C  \
   -I/usr/mqm/inc -L/usr/mqm/lib64 -lmqm_r  

On HP-UX

32-bit non-threaded

  $ c89 +e +z -c -D_HPUX_SOURCE -o MYFORMAT MYFORMAT.C -I/opt/mqm/inc \
   ld +b: -b MYFORMAT.o +ee MQStart -o /var/mqm/exits/MYFORMAT \
   /var/mqm/exits/cliexit_32 -L/opt/mqm/lib -L/usr/lib -lmqm

32-bit threaded

  $ c89 +e +z -c -D_HPUX_SOURCE -o MYFORMAT MYFORMAT.C -I/opt/mqm/inc \
   ld +b: -b MYFORMAT.o +ee MQStart -o /var/mqm/exits/MYFORMAT_r \
  -L/opt/mqm/lib -L/usr/lib -lmqm_r -lpthread rm MYFORMAT.o

64-bit non-threaded

  $ c89 +DD64 +z -c -D_HPUX_SOURCE -o MYFORMAT MYFORMAT.C -I/opt/mqm/inc \
   ld -b +noenvar MYFORMAT.o +ee MQStart -o /var/mqm/exits/MYFORMAT  \
   -L/opt/mqm/lib64 -L/usr/lib/pa20_64 -lmqm

64-bit threaded

  $ c89 +e +z -c -D_HPUX_SOURCE -o MYFORMAT MYFORMAT.C -I/opt/mqm/inc \
   ld -b +noenvar MYFORMAT.o +ee MQStart -o /var/mqm/exits/MYFORMAT_r \
  -L/opt/mqm/lib64 -L/usr/lib/pa20_64 -lmqm_r -lpthread rm MYFORMAT.o

On Linux

32-bit non-threaded

  $ gcc -m32 -shared -fPIC -o /var/mqm/exits/MYFORMAT MYFORMAT.C -I/opt/mqm/inc -L/opt/mqm/lib \
  -Wl,-rpath=/opt/mqm/lib -Wl,-rpath=/usr/lib -lmqm

32-bit threaded

  $ gcc -m32 -shared -fPIC -o /var/mqm/exits/MYFORMAT_r MYFORMAT.C -I/opt/mqm/inc -L/opt/mqm/lib \
 -Wl,-rpath=/opt/mqm/lib -Wl,-rpath=/usr/lib -lmqm_r

64-bit non-threaded

  $ gcc -m64 -shared -fPIC -o /var/mqm/exits64/MYFORMAT MYFORMAT.C -I/opt/mqm/inc -L/opt/mqm/lib64 \
 -Wl,-rpath=/opt/mqm/lib64 -Wl,-rpath=/usr/lib64 -lmqm  

64-bit threaded

  $ gcc -m64 -shared -fPIC -o /var/mqm/exits64/MYFORMAT_r MYFORMAT.C -I/opt/mqm/inc -L/opt/mqm/lib64
 -Wl,-rpath=/opt/mqm/lib64 -Wl,-rpath=/usr/lib64 -lmqm_r

On Solaris

32-bit:

 cc -xarch=v8plus -mt -G -o /var/mqm/exits/MYFORMAT MYFORMAT.C -I/opt/mqm/inc -L/opt/mqm/lib \
 -R/opt/mqm/lib -R/usr/lib/32 -lmqm -lmqmcs -lmqmzse -lsocket -lnsl -ldl

64-bit:

 cc -xarch=v9 -mt -G -o /var/mqm/exits64/MYFORMAT MYFORMAT.C -I/opt/mqm/inc -L/opt/mqm/lib64 \
 -R/opt/mqm/lib64 -R/usr/lib/64 -lmqm -lmqmcs -lmqmzse -lsocket -lnsl -ldl