Thread: Patch for: 7.4.2 build broken on Solaris 7 and 8 with --enable-thread-safety
Patch for: 7.4.2 build broken on Solaris 7 and 8 with --enable-thread-safety
From
jseymour@LinxNet.com (Jim Seymour)
Date:
Hi All, The following patch fixes building PostgreSQL 7.4.2 under Sun (Sparc) Solaris 7 and 8 (possibly earlier and later versions, as well) with --enable-thread-safety. The first addresses what would appear to be a coding error in thread.c. The second ensures the proper pthread function call semantics. Build tested using GCC 3.3.1 under Solaris 7 and 8. Tested with ancient version of Sun's commercial development package under Solaris 8. Note: I don't know that --enable-thread-safety actually *works* on these platforms. But the package now builds. Regards, Jim *** ./src/port/thread.c-orig Tue Mar 2 13:38:28 2004 --- ./src/port/thread.c Sun Mar 14 10:07:04 2004 *************** *** 186,192 **** * broken (well early POSIX draft) gethostbyname_r() which returns * 'struct hostent *' */ ! *result = gethostbyname_r(name, resbuf, buffer, buflen, herrno); return (*result == NULL) ? -1 : 0; #else --- 186,192 ---- * broken (well early POSIX draft) gethostbyname_r() which returns * 'struct hostent *' */ ! *result = gethostbyname_r(name, resultbuf, buffer, buflen, herrno); return (*result == NULL) ? -1 : 0; #else *** ./src/template/solaris-orig Wed Jan 7 23:21:20 2004 --- ./src/template/solaris Sun Mar 14 14:39:40 2004 *************** *** 12,19 **** THREAD_SUPPORT=yes NEED_REENTRANT_FUNCS=yes # 5.6 2003-09-13 if test "$GCC" = yes ! then THREAD_LIBS="-pthread" ! else THREAD_CPPFLAGS="-mt" THREAD_LIBS="-lpthread" fi --- 12,20 ---- THREAD_SUPPORT=yes NEED_REENTRANT_FUNCS=yes # 5.6 2003-09-13 if test "$GCC" = yes ! then THREAD_CPPFLAGS="-D_POSIX_PTHREAD_SEMANTICS" ! THREAD_LIBS="-pthread" ! else THREAD_CPPFLAGS="-mt -D_POSIX_PTHREAD_SEMANTICS" THREAD_LIBS="-lpthread" fi
I have updated the solaris template file in CVS HEAD and 7.4.X to reflect your changes. I had already fixed the thread.c typo. Thanks. --------------------------------------------------------------------------- Jim Seymour wrote: > Hi All, > > The following patch fixes building PostgreSQL 7.4.2 under Sun (Sparc) > Solaris 7 and 8 (possibly earlier and later versions, as well) with > --enable-thread-safety. > > The first addresses what would appear to be a coding error in > thread.c. The second ensures the proper pthread function call > semantics. > > Build tested using GCC 3.3.1 under Solaris 7 and 8. Tested with > ancient version of Sun's commercial development package under Solaris > 8. > > Note: I don't know that --enable-thread-safety actually *works* on > these platforms. But the package now builds. > > Regards, > Jim > > > *** ./src/port/thread.c-orig Tue Mar 2 13:38:28 2004 > --- ./src/port/thread.c Sun Mar 14 10:07:04 2004 > *************** > *** 186,192 **** > * broken (well early POSIX draft) gethostbyname_r() which returns > * 'struct hostent *' > */ > ! *result = gethostbyname_r(name, resbuf, buffer, buflen, herrno); > return (*result == NULL) ? -1 : 0; > > #else > --- 186,192 ---- > * broken (well early POSIX draft) gethostbyname_r() which returns > * 'struct hostent *' > */ > ! *result = gethostbyname_r(name, resultbuf, buffer, buflen, herrno); > return (*result == NULL) ? -1 : 0; > > #else > *** ./src/template/solaris-orig Wed Jan 7 23:21:20 2004 > --- ./src/template/solaris Sun Mar 14 14:39:40 2004 > *************** > *** 12,19 **** > THREAD_SUPPORT=yes > NEED_REENTRANT_FUNCS=yes # 5.6 2003-09-13 > if test "$GCC" = yes > ! then THREAD_LIBS="-pthread" > ! else THREAD_CPPFLAGS="-mt" > THREAD_LIBS="-lpthread" > fi > > --- 12,20 ---- > THREAD_SUPPORT=yes > NEED_REENTRANT_FUNCS=yes # 5.6 2003-09-13 > if test "$GCC" = yes > ! then THREAD_CPPFLAGS="-D_POSIX_PTHREAD_SEMANTICS" > ! THREAD_LIBS="-pthread" > ! else THREAD_CPPFLAGS="-mt -D_POSIX_PTHREAD_SEMANTICS" > THREAD_LIBS="-lpthread" > fi > > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org > -- 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, Pennsylvania19073