Peter Bray
2011-Apr-13 01:33 UTC
[Dovecot] Solaris 10 Compilation Issue with 2.0.12 (actually post 12690) [WORKAROUND PROVIDED]
Greetings, Post 12689:7f5735ab7c35 / 12690:02829f7f79c7 dovecot uses the reentrant version of get(password/group)* related functions. There are two variants of these functions on Solaris. To get the variant used by dovecot code based you need to define _POSIX_PTHREAD_SEMANTICS (see attached manual page). Initially I defined this just for the compilation of lib/src/ipwd.c, and got the code to compile / check / run successfully in my environment. After this worked I decided to try compiling the whole code base with CPPFLAGS="-D_POSIX_PTHREAD_SEMANTICS" ./configure .... This also seems to work fine. My environment uses IMAPS (X86) and Proxying IMAPS (SPARC). All code compiles / checks / runs (only 64-bit versions run tested) with the above CPPFLAGS modification on Oracle Solaris 10 Update 9 (both 32/64 bit on both X86 / SPARC with GCC 4.1.2) systems. Regards, Peter Bray Sydney, Australia PS: I have not investigated an appropriate way to modified configure.in to make this addition automatic. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: getpwnam.txt Url: http://dovecot.org/pipermail/dovecot/attachments/20110412/8fedf488/attachment-0001.txt
Timo Sirainen
2011-Apr-13 07:39 UTC
[Dovecot] Solaris 10 Compilation Issue with 2.0.12 (actually post 12690) [WORKAROUND PROVIDED]
On 13.4.2011, at 4.33, Peter Bray wrote:> Post 12689:7f5735ab7c35 / 12690:02829f7f79c7 dovecot uses the reentrant version of get(password/group)* related functions. There are two variants of these functions on Solaris. To get the variant used by dovecot code based you need to define _POSIX_PTHREAD_SEMANTICS (see attached manual page).Oh. I remember looking at the Solaris man page, but I guess I missed the other variant so I didn't bother testing it.> Initially I defined this just for the compilation of lib/src/ipwd.c, and got the code to compile / check / run successfully in my environment.Yes, I think that's the safest way to fix it. Done: http://hg.dovecot.org/dovecot-2.0/rev/b60d73301c08> After this worked I decided to try compiling the whole code base with > > CPPFLAGS="-D_POSIX_PTHREAD_SEMANTICS" ./configure ....This is a good workaround for v2.0.12, but I don't want to make it permanent. Whenever I add this kind of a define globally it always seems to break something somewhere..