Date: Fri, 6 Feb 2004 18:37:19 +0100 From: Adriaan de Groot <adridg@cs.kun.nl> To: mi@aldan.algebra.com Cc: freebsd-amd64@freebsd.org Subject: [PATCH] hdf on amd64 Message-ID: <200402061837.19872.adridg@cs.kun.nl>
index | next in thread | raw e-mail
[-- Attachment #1 --]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[CC to the amd64 list because it's particular to that platform; CC to KDE
because it's a dependency for their ports, which prevents the ports from
building on amd64.]
The attached patch adds support for the amd64 platform by introducing a new
machine definition. I hope I got it all right - in particular, the code
assumes that a fortran int can be cast to a pointer, so I _must_ define the
fortran int as long. I haven't checked if that is really the case, so while
the port may build now, it might not actually work.
The patch also augments the totally bogus
#if some-error-condition
Regular english text explaining the error.
#endif
(which gets you grand error messages from gcc like "Syntax error near "you".")
by the slightly less bogus
#if some-error-condition
#ifdef __GNUC__
#error English text
#else
Regular english text
#endif
#endif
It doesn't do so across all the platforms, though, so it could use some
augmentation itself.
- --
pub 1024D/FEA2A3FE 2002-06-18 Adriaan de Groot <groot@kde.org>
The users that I support would double-click on a landmine to see what it did.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (FreeBSD)
iD8DBQFAI9DPdqzuAf6io/4RAh+cAJ4kBHZ/zxOET/jjjNlp3zXH9s692QCZASh1
ag4EUe15JFxXz7rBhPG+uXk=
=2U4b
-----END PGP SIGNATURE-----
[-- Attachment #2 --]
--- hdf/src/hdfi.h.orig Fri Feb 6 09:59:27 2004
+++ hdf/src/hdfi.h Fri Feb 6 14:36:06 2004
@@ -826,6 +826,71 @@
#endif /*MAC*/
+#if defined(__amd64__) && defined(__FreeBSD__)
+
+
+#ifdef GOT_MACHINE
+#ifdef __GNUC__
+#error More than one machine type defined.
+#else
+If you get an error on this line more than one machine type has been defined.
+Please check your Makefile.
+#endif
+#endif
+#define GOT_MACHINE 1
+
+#include <fcntl.h>
+#include <sys/types.h> /* for unbuffered file I/O */
+#include <sys/stat.h>
+#include <unistd.h>
+#include <ctype.h> /* for character macros */
+#ifdef __WATCOMC__
+#include <stddef.h> /* for the 'fortran' pragma */
+#endif
+
+#define DF_MT DFMT_PC
+
+#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
+typedef void VOID;
+#endif /* end VOID */
+typedef void * VOIDP;
+typedef char * _fcd;
+typedef char char8;
+typedef unsigned char uchar8;
+typedef char int8;
+typedef unsigned char uint8;
+typedef short int int16;
+typedef unsigned short int uint16;
+typedef int int32;
+typedef unsigned int uint32;
+typedef int intn;
+typedef unsigned int uintn;
+typedef float float32;
+typedef double float64;
+typedef long intf; /* size of INTEGERs in Fortran compiler */
+typedef long hdf_pint_t; /* an integer the same size as a pointer */
+
+#define FNAME_POST_UNDERSCORE
+#define _fcdtocp(desc) (desc)
+
+#ifdef HAVE_FMPOOL
+#define FILELIB PAGEBUFIO /* enable page buffering */
+#else
+#define FILELIB UNIXBUFIO
+#endif
+
+/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
+
+/* Determine the memory manager we are going to use. Valid values are: */
+/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
+/* what each does */
+#define JMEMSYS MEM_ANSI
+#define HAVE_STDC
+#define INCLUDES_ARE_ANSI
+
+#endif
+
+
/* Metrowerks Mac compiler defines some PC stuff so need to exclude this on the Mac */
#if !(defined(macintosh) || defined(MAC))
@@ -851,8 +916,12 @@
#endif /* WIN386 | DOS386 | UNIX386 */
#ifdef GOT_MACHINE
+#ifdef __GNUC__
+#error More than one machine type has been defined.
+#else
If you get an error on this line more than one machine type has been defined.
Please check your Makefile.
+#endif
#endif
#define GOT_MACHINE 1
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200402061837.19872.adridg>
