Thread: Open portability issues
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
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
> 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
> > > 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 | +----------------------------------------------------------------------+
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)
> > 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)
> 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
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
>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