(unnamed)

text/plain

Filename: (unnamed)
Type: text/plain
Part: 0
Message: Re: Minimal patches for PostgreSQL 7.0b3 on NetBSD/alpha 1.4.1....
*** ./old/src/backend/main/main.c	Wed Jan 26 00:56:30 2000
--- ./new/src/backend/main/main.c	Fri Apr  7 22:19:30 2000
***************
*** 12,27 ****
--- 12,31 ----
   *
   *-------------------------------------------------------------------------
   */
  #include <unistd.h>
  
+ #if defined(__NetBSD__)
+ #include <sys/param.h>
+ #else
  #if defined(__alpha__) && !defined(linux)
  #include <sys/sysinfo.h>
  #include "machine/hal_sysinfo.h"
  #define ASSEMBLER
  #include <sys/proc.h>
  #undef ASSEMBLER
+ #endif
  #endif
  
  #include "postgres.h"
  #ifdef USE_LOCALE
  #include <locale.h>
*** ./old/src/include/port/netbsd.h	Tue Mar  7 20:58:23 2000
--- ./new/src/include/port/netbsd.h	Sun Apr  9 23:49:37 2000
***************
*** 1,43 ****
  #define USE_POSIX_TIME
  
  #if defined(__i386__)
  #define NEED_I386_TAS_ASM
  #define HAS_TEST_AND_SET
  #endif
  
  #if defined(__sparc__)
  #define NEED_SPARC_TAS_ASM
  #define HAS_TEST_AND_SET
  #endif
  
  #if defined(__vax__)
  #define NEED_VAX_TAS_ASM
  #define HAS_TEST_AND_SET
  #endif
  
  #if defined(__ns32k__)
  #define NEED_NS32K_TAS_ASM
  #define HAS_TEST_AND_SET
  #endif
  
  #if defined(__m68k__)
  #define HAS_TEST_AND_SET
  #endif
  
  #if defined(__arm__)
  #define HAS_TEST_AND_SET
  #endif
  
  #if defined(__mips__)
  /* #	undef HAS_TEST_AND_SET */
  #endif
  
! #if defined(__powerpc__)
  #define HAS_TEST_AND_SET
  #endif
  
  #if defined(__powerpc__)
  typedef unsigned int slock_t;
- #else
- typedef unsigned char slock_t;
  #endif
--- 1,50 ----
  #define USE_POSIX_TIME
  
  #if defined(__i386__)
  #define NEED_I386_TAS_ASM
  #define HAS_TEST_AND_SET
+ typedef unsigned char slock_t;
  #endif
  
  #if defined(__sparc__)
  #define NEED_SPARC_TAS_ASM
  #define HAS_TEST_AND_SET
+ typedef unsigned char slock_t;
  #endif
  
  #if defined(__vax__)
  #define NEED_VAX_TAS_ASM
  #define HAS_TEST_AND_SET
+ typedef unsigned char slock_t;
  #endif
  
  #if defined(__ns32k__)
  #define NEED_NS32K_TAS_ASM
  #define HAS_TEST_AND_SET
+ typedef unsigned char slock_t;
  #endif
  
  #if defined(__m68k__)
  #define HAS_TEST_AND_SET
+ typedef unsigned char slock_t;
  #endif
  
  #if defined(__arm__)
  #define HAS_TEST_AND_SET
+ typedef unsigned char slock_t;
  #endif
  
  #if defined(__mips__)
  /* #	undef HAS_TEST_AND_SET */
+ typedef unsigned char slock_t;
  #endif
  
! #if defined(__alpha__)
  #define HAS_TEST_AND_SET
+ typedef unsigned long int slock_t;
  #endif
  
  #if defined(__powerpc__)
+ #define HAS_TEST_AND_SET
  typedef unsigned int slock_t;
  #endif
*** ./old/src/include/storage/s_lock.h	Wed Jan 26 00:58:33 2000
--- ./new/src/include/storage/s_lock.h	Sun Apr  9 23:56:46 2000
***************
*** 260,270 ****
--- 260,275 ----
  #else /* i.e. not __osf__ */
  
  #define TAS(lock) tas(lock)
  #define S_UNLOCK(lock) { __asm__("mb"); *(lock) = 0; }
  
+ #if defined(__GNUC__)
+ static int              /* GCC on the Alpha doesn't appear to handle
+                            inlining of assembly with %0 or %1 properly. */
+ #else
  static __inline__ int
+ #endif
  tas(volatile slock_t *lock)
  {
   register slock_t _res;
  
  __asm__("	 ldq   $0, %0			   \n\