Received: from [207.176.88.85] by phillip.cerious.com (NTMail 3.03.0017/7.aaxh) with ESMTP id pcrews for <pcrews@cerious.com>; Wed, 19 Apr 2000 17:35:38 -0400
Received: from localhost (daemon@localhost)
	by gate7.olympiakos.com (8.9.3/8.9.3) with SMTP id RAA06753;
	Wed, 19 Apr 2000 17:06:23 -0400
Received: by gate7.olympiakos.com (bulk_mailer v1.9); Wed, 19 Apr 2000 17:05:50 -0400
Received: (from majordom@localhost)
	by gate7.olympiakos.com (8.9.3/8.9.3) id RAA06661
	for tiff-outgoing; Wed, 19 Apr 2000 17:05:49 -0400
X-Authentication-Warning: gate7.olympiakos.com: majordom set sender to owner-tiff@olympiakos.com using -f
Received: from mail.totalint.com (209-9-140-130.sdsl.cais.net [209.9.140.130])
	by gate7.olympiakos.com (8.9.3/8.9.3) with ESMTP id RAA06658
	for <tiff@olympiakos.com>; Wed, 19 Apr 2000 17:05:48 -0400
Received: from [209.9.140.163] by mail.totalint.com (post.office MTA v
          ID# 0-8000) with ESMTP id AWP for <tiff@olympiakos.com>;
          Wed, 19 Apr 2000 16:05:49 -0500
X-Mailer: Microsoft Outlook Express Macintosh Edition - 4.5 (0410)
Date: Wed, 19 Apr 2000 16:05:46 -0500
Subject: Re: LibTIFF portability, makefiles, install...
From: chanson@totalint.com (Chris Hanson)
To: tiff@olympiakos.com
Mime-version: 1.0
X-Priority: 3
Content-type: text/plain; charset="US-ASCII"
Content-transfer-encoding: 7bit
Message-ID: <AIG.AWP>
Sender: owner-tiff@olympiakos.com

"Antonio E. Scuri" <scuri@tecgraf.puc-rio.br> wrote:
>    After some years developing software that must be portable to many
> platforms we decided that it is much more simple to use an ANSI C code than
> to define lots of OS macros and specific files like "tif_win32.c".

ANSI C is almost, but not quite sufficient for building portable
libraries.

ANSI C does not have any data types with exact size, only with minimum
size.  (I.e. "short" can hold at least 16 bits worth of data but does
not actually have to be 16 bits.)  It also does not define any standard
method of specifying structure layout in memory.  (Endianness is not an
issue for the language, because it's possible to determine this at run
time.  Though it'd be nice to have it built in.)

I believe the latest draft for the next revision of Standard C has some
guaranteed-size data types, but I'm not sure where to find it or what
compilers support these types or even whether my belief is well-placed.

(There's also the small issue that ANSI C has a very Unix-centric view
of certain things like the filesystem.  For instance, on MacOS pathnames
don't necessarily uniquely identify files.  And copying a file involves
more than duplicating its data; you need to duplicate its resources and
its Finder information too -- this is the case for NTFS on Windows NT as
well.  I think the former is more of an issue for libtiff, though.)

  -- Chris
