Re: Cyrus IMAPd 2.3.7 Released

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Дейтер Александр Валериевич wrote:
Ken Murchison wrote:

I am pleased to announce the release of Cyrus IMAPd 2.3.7. This release should be considered late beta quality, reflecting that most large bugs have been resolved, but some small buglets might still remain. This release fixes problems with replication and virtual domains as well as a byte-alignment problem on 64-bit machines.

I have removed #define HAVE_LONG_LONG_INT in config.h:

--- cyrus-imapd-2.3.7/config.h.orig        Wed Jul 12 13:54:00 2006
+++ cyrus-imapd-2.3.7/config.h    Wed Jul 12 11:24:17 2006
@@ -158,7 +158,7 @@
 #define HAVE_LONG_FILE_NAMES 1

 /* Does the compiler support long long int? */
-#define HAVE_LONG_LONG_INT
+#undef HAVE_LONG_LONG_INT

 /* Define to 1 if you have the `memmove' function. */
 #define HAVE_MEMMOVE 1
@@ -321,10 +321,10 @@
 #define SIZEOF_LONG 8

 /* The size of a `long long int', as computed by sizeof. */
-#define SIZEOF_LONG_LONG_INT 8
+#undef SIZEOF_LONG_LONG_INT

 /* The size of a `unsigned long long int', as computed by sizeof. */
-#define SIZEOF_UNSIGNED_LONG_LONG_INT 8
+#undef SIZEOF_UNSIGNED_LONG_LONG_INT

 /* Do we already have setproctitle? */
 /* #undef SPT_TYPE */

rebuild and reinstall Cyrus IMAP and reconstruct/imapd programs work again.

Comments ?


The #undef is forcing the MODSEQ field of cyrus.index to be only 4-bytes instead of 8. This will obviously work, but its masking whatever problem the Sun compiler is having with the 8-byte code.



P.S.:

on i386/sparc32:
size of int = 4
size of long = 4
size of long long = 8

on sparc64:
size of int = 4
size of long = 8
size of long long = 8

Thanks a lot!

This release cannot work on Solaris 9 64-bit. Cyrus-IMAP build in 64-bit
mode with SUNWspro cc (SUN Studio 11):

# su - cyrus -c /usr/local/sbin/reconstruct user.devel
Bus Error - core dumped
program terminated by signal BUS (invalid address alignment)
Current function is mailbox_read_index_header
  946           ntohll(*((bit64
*)(mailbox->index_base+OFFSET_HIGHESTMODSEQ_64)));
(dbx) where
=>[1] mailbox_read_index_header(mailbox = 0xffffffff7fffaa60), line 946
in "mailbox.c"
  [2] mailbox_open_index(mailbox = 0xffffffff7fffaa60), line 675 in
"mailbox.c"
  [3] reconstruct(name = 0x100204e7c "user.devel", found = (nil)), line
529 in "reconstruct.c"
  [4] do_reconstruct(name = 0xffffffff7fffd23d "user.devel", matchlen =
10, maycreate = 1, rock = (nil)), line 393 in "reconstruct.c"
  [5] find_cb(rockp = 0xffffffff7fffda78, key = 0xffffffff7bb000e4 "<bad
address 0x7bb000e4>", keylen = 10, data = 0xffffffff7bb000f4 "<bad
address 0x7bb000f4>", datalen = 26), line 1974 in "mboxlist.c"
  [6] myforeach(db = 0x100228da0, prefix = 0xffffffff7fffd671
"user.devel", prefixlen = 10, goodp = 0x100029e88 =
&`reconstruct`mboxlist.c`find_p(void *rockp, const char *key, int
keylen, const char *data, int datalen), cb = 0x10002a468 =
&`reconstruct`mboxlist.c`find_cb(void *rockp, const char *key, int
keylen, const char *data, int datalen), rock = 0xffffffff7fffda78, tid =
(nil)), line 989 in "cyrusdb_skiplist.c"
  [7] mboxlist_findall(namespace = 0x100214430, pattern = 0x100220050
"user.devel", isadmin = 1, userid = (nil), auth_state = (nil), proc =
0x1000166f8 = &do_reconstruct(char *name, int matchlen, int maycreate,
void *rock), rock = (nil)), line 2168 in "mboxlist.c"
  [8] main(argc = 2, argv = 0xffffffff7ffffd98), line 301 in "reconstruct.c"
(dbx)



--
Kenneth Murchison
Systems Programmer
Project Cyrus Developer/Maintainer
Carnegie Mellon University
----
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux