Re: 7.4.2 on Solaris 9 - Error - Mailing list pgsql-general

From Jan Wieck
Subject Re: 7.4.2 on Solaris 9 - Error
Date
Msg-id 40658325.9070609@Yahoo.com
Whole thread Raw
In response to Re: 7.4.2 on Solaris 9 - Error  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: 7.4.2 on Solaris 9 - Error
List pgsql-general
Bruce Momjian wrote:

> wespvp@syntegra.com wrote:
>> On 3/25/04 3:43 PM, "Bruce Momjian" <pgman@candle.pha.pa.us> wrote:
>>
>> > I assume you were using 7.4.0, rather than 7.4.2.  Current CVS has in
>> > template/solaris:
>> >
>> >
>> > # tools/thread/thread_test must be run
>> > # -D_POSIX_PTHREAD_SEMANTICS enables 5-arg getpwuid_r, among other
>> > things
>> > 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'm right in the middle - using 7.4.1 with GCC.  However, I did try 7.4.2
>> and it has the same problem.
>>
>> Looks like a typo in template/solaris, and certainly explains the bad
>> parameter on gcc.  The "if gcc" has the incorrect "-pthread".
>>
>> This would seem an appropriate place to add - -D_REENTRANT to fix the errno
>> issue, wouldn't it?
>
> Are you sure your change is correct?  We just added
> "-D_POSIX_PTHREAD_SEMANTICS" in post 7.4.2, and the submitters did not
> mention any problems with the -pthread line for gcc.
>
> I just tried it on Sourceforge's Solaris 9 and I see:
>
>     bash-2.05$ gcc -pthread
>     gcc: unrecognized option `-pthread'
>     gcc: no input files
>
> which seems to indicate you are right.  I am kind of surprised.  Some
> platforms to take -pthread, some -lpthread, so I am pretty sure it was
> specified by the original Solaris guy.

there are also platforms using -pthreads, -kthread, -Kthread, -mthreads,
-mt and --thread-safe ... with dependancies on other compiler flags like
-D_REENTRANT, -D_THREAD_SAFE, order dependencies (like need to check for
pthreads before -lpthread on AIX) and sometimes resulting in a different
compiler program called alltogether.


Jan

>
> OK, new template/solaris version applied to 7.4.X and head:
>
> ---------------------------------------------------------------------------
>
>
> if test "$GCC" != yes ; then
>   CC="$CC -Xa"            # relaxed ISO C mode
>   CFLAGS="-O -v"        # -v is like gcc -Wall
> fi
>
> # Pick right test-and-set (TAS) code.
> case $host in
>   sparc-*-solaris*)  need_tas=yes; tas_file=solaris_sparc.s ;;
>   i?86-*-solaris*)   need_tas=yes; tas_file=solaris_i386.s ;;
> esac
>
> THREAD_SUPPORT=yes
> NEED_REENTRANT_FUNCS=yes    # 5.6 2003-09-13
> THREAD_CPPFLAGS="-D_POSIX_PTHREAD_SEMANTICS"
> if test "$GCC" != yes
> then    THREAD_CPPFLAGS="$THREAD_CPPFLAGS -mt"
> fi
> THREAD_LIBS="-lpthread"
>


--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #


pgsql-general by date:

Previous
From: David Garamond
Date:
Subject: Re: License on PostgreSQL
Next
From: Richard Welty
Date:
Subject: Re: Physical Database Configuration