Thread: Open portability issues

Open portability issues

From
Andreas Zeugswetter
Date:
Open portability issues:

/usr/local should be searched for lib and include for all ports if present
(currently not working, I have libreadline there)

the stream functions on AIX need a size_t for addrlen's in fe-connect.c and pqcomm.c.

lock.c still has an incompatible TPRINTF(flags, args...) definition

the long long int printf format in int8.h is %lld on AIX

AIX 4.2.1 and 4.3.1 need one other simpler Makefile, another template
and must not include dynloader.c


Andreas

PS: all unsigned char problems are gone.
keep it cidr not inet !!
and no, the heaptuple.c fix did not fix the pg_class index problem
sorry i am off to weekend now

begin 600 aix_42
M05)/4%0Z8W)S"D-&3$%'4SHM<6-H87)S/7-I9VYE9" M<6UA>&UE;3TX,3DR
M("UQ:&%L=#UW("UQ<W)C;7-G("UQ8VAE8VL]9&EV>F5R;R M<6QO;F=L;VYG
M"E-(05)%1%],24(Z"D%,3#H*4U)#2%])3D,Z"E-20TA?3$E".@I54T5?3$]#
K04Q%.FYO"D1,4U5&1DE8.BYS;PI91DQ!1U,Z+60*64%#0SH*0T,Z>&QC"D]#
`
end

begin 600 Makefile.aix4
M34M?3D]?3$]21$52/2!T<G5E"@HE)"A$3%-51D9)6"DZ("4N;PH))"A,1"D@
J+4<@+6)E>'!A;&P@+6)N;V5N=')Y("UO("1 ("0\("0H3$1&3$%'4RD*
`
end

begin 600 .similar
M86QP:&$M9&5C+6]S9CUA;'!H80IA;'!H82UU;FMN;W=N+6QI;G5X+6=N=3UL
M:6YU>%]A;'!H80IH<'!A,2XQ+6AP+6AP=7@Q,"XR,#UH<'5X7V-C"FAP<&$Q
M+C$M<W1R871U<RUS>7-V-#US=G(T"FDS.#8M;F5X="UN97AT<W1E<#,];F5X
M='-T97 *:3,X-BUP8RUB<V1I,BXP/6)S9&E?,BXP"FDS.#8M<&,M8G-D:3(N
M,3UB<V1I7S(N,0II,S@V+7!C+6)S9&DS+C ]8G-D:5\S+C *:3,X-BUP8RUL
M:6YU>"UG;G4];&EN=7A?:3,X-@II,S@V+7!C+7-O;&%R:7,R+C8]<V]L87)I
M<U]I,S@V7V=C8PII,S@V+7!C+7-U;F]S-3US;VQA<FES7VDS.#9?9V-C"FDS
M.#8M=6YK;F]W;BUF<F5E8G-D/69R965B<V0*:3,X-BUU;FMN;W=N+6YE=&)S
M9#UN971B<V0*:30X-BUP8RUL:6YU>"UG;G4];&EN=7A?:3,X-@II-3@V+7!C
M+6QI;G5X+6=N=3UL:6YU>%]I,S@V"FDU.#8M<&,M<V-O,RXR=CUS8V\*:38X
M-BUP8RUL:6YU>"UG;G4];&EN=7A?:3,X-@IM:7!S+7-G:2UI<FEX/6ER:7@U
M"G!O=V5R<&,M:6)M+6%I>#,N,BXU/6%I>%\S,C4*<&]W97)P8RUI8FTM86EX
M-"XQ+C0N,#UA:7A?-#$*<&]W97)P8RUI8FTM86EX-"XQ+C4N,#UA:7A?-#$*
M<&]W97)P8RUI8FTM86EX-"XR+C$N,#UA:7A?-#(*<&]W97)P8RUI8FTM86EX
M-"XS+C$N,#UA:7A?-#(*<&]W97)P8RUU;FMN;W=N+6QI;G5X+6=N=3UL:6YU
M>%]P<&,*<W!A<F,M<W5N+7-O;&%R:7,]<V]L87)I<U]S<&%R8U]G8V,*<W!A
M<F,M<W5N+7-U;F]S-#US=6YO<S1?9V-C"G-P87)C+7-U;BUS=6YO<S4]<V]L
M87)I<U]S<&%R8U]G8V,*<W!A<F,M=6YK;F]W;BUL:6YU>"UG;G4];&EN=7A?
&<W!A<F,*
`
end


Re: [HACKERS] Open portability issues

From
Brook Milligan
Date:
   Open portability issues:

   /usr/local should be searched for lib and include for all ports if present
   (currently not working, I have libreadline there)

See the INSTALL file for using configure.

       --with-includes=DIRS
                          Include DIRS in list of directories searched
                          for header files.  (Typical use will need
                          --with-includes=/usr/local/include)

       --with-libs=DIRS
       --with-libraries=DIRS
                          Include DIRS in list of directories searched
                          for archive libraries.  (Typical use will need
                          --with-libraries=/usr/local/lib)

Cheers,
Brook

Re: [HACKERS] Open portability issues

From
"Thomas G. Lockhart"
Date:
> the long long int printf format in int8.h is %lld on AIX

This is on my list. %lld will work with gcc also, so since we don't have
very many reported successful ports for int8, we should just change it
for now.

                    - Tom

Re: [HACKERS] Open portability issues

From
Massimo Dal Zotto
Date:
>
>
> Open portability issues:
>
> /usr/local should be searched for lib and include for all ports if present
> (currently not working, I have libreadline there)
>
> the stream functions on AIX need a size_t for addrlen's in fe-connect.c and pqcomm.c.
>
> lock.c still has an incompatible TPRINTF(flags, args...) definition

Please apply this patch:

*** src/backend/storage/lmgr/lock.c.orig    Wed Aug 26 09:00:55 1998
--- src/backend/storage/lmgr/lock.c    Mon Sep  7 14:44:53 1998
*************** static int WaitOnLock(LOCKMETHOD lockmet
*** 136,153 ****
           xidentP->holders[5], \
           xidentP->nHolding)

- #define LOCK_TPRINTF(lock, args...) \
-     if (((LOCKDEBUG(LOCK_LOCKMETHOD(*(lock))) >= 1) \
-          && (lock->tag.relId >= lockDebugOidMin)) \
-         || (lock->tag.relId == lockDebugRelation)) \
-         TPRINTF(TRACE_ALL, args)
-
  #else    /* !LOCK_MGR_DEBUG */
  #define LOCK_PRINT(where,lock,type)
  #define LOCK_PRINT_AUX(where,lock,type)
  #define XID_PRINT(where,xidentP)
  #define XID_PRINT_AUX(where,xidentP)
- #define LOCK_TPRINTF(lock, args...)
  #endif    /* !LOCK_MGR_DEBUG */

  static char *lock_types[] = {
--- 136,146 ----
*************** LockRelease(LOCKMETHOD lockmethod, LOCKT
*** 1200,1206 ****
      }
      else
      {
!         LOCK_TPRINTF(lock, "LockRelease: no wakeup needed");
      }

      SpinRelease(masterLock);
--- 1193,1202 ----
      }
      else
      {
!         if (((LOCKDEBUG(LOCK_LOCKMETHOD(*(lock))) >= 1) \
!              && (lock->tag.relId >= lockDebugOidMin)) \
!             || (lock->tag.relId == lockDebugRelation))
!             TPRINTF(TRACE_ALL, "LockRelease: no wakeup needed");
      }

      SpinRelease(masterLock);


--
Massimo Dal Zotto

+----------------------------------------------------------------------+
|  Massimo Dal Zotto                email:  dz@cs.unitn.it             |
|  Via Marconi, 141                 phone:  ++39-461-534251            |
|  38057 Pergine Valsugana (TN)     www:  http://www.cs.unitn.it/~dz/  |
|  Italy                            pgp:  finger dz@tango.cs.unitn.it  |
+----------------------------------------------------------------------+

Re: [HACKERS] Open portability issues

From
Bruce Momjian
Date:
Patch applied.


[Charset iso-8859-1 unsupported, filtering to ASCII...]
> >
> >
> > Open portability issues:
> >
> > /usr/local should be searched for lib and include for all ports if present
> > (currently not working, I have libreadline there)
> >
> > the stream functions on AIX need a size_t for addrlen's in fe-connect.c and pqcomm.c.
> >
> > lock.c still has an incompatible TPRINTF(flags, args...) definition
>
> Please apply this patch:
>
> *** src/backend/storage/lmgr/lock.c.orig    Wed Aug 26 09:00:55 1998
> --- src/backend/storage/lmgr/lock.c    Mon Sep  7 14:44:53 1998
> *************** static int WaitOnLock(LOCKMETHOD lockmet
> *** 136,153 ****
>            xidentP->holders[5], \
>            xidentP->nHolding)
>
> - #define LOCK_TPRINTF(lock, args...) \
> -     if (((LOCKDEBUG(LOCK_LOCKMETHOD(*(lock))) >= 1) \
> -          && (lock->tag.relId >= lockDebugOidMin)) \
> -         || (lock->tag.relId == lockDebugRelation)) \
> -         TPRINTF(TRACE_ALL, args)
> -
>   #else    /* !LOCK_MGR_DEBUG */
>   #define LOCK_PRINT(where,lock,type)
>   #define LOCK_PRINT_AUX(where,lock,type)
>   #define XID_PRINT(where,xidentP)
>   #define XID_PRINT_AUX(where,xidentP)
> - #define LOCK_TPRINTF(lock, args...)
>   #endif    /* !LOCK_MGR_DEBUG */
>
>   static char *lock_types[] = {
> --- 136,146 ----
> *************** LockRelease(LOCKMETHOD lockmethod, LOCKT
> *** 1200,1206 ****
>       }
>       else
>       {
> !         LOCK_TPRINTF(lock, "LockRelease: no wakeup needed");
>       }
>
>       SpinRelease(masterLock);
> --- 1193,1202 ----
>       }
>       else
>       {
> !         if (((LOCKDEBUG(LOCK_LOCKMETHOD(*(lock))) >= 1) \
> !              && (lock->tag.relId >= lockDebugOidMin)) \
> !             || (lock->tag.relId == lockDebugRelation))
> !             TPRINTF(TRACE_ALL, "LockRelease: no wakeup needed");
>       }
>
>       SpinRelease(masterLock);
>
>
> --
> Massimo Dal Zotto
>
> +----------------------------------------------------------------------+
> |  Massimo Dal Zotto                email:  dz@cs.unitn.it             |
> |  Via Marconi, 141                 phone:  ++39-461-534251            |
> |  38057 Pergine Valsugana (TN)     www:  http://www.cs.unitn.it/~dz/  |
> |  Italy                            pgp:  finger dz@tango.cs.unitn.it  |
> +----------------------------------------------------------------------+
>
>


--
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)

Re: Open portability issues

From
Bruce Momjian
Date:
>
> Open portability issues:
>
> /usr/local should be searched for lib and include for all ports if present
> (currently not working, I have libreadline there)

I actually us a flag to configure:

        --with-includes="/u/readline" \
        --with-libraries="/u/readline /usr/contrib/lib"

Should we be poking around in /usr/local by default?  Comments?

>
> the stream functions on AIX need a size_t for addrlen's in fe-connect.c and pqcomm.c.

This has come up before.  AIX wants size_t for certain structures like
getsockname().  I believe the third parameter on AIX is size_t, while it
used to be int on my machine, but is not socklen_t.  Is this correct?
The 'int' code works fine for me, but I can see why AIX is having a
problem, and perhaps it is time for configure to check on the various
types.

    getsockname(int s, struct sockaddr *name, socklen_t *namelen);

Can you confirm this?

>
> lock.c still has an incompatible TPRINTF(flags, args...) definition

Massimo has fixed this.

>
> the long long int printf format in int8.h is %lld on AIX
>
> AIX 4.2.1 and 4.3.1 need one other simpler Makefile, another template
> and must not include dynloader.c

Done.  Files added.


>
> PS: all unsigned char problems are gone.
> keep it cidr not inet !!
> and no, the heaptuple.c fix did not fix the pg_class index problem
> sorry i am off to weekend now
>
> begin 600 aix_42
> M05)/4%0Z8W)S"D-&3$%'4SHM<6-H87)S/7-I9VYE9" M<6UA>&UE;3TX,3DR
> M("UQ:&%L=#UW("UQ<W)C;7-G("UQ8VAE8VL]9&EV>F5R;R M<6QO;F=L;VYG
> M"E-(05)%1%],24(Z"D%,3#H*4U)#2%])3D,Z"E-20TA?3$E".@I54T5?3$]#
> K04Q%.FYO"D1,4U5&1DE8.BYS;PI91DQ!1U,Z+60*64%#0SH*0T,Z>&QC"D]#
> `
> end
>
> begin 600 Makefile.aix4
> M34M?3D]?3$]21$52/2!T<G5E"@HE)"A$3%-51D9)6"DZ("4N;PH))"A,1"D@
> J+4<@+6)E>'!A;&P@+6)N;V5N=')Y("UO("1 ("0\("0H3$1&3$%'4RD*
> `
> end
>
> begin 600 .similar
> M86QP:&$M9&5C+6]S9CUA;'!H80IA;'!H82UU;FMN;W=N+6QI;G5X+6=N=3UL
> M:6YU>%]A;'!H80IH<'!A,2XQ+6AP+6AP=7@Q,"XR,#UH<'5X7V-C"FAP<&$Q
> M+C$M<W1R871U<RUS>7-V-#US=G(T"FDS.#8M;F5X="UN97AT<W1E<#,];F5X
> M='-T97 *:3,X-BUP8RUB<V1I,BXP/6)S9&E?,BXP"FDS.#8M<&,M8G-D:3(N
> M,3UB<V1I7S(N,0II,S@V+7!C+6)S9&DS+C ]8G-D:5\S+C *:3,X-BUP8RUL
> M:6YU>"UG;G4];&EN=7A?:3,X-@II,S@V+7!C+7-O;&%R:7,R+C8]<V]L87)I
> M<U]I,S@V7V=C8PII,S@V+7!C+7-U;F]S-3US;VQA<FES7VDS.#9?9V-C"FDS
> M.#8M=6YK;F]W;BUF<F5E8G-D/69R965B<V0*:3,X-BUU;FMN;W=N+6YE=&)S
> M9#UN971B<V0*:30X-BUP8RUL:6YU>"UG;G4];&EN=7A?:3,X-@II-3@V+7!C
> M+6QI;G5X+6=N=3UL:6YU>%]I,S@V"FDU.#8M<&,M<V-O,RXR=CUS8V\*:38X
> M-BUP8RUL:6YU>"UG;G4];&EN=7A?:3,X-@IM:7!S+7-G:2UI<FEX/6ER:7@U
> M"G!O=V5R<&,M:6)M+6%I>#,N,BXU/6%I>%\S,C4*<&]W97)P8RUI8FTM86EX
> M-"XQ+C0N,#UA:7A?-#$*<&]W97)P8RUI8FTM86EX-"XQ+C4N,#UA:7A?-#$*
> M<&]W97)P8RUI8FTM86EX-"XR+C$N,#UA:7A?-#(*<&]W97)P8RUI8FTM86EX
> M-"XS+C$N,#UA:7A?-#(*<&]W97)P8RUU;FMN;W=N+6QI;G5X+6=N=3UL:6YU
> M>%]P<&,*<W!A<F,M<W5N+7-O;&%R:7,]<V]L87)I<U]S<&%R8U]G8V,*<W!A
> M<F,M<W5N+7-U;F]S-#US=6YO<S1?9V-C"G-P87)C+7-U;BUS=6YO<S4]<V]L
> M87)I<U]S<&%R8U]G8V,*<W!A<F,M=6YK;F]W;BUL:6YU>"UG;G4];&EN=7A?
> &<W!A<F,*
> `
> end
>
>


--
Bruce Momjian                          |  830 Blythe Avenue
maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
  +  If your life is a hard drive,     |  (610) 353-9879(w)
  +  Christ can be your backup.        |  (610) 853-3000(h)

Re: [HACKERS] Re: Open portability issues

From
Brook Milligan
Date:
   > Open portability issues:
   >
   > /usr/local should be searched for lib and include for all ports if present
   > (currently not working, I have libreadline there)

   I actually us a flag to configure:

       --with-includes="/u/readline" \
       --with-libraries="/u/readline /usr/contrib/lib"

   Should we be poking around in /usr/local by default?  Comments?

No!  The configure options (including the /usr/local typical usage)
are clearly outlined in INSTALL and easy to use.  In fact, arbitrary
series of space-separated directories can be given as you illustrate.

The configuration stuff works fine now.  Why mung it up again?  If we
make searching /usr/local a default, we need a way to prevent that if
the wrong stuff is in /usr/local.  It makes sense to simply specify
where to look, document what to do, and be done.

Cheers,
Brook

Re: [HACKERS] Re: Open portability issues

From
The Hermit Hacker
Date:
On Wed, 9 Sep 1998, Bruce Momjian wrote:

> >
> > Open portability issues:
> >
> > /usr/local should be searched for lib and include for all ports if present
> > (currently not working, I have libreadline there)
>
> I actually us a flag to configure:
>
>         --with-includes="/u/readline" \
>         --with-libraries="/u/readline /usr/contrib/lib"
>
> Should we be poking around in /usr/local by default?  Comments?

    No...unless someone can point me at a package that explicitly goes
out and looking /usr/local.  I've yet to have a problem with any package
I've installed not being able to find libraries and include files that are
installed in /usr/local ... if someone is having a problem, they should be
directed to look at *fixing* their system in the first place, as they are
definitely going to have more problems then just with PostgreSQL...


Marc G. Fournier
Systems Administrator @ hub.org
primary: scrappy@hub.org           secondary: scrappy@{freebsd|postgresql}.org


Re: Open portability issues

From
Andreas Zeugswetter
Date:
>Should we be poking around in /usr/local by default?  Comments?

I would, since it is pretty much a standard place to put gnu, bsd and other extensions
like perl, bison, readline ... on non BSD or Linux systems.

>>
>> the stream functions on AIX need a size_t for addrlen's in fe-connect.c and pqcomm.c.
>
>This has come up before.  AIX wants size_t for certain structures like
>getsockname().  I believe the third parameter on AIX is size_t, while it
>used to be int on my machine, but is not socklen_t.  Is this correct?
>The 'int' code works fine for me, but I can see why AIX is having a
>problem, and perhaps it is time for configure to check on the various
>types.
>
>    getsockname(int s, struct sockaddr *name, socklen_t *namelen);

Ok, so this gets tricky. In 4.2.1 it is size_t and in 4.3.1 it is as above with socklen_t :-(

>> AIX 4.2.1 and 4.3.1 need one other simpler Makefile, another template
>> and must not include dynloader.c
>
>Done.  Files added.

Thanks very much :-)

Andreas