1999.06.10 13:08 "Problems with porting to RS6000", by Ivo Penzar

I am looking for libtiff port to RS6000, AIX 4.3. For now I successfully built the library, with some minor problems (int8,16,32 were already defined in inttypes.h).

Unfortunately, it breaks on TIFFOpen() function (somewhere inside). I did not have time yet to investigate how and why (I will try - there is no debugger installed, 'debugging' will take some time). Because there is no make utility either on that particular machine (it is not ours), I used the following compiler and linker directives:

cc -c -D_AIX43 tif_aux.c tif_close.c tif_codec.c tif_compress.c tif_dir.c
tif_dirinfo.c tif_dirread.c tif_dirwrite.c tif_dumpmode.c tif_error.c
tif_fax3.c
tif_fax3sm.c tif_flush.c tif_jpeg.c tif_luv.c tif_lzw.c tif_packbits.c
tif_predict.c
 tif_print.c tif_read.c tif_strip.c tif_swab.c tif_tile.c tif_unix.c
tif_version.c
tif_warning.c tif_write.c tif_zip.c tif_open.c tif_getimage.c

ld -o
../lib/libsoartiff.so -G -b32 -bnoentry -bE:soartiff.exp -blibpath:/lib:/usr
/lib
-lm -lc_r tif_aux.o tif_close.o tif_codec.o tif_compress.o tif_dir.o
tif_dirinfo.o
tif_dirread.o tif_dirwrite.o tif_dumpmode.o tif_error.o tif_fax3.o
tif_fax3sm.o
tif_flush.o tif_jpeg.o tif_luv.o tif_lzw.o tif_packbits.o tif_predict.o
tif_print.o
tif_read.o tif_strip.o tif_swab.o tif_tile.o tif_unix.o tif_version.o
tif_warning.o
tif_write.o tif_zip.o tif_open.o tif_getimage.o

Also, the port.h looks like:

#ifndef _PORT_
#define _PORT_ 1
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/types.h>
#define HOST_FILLORDER FILLORDER_MSB2LSB
#define HOST_BIGENDIAN  1
#define HAVE_MMAP 1
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
typedef double dblparam_t;
#define INLINE
#define GLOBALDATA(TYPE,NAME)   extern TYPE NAME
#ifdef __cplusplus
}
#endif
#endif

(Now I see something: HAVE_MMAP probably must be defined as 0?)

The source is copied from NT and Sun Solaris, where we had no problems to build and use it.

If anyone could point me what was wrong here on RS6000, I would appreciate.

Thanks,

Ivo