Thread: Postgresql 7.3.4 compile failes on NetBSD 1.6 mac68k
Hi, I'm trying to compile Postgresql 7.3.4 on NetBSD 1.6 mac68k. First, I Had to add '%' signs in src/backend/storage/lmgr/s_lock.c before register names. --- postgresql-7.3.4/src/backend/storage/lmgr/s_lock.c Sat Sep 21 02:14:05 2002 +++ s_lock.c Mon Sep 22 20:51:25 2003 @@ -99,13 +99,13 @@ "\ .global _tas \n\ _tas: \n\ - movel sp@(0x4),a0 \n\ - tas a0@ \n\ + movel %sp@(0x4),%a0 \n\ + tas %a0@ \n\ beq _success \n\ - moveq #-128,d0 \n\ + moveq #-128,%d0 \n\ rts \n\ _success: \n\ - moveq #0,d0 \n\ + moveq #0,%d0 \n\ rts \n\ "); } Then, linking fails with undefined reference to the 'tas' function: access/SUBSYS.o: In function `XLogWrite': access/SUBSYS.o(.text+0x19dbc): undefined reference to `tas' access/SUBSYS.o: In function `XLogInsert': access/SUBSYS.o(.text+0x19470): undefined reference to `tas' access/SUBSYS.o(.text+0x19a38): undefined reference to `tas' access/SUBSYS.o: In function `AdvanceXLInsertBuffer': access/SUBSYS.o(.text+0x19b94): undefined reference to `tas' access/SUBSYS.o: In function `XLogFlush': access/SUBSYS.o(.text+0x1a358): undefined reference to `tas' access/SUBSYS.o(.text+0x1c844): more undefined references to `tas' follow Any Idea ? Regards, Rémi Zara -- Rémi Zara web: http://www.remi-zara.net/
=?ISO-8859-1?Q?R=E9mi_Zara?= <remi_zara@mac.com> writes: > I'm trying to compile Postgresql 7.3.4 on NetBSD 1.6 mac68k. > First, I Had to add '%' signs in src/backend/storage/lmgr/s_lock.c > before register names. > Then, linking fails with undefined reference to the 'tas' function: Some of the other platforms' tas functions make a point of defining both "tas" and "_tas". Does it help if you do likewise? regards, tom lane
=?ISO-8859-1?Q?R=E9mi_Zara?= <remi_zara@mac.com> writes: > Here is the patch to make postgresql compile on m68k 1.6.x NetBSD: I can't apply this as-is, since (I believe) adding the % marks would break the code for other m68k platforms. What we need is an #if test that determines whether % or no-% is the appropriate syntax for registers. Any ideas? regards, tom lane
Hi, It was indeed the '_' that was causing problem. It is due to the fact that NetBSD switch to ELF with release 1.6 Here is the patch to make postgresql compile on m68k 1.6.x NetBSD: --- postgresql-7.3.4/src/backend/storage/lmgr/s_lock.c Sat Sep 21 02:14:05 2002 +++ s_lock.c Thu Sep 25 18:47:34 2003 @@ -97,15 +97,15 @@ { __asm__ __volatile__( "\ -.global _tas \n\ -_tas: \n\ - movel sp@(0x4),a0 \n\ - tas a0@ \n\ +.global tas \n\ +tas: \n\ + movel %sp@(0x4),%a0 \n\ + tas %a0@ \n\ beq _success \n\ - moveq #-128,d0 \n\ + moveq #-128,%d0 \n\ rts \n\ _success: \n\ - moveq #0,d0 \n\ + moveq #0,%d0 \n\ rts \n\ "); } Regards, Rémi ZARA Le jeudi, 25 sep 2003, à 04:57 Europe/Paris, Tom Lane a écrit : > =?ISO-8859-1?Q?R=E9mi_Zara?= <remi_zara@mac.com> writes: >> I'm trying to compile Postgresql 7.3.4 on NetBSD 1.6 mac68k. >> First, I Had to add '%' signs in src/backend/storage/lmgr/s_lock.c >> before register names. >> Then, linking fails with undefined reference to the 'tas' function: > > Some of the other platforms' tas functions make a point of defining > both "tas" and "_tas". Does it help if you do likewise? > > regards, tom lane > > -- Rémi Zara web: http://www.remi-zara.net/
Would someone report on the answer to this m68k question? --------------------------------------------------------------------------- Tom Lane wrote: > =?ISO-8859-1?Q?R=E9mi_Zara?= <remi_zara@mac.com> writes: > > Here is the patch to make postgresql compile on m68k 1.6.x NetBSD: > > I can't apply this as-is, since (I believe) adding the % marks would > break the code for other m68k platforms. What we need is an #if test > that determines whether % or no-% is the appropriate syntax for > registers. Any ideas? > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 9: the planner will ignore your desire to choose an index scan if your > joining column's datatypes do not match > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073