Hi,

Here is a port report for NetBSD 2.0 mac68k, with sources of postgresql8.0.0rc1.

Here is the configure line used :
./configure --prefix=/data/postgresql/pgsql-8.0.0rc1 --with-openssl --with-python --with-perl --with-tcl --with-krb5 --with-pam

But some tweaking was necessary to make it work:
 * krb5.h is in /usr/include/krb5 on netbsd (set via CPPFLAGS)
 * krb5_encrypt is to be found in  -lkrb5 -ldes -lasn1 -lroken -lcrypto

--enable-thread-safety does not work because the thread safety test fails (src/tools/thread/thread_test)
configure:18831: ./conftest
conftest in free(): error: freelist is destroyed.
[1] Abort trap (core dumped) ./conftest${ac_e...


Then the tas code in src/backend/storage/lmgr/s_lock.c cannot be compiled and linked on this system without modification:
the '_' in front of the tas symbol should be removes, and '%' added in front of register names. I've attached a diff that makes these modifications only for NetBSD mac68k ELF.


With these modifications, make and make install are OK !

template1=# SELECT version();
version
------------------------------------------------------------------------ ---------------------------------
PostgreSQL 8.0.0rc1 on m68k-unknown-netbsdelf2.0, compiled by GCC gcc (GCC) 3.3.3 (NetBSD nb3 20040520)
(1 row)

in make check, two tests fail: float8 and misc.
I've attached the regression.diffs file.

Regards,

Rémi Zara

--
Rémi Zara
http://www.remi-zara.net/



Attachment: regression.diffs
Description: Binary data





--- src/backend/storage/lmgr/s_lock.c.orig      2004-12-14 20:50:08.000000000 
+0000
+++ src/backend/storage/lmgr/s_lock.c   2004-12-14 20:59:28.000000000 +0000
@@ -136,6 +136,26 @@
 
 
 #if defined(__m68k__)
+#if defined(__NetBSD__) && defined(__ELF__)
+static void
+tas_dummy()                                             /* really means: 
extern int tas(slock_t
+                                                                 * **lock); */
+{
+       __asm__         __volatile__(
+                                                                               
  "\
+.global         tas                            \n\
+tas:                                                   \n\
+                       movel   %sp@(0x4),%a0     \n\
+                       tas     %a0@                     \n\
+                       beq     _success        \n\
+                       moveq   #-128,%d0        \n\
+                       rts                                     \n\
+_success:                                               \n\
+                       moveq   #0,%d0           \n\
+                       rts                                     \n\
+");
+}
+#else
 static void
 tas_dummy()                                            /* really means: extern 
int tas(slock_t
                                                                 * **lock); */
@@ -154,6 +174,7 @@
                        rts                                     \n\
 ");
 }
+#endif   /$ __NetBSD__ && __ELF__ */
 #endif   /* __m68k__ */
 
 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to