diff options
author | wtc%netscape.com <devnull@localhost> | 1999-03-23 04:09:23 +0000 |
---|---|---|
committer | wtc%netscape.com <devnull@localhost> | 1999-03-23 04:09:23 +0000 |
commit | 09d95e168a3b9971e554af146b9ddab5fdd16853 (patch) | |
tree | c0a058dd08efdf5118d8c7faffd096c0e886745d | |
parent | 68b0f136cdd3b381e0aa6eb949983364f247a38f (diff) | |
download | nspr-hg-09d95e168a3b9971e554af146b9ddab5fdd16853.tar.gz |
FreeBSD/Alpha port, contributed by Brian Ostrom <briano@netscape.com>.
Modified files: FreeBSD.mk, gencfg.c, _freebsd.cfg, _freebsd.h,
pr/tests/Makefile.
-rw-r--r-- | config/FreeBSD.mk | 6 | ||||
-rw-r--r-- | pr/include/gencfg.c | 4 | ||||
-rw-r--r-- | pr/include/md/_freebsd.cfg | 54 | ||||
-rw-r--r-- | pr/include/md/_freebsd.h | 6 | ||||
-rw-r--r-- | pr/tests/Makefile | 1 |
5 files changed, 69 insertions, 2 deletions
diff --git a/config/FreeBSD.mk b/config/FreeBSD.mk index 4a7f1d06..7eafaa2c 100644 --- a/config/FreeBSD.mk +++ b/config/FreeBSD.mk @@ -25,8 +25,13 @@ CC = gcc CCC = g++ RANLIB = ranlib +ifeq ($(OS_TEST),alpha) +CPU_ARCH = alpha +else OS_REL_CFLAGS = -mno-486 -Di386 CPU_ARCH = x86 +endif +CPU_ARCH_TAG = _$(CPU_ARCH) OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe -DFREEBSD -DHAVE_STRERROR -DHAVE_BSD_FLOCK @@ -34,6 +39,7 @@ ifeq ($(USE_PTHREADS),1) IMPL_STRATEGY = _PTH OS_LIBS = -lc_r DEFINES += -D_THREAD_SAFE +OS_CFLAGS += -pthread else IMPL_STRATEGY = _EMU OS_LIBS = -lc diff --git a/pr/include/gencfg.c b/pr/include/gencfg.c index f8160611..9d85a6b3 100644 --- a/pr/include/gencfg.c +++ b/pr/include/gencfg.c @@ -43,8 +43,8 @@ #endif #if defined(__alpha) -#if !(defined(_WIN32)) && !(defined(OSF1)) && !(defined(__linux)) - error - None of OSF1, _WIN32, or __linux is defined +#if !(defined(_WIN32)) && !(defined(OSF1)) && !(defined(__linux)) && !(defined(__FreeBSD__)) + error - None of OSF1, _WIN32, __linux, or __FreeBSD__ is defined #endif #endif diff --git a/pr/include/md/_freebsd.cfg b/pr/include/md/_freebsd.cfg index d5cdeef3..29b8b9b2 100644 --- a/pr/include/md/_freebsd.cfg +++ b/pr/include/md/_freebsd.cfg @@ -33,6 +33,8 @@ #undef HAVE_ALIGNED_DOUBLES #undef HAVE_ALIGNED_LONGLONGS +#if defined(__i386__) + #define PR_BYTES_PER_BYTE 1 #define PR_BYTES_PER_SHORT 2 #define PR_BYTES_PER_INT 4 @@ -71,6 +73,58 @@ #define PR_ALIGN_OF_DOUBLE 4 #define PR_ALIGN_OF_POINTER 4 +#elif defined(__alpha) + +#define IS_LITTLE_ENDIAN 1 +#undef IS_BIG_ENDIAN +#define HAVE_LONG_LONG +#define HAVE_ALIGNED_DOUBLES +#define HAVE_ALIGNED_LONGLONGS + +#define PR_BYTES_PER_BYTE 1 +#define PR_BYTES_PER_SHORT 2 +#define PR_BYTES_PER_INT 4 +#define PR_BYTES_PER_INT64 8 +#define PR_BYTES_PER_LONG 8 +#define PR_BYTES_PER_FLOAT 4 +#define PR_BYTES_PER_DOUBLE 8 +#define PR_BYTES_PER_WORD 8 +#define PR_BYTES_PER_DWORD 8 +#define PR_BYTES_PER_WORD_LOG2 3 +#define PR_BYTES_PER_DWORD_LOG2 3 + +#define PR_BITS_PER_BYTE 8 +#define PR_BITS_PER_SHORT 16 +#define PR_BITS_PER_INT 32 +#define PR_BITS_PER_INT64 64 +#define PR_BITS_PER_LONG 64 +#define PR_BITS_PER_FLOAT 32 +#define PR_BITS_PER_DOUBLE 64 +#define PR_BITS_PER_WORD 64 + +#define PR_BITS_PER_BYTE_LOG2 3 +#define PR_BITS_PER_SHORT_LOG2 4 +#define PR_BITS_PER_INT_LOG2 5 +#define PR_BITS_PER_INT64_LOG2 6 +#define PR_BITS_PER_LONG_LOG2 6 +#define PR_BITS_PER_FLOAT_LOG2 5 +#define PR_BITS_PER_DOUBLE_LOG2 6 +#define PR_BITS_PER_WORD_LOG2 6 + +#define PR_ALIGN_OF_SHORT 2 +#define PR_ALIGN_OF_INT 4 +#define PR_ALIGN_OF_LONG 8 +#define PR_ALIGN_OF_INT64 8 +#define PR_ALIGN_OF_FLOAT 4 +#define PR_ALIGN_OF_DOUBLE 8 +#define PR_ALIGN_OF_POINTER 8 + +#else + +#error "Unknown CPU architecture" + +#endif + #ifndef NO_NSPR_10_SUPPORT #define BYTES_PER_BYTE PR_BYTES_PER_BYTE diff --git a/pr/include/md/_freebsd.h b/pr/include/md/_freebsd.h index f8d4cf63..78fa623a 100644 --- a/pr/include/md/_freebsd.h +++ b/pr/include/md/_freebsd.h @@ -25,7 +25,13 @@ #define PR_LINKER_ARCH "freebsd" #define _PR_SI_SYSNAME "FREEBSD" +#if defined(__i386__) #define _PR_SI_ARCHITECTURE "x86" +#elif defined(__alpha) +#define _PR_SI_ARCHITECTURE "alpha" +#else +#error "Unknown CPU architecture" +#endif #if defined(__ELF__) #define PR_DLL_SUFFIX ".so" #else diff --git a/pr/tests/Makefile b/pr/tests/Makefile index b0a9af4c..e60f803d 100644 --- a/pr/tests/Makefile +++ b/pr/tests/Makefile @@ -362,6 +362,7 @@ endif ifeq ($(OS_ARCH),FreeBSD) ifeq ($(USE_PTHREADS),1) +LDOPTS += -pthread EXTRA_LIBS = -lc_r endif LDOPTS += -Xlinker -R $(PWD)/$(DIST)/lib |