In regard to: Re: [Imap-uw] 2006d Solaris 64 bit compile issues, Bob said...:

I have built imap-2006e.DEV.SNAP-0612181824 as 64 bit and unfortunately,
the imapd process does nto work any better than it did with the 2006d
version. The symptoms are that an initiall connection is established but
then nothing regarding the account is sent back to the client mail app
and the imapd daemon terminates. There is nothing helpful in the syslog
or anywhere else that I can find - not even a core file. I have to way
to pace the connection in order to get a truss output.

I spent a little bit of time looking at this issue.  I built the same
imapd snapshot on x86_64-sun-solaris2.10 using the no-cost Sun compilers.
I get a core dump (SEGV) in checkpw() which I'm in the process of trying
to debug, but I did turn up one minor, unrelated build problem.

Solaris 10 doesn't ship with a static copy of libc, at least on x86_64.
This sort of breaks the c-client/os_sol.h:



Building c-client for soc...
echo `cat SPECIALS`  > c-client/SPECIALS
cd c-client;make soc EXTRACFLAGS='-g -xs -xtarget=native -xarch=amd64'\
 EXTRALDFLAGS='-Wl,-64 -R/local/krb5/lib/64'\
 EXTRADRIVERS=''\
 EXTRAAUTHENTICATORS=''\
 PASSWDTYPE=std SSLTYPE=nopwd IP=4\

sh -c '(strings /lib/libc.a | grep getpassphrase > /dev/null) && ln -s 
os_soln.h os_sol.h || ln -s os_solo.h os_sol.h'
/lib/libc.a: No such file or directory


Since libc.a wasn't found, the || case is evaluated, and we end up with
os_sol.h pointing to os_solo.h.  I worked around the issue with this patch.


--- imap-2006e.DEV.SNAP-0612181824.orig/src/osdep/unix/Makefile 2006-12-07 
19:24:54.000000000 -0600
+++ imap-2006e.DEV.SNAP-0612181824/src/osdep/unix/Makefile      2006-12-20 
15:55:01.525946000 -0600
@@ -935,7 +935,7 @@
        @false

 os_sol.h:
-       sh -c '(strings /lib/libc.a | grep getpassphrase > /dev/null) && $(LN) 
os_soln.h os_sol.h || $(LN) os_solo.h os_sol.h'
+       sh -c 'if test -f /lib/libc.a ; then (strings /lib/libc.a | grep getpassphrase 
> /dev/null) && $(LN) os_soln.h os_sol.h || $(LN) os_solo.h os_sol.h ; else 
$(LN) os_soln.h os_sol.h ; fi'


 # Once-only environment setup




Basically, the idea is that if /lib/libc.a exists, we use the old logic of
searching libc.a for getpassphrase and linking to either the old or new
header.  If /lib/libc.a doesn't exist,  we're on a very recent version
of Solaris, and it therefore does have getpassphrase().

Mark, what do you think?

Tim
--
Tim Mooney                              [EMAIL PROTECTED]
Information Technology Services         (701) 231-1076 (Voice)
Room 242-J6, IACC Building              (701) 231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164
_______________________________________________
Imap-uw mailing list
Imap-uw@u.washington.edu
https://mailman1.u.washington.edu/mailman/listinfo/imap-uw

Reply via email to