Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call

2008-06-13 Thread Timo Sirainen
On Thu, 2008-06-12 at 23:37 -0700, Woonsan Ko wrote:
 Hi All,
 
 I tried to build dovecot-1.1.rc9 on a HP-UX machine, but failed to configure 
 with the following message:
 
 configure: error: You don't appear to have C99 compatible vsnprintf() call

You're in luck, I just yesterday fixed a lot of problems with HP-UX. My
latest changes are in http://dovecot.org/tmp/dovecot-hpux.tar.gz

Could you try that and tell me if it compiles and everything works?
v1.1.rc10 release is actually just waiting for someone to confirm that
the HP-UX changes work..



signature.asc
Description: This is a digitally signed message part


Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call

2008-06-13 Thread Woonsan Ko
Hi Timo,

Thank you very much for quick response.
I have just tested with your new package, but they print other errors during 
`make':

1. `make' after `configure'

Error 239: str-find.c, line 17 # A struct/union shall not contain a member
with incomplete type.
int goodtab[];
^^^

2. `make' after `configure CC=/opt/aCC/bin/aCC -AC99'

Error 20: mempool-alloconly.c, line 83 # 'number' expected before '.'.
MEMBER(v) static_alloconly_pool_vfuncs,
^^
Error 19: mempool-alloconly.c, line 83 # Unexpected ','.
MEMBER(v) static_alloconly_pool_vfuncs,
   ^
Error 19: mempool-alloconly.c, line 86 # Unexpected '.'.
MEMBER(datastack_pool) FALSE
^^
Error 186: mempool-alloconly.c, line 83 # Left side of '.' requires a struct
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.


The environment here:
  - uname: HP-UX B.11.23 U ia64
  - aCC version: HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]


Kind regards,

Woonsan


--- On Fri, 6/13/08, Timo Sirainen [EMAIL PROTECTED] wrote:

 From: Timo Sirainen [EMAIL PROTECTED]
 Subject: Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() 
 call
 To: [EMAIL PROTECTED]
 Cc: Dovecot Mailing List dovecot@dovecot.org
 Date: Friday, June 13, 2008, 3:40 PM
 On Thu, 2008-06-12 at 23:37 -0700, Woonsan Ko wrote:
  Hi All,
  
  I tried to build dovecot-1.1.rc9 on a HP-UX machine,
 but failed to configure with the following message:
  
  configure: error: You don't appear to have C99
 compatible vsnprintf() call
 
 You're in luck, I just yesterday fixed a lot of
 problems with HP-UX. My
 latest changes are in
 http://dovecot.org/tmp/dovecot-hpux.tar.gz
 
 Could you try that and tell me if it compiles and
 everything works?
 v1.1.rc10 release is actually just waiting for someone to
 confirm that
 the HP-UX changes work..


  


Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call

2008-06-13 Thread Timo Sirainen
On Fri, 2008-06-13 at 00:12 -0700, Woonsan Ko wrote:
 Hi Timo,
 
 Thank you very much for quick response.
 I have just tested with your new package, but they print other errors during 
 `make':
 
 1. `make' after `configure'
 
 Error 239: str-find.c, line 17 # A struct/union shall not contain a member
 with incomplete type.
 int goodtab[];
 ^^^

This is valid C99 code. I don't think I want to change it just to
support one rarely used compiler. You could change it to [1] and it
should work just as well (same for lib-imap/imap-match.c).

 2. `make' after `configure CC=/opt/aCC/bin/aCC -AC99'
 
 Error 20: mempool-alloconly.c, line 83 # 'number' expected before '.'.
 MEMBER(v) static_alloconly_pool_vfuncs,
 ^^

MEMBER() macro is defined in src/macros.h:

/* C99-style struct member definitions */
#if (defined(__STDC__)  __STDC_VERSION__ = 199901L) || __GNUC__  2
#  define MEMBER(name) .name =
#else
#  define MEMBER(name)
#endif

So apparently HP-UX lies that it supports C99 even though it doesn't
actually? I could change that #ifdef, but I don't know what would be a
good check for HP-UX.



signature.asc
Description: This is a digitally signed message part


Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call

2008-06-13 Thread Timo Sirainen
On Fri, 2008-06-13 at 09:40 +0300, Timo Sirainen wrote:
 On Thu, 2008-06-12 at 23:37 -0700, Woonsan Ko wrote:
  Hi All,
  
  I tried to build dovecot-1.1.rc9 on a HP-UX machine, but failed to 
  configure with the following message:
  
  configure: error: You don't appear to have C99 compatible vsnprintf() call
 
 You're in luck, I just yesterday fixed a lot of problems with HP-UX. My
 latest changes are in http://dovecot.org/tmp/dovecot-hpux.tar.gz
 
 Could you try that and tell me if it compiles and everything works?
 v1.1.rc10 release is actually just waiting for someone to confirm that
 the HP-UX changes work..

I guess the most important thing I want to know is: What is
MODULE_SUFFIX set to in generated Makefiles?



signature.asc
Description: This is a digitally signed message part


Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call

2008-06-13 Thread Woonsan Ko
Hi Timo,

Please see comments below.

--- On Fri, 6/13/08, Timo Sirainen [EMAIL PROTECTED] wrote:

 From: Timo Sirainen [EMAIL PROTECTED]
 Subject: Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() 
 call
 To: [EMAIL PROTECTED]
 Cc: Dovecot Mailing List dovecot@dovecot.org
 Date: Friday, June 13, 2008, 4:33 PM
 On Fri, 2008-06-13 at 00:12 -0700, Woonsan Ko wrote:
  Hi Timo,
  
  Thank you very much for quick response.
  I have just tested with your new package, but they
 print other errors during `make':
  
  1. `make' after `configure'
  
  Error 239: str-find.c, line 17 # A
 struct/union shall not contain a member
  with incomplete type.
  int goodtab[];
  ^^^
 
 This is valid C99 code. I don't think I want to change
 it just to
 support one rarely used compiler. You could change it to
 [1] and it
 should work just as well (same for lib-imap/imap-match.c).

I agree. I think we can compile with `aCC -AC99' instead of `cc' for HP-UX.
Thank you for the information anyway.

 
  2. `make' after `configure CC=/opt/aCC/bin/aCC
 -AC99'
  
  Error 20: mempool-alloconly.c, line 83 #
 'number' expected before '.'.
  MEMBER(v)
 static_alloconly_pool_vfuncs,
  ^^
 
 MEMBER() macro is defined in src/macros.h:
 
 /* C99-style struct member definitions */
 #if (defined(__STDC__)  __STDC_VERSION__ =
 199901L) || __GNUC__  2
 #  define MEMBER(name) .name =
 #else
 #  define MEMBER(name)
 #endif
 
 So apparently HP-UX lies that it supports C99 even though
 it doesn't
 actually? I could change that #ifdef, but I don't know
 what would be a
 good check for HP-UX.

The man page is saying that they support C99 partially.
Anyway, I think we can check for HP-UX by _HPUX_SOURCE.
(See http://docs.hp.com/en/B9106-90012/stdsyms.5.html)
I think #ifdef _HPUX_SOURCE can work for us.
Thank you very much!

Regards,

Woonsan


  


Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call

2008-06-13 Thread Woonsan Ko
It is like the following in the generated Makefile:

MODULE_SUFFIX = .so



--- On Fri, 6/13/08, Timo Sirainen [EMAIL PROTECTED] wrote:

 From: Timo Sirainen [EMAIL PROTECTED]
 Subject: Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() 
 call
 To: Dovecot Mailing List dovecot@dovecot.org
 Cc: [EMAIL PROTECTED]
 Date: Friday, June 13, 2008, 4:50 PM
 On Fri, 2008-06-13 at 09:40 +0300, Timo Sirainen wrote:
  On Thu, 2008-06-12 at 23:37 -0700, Woonsan Ko wrote:
   Hi All,
   
   I tried to build dovecot-1.1.rc9 on a HP-UX
 machine, but failed to configure with the following
 message:
   
   configure: error: You don't appear to have
 C99 compatible vsnprintf() call
  
  You're in luck, I just yesterday fixed a lot of
 problems with HP-UX. My
  latest changes are in
 http://dovecot.org/tmp/dovecot-hpux.tar.gz
  
  Could you try that and tell me if it compiles and
 everything works?
  v1.1.rc10 release is actually just waiting for someone
 to confirm that
  the HP-UX changes work..
 
 I guess the most important thing I want to know is: What is
 MODULE_SUFFIX set to in generated Makefiles?


  


Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call

2008-06-13 Thread Timo Sirainen
On Fri, 2008-06-13 at 00:55 -0700, Woonsan Ko wrote:
 It is like the following in the generated Makefile:
 
 MODULE_SUFFIX = .so

Are the plugins created using .so or .sl suffix?



signature.asc
Description: This is a digitally signed message part


Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call

2008-06-13 Thread Woonsan Ko
Actually I'm testing with two HP-UX machine here.
[1] `uname': HP-UX B.11.23 U
`model': 9000/800/rp3440
CPU: PA-RISC
`aCC --version': HP ANSI C++ B3910B A.03.80
[2] `uname': HP-UX B.11.23 U ia64
`model': ia64 hp server rx5670
CPU: Itanium
`aCC --version': HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]

With [1], the MODULE_SUFFIX is .sl, and plugins are created with .sl suffix 
when I compile dovecot-1.0.13.
But, With [2], the MODULE_SUFFIX is .so, and plugins are created with .so 
suffix when I compile dovecot-1.0.13.

I have no idea why there's a difference between the two.
I googled a page 
(http://osdir.com/ml/gnu.libtool.general/2003-10/msg00019.html) which seems 
saying 11.x can make .so suffixed ELF shared library.

I don't know. Is it from the difference between PA-RISC and Itanium or from the 
difference of the compiler versions?



--- On Fri, 6/13/08, Timo Sirainen [EMAIL PROTECTED] wrote:

 From: Timo Sirainen [EMAIL PROTECTED]
 Subject: Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() 
 call
 To: [EMAIL PROTECTED]
 Cc: Dovecot Mailing List dovecot@dovecot.org
 Date: Friday, June 13, 2008, 5:00 PM
 On Fri, 2008-06-13 at 00:55 -0700, Woonsan Ko wrote:
  It is like the following in the generated Makefile:
  
  MODULE_SUFFIX = .so
 
 Are the plugins created using .so or .sl suffix?


  


Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call

2008-06-13 Thread Woonsan Ko
By the way, on the [1] machine, I succeeded in `make' by using gcc like the 
following:
$ ./configure CC=/opt/hp-gcc64-4.2.1/bin/gcc

 [1] `uname': HP-UX B.11.23 U
 `model': 9000/800/rp3440
 CPU: PA-RISC
 `aCC --version': HP ANSI C++ B3910B A.03.80

The plugins are created with .sl suffixes, but there some odd files postfixed 
by 'ODULE_SUFFIX':

# find /usr/local/dovecot-tmp/lib -name lib* -print
/usr/local/dovecot-tmp/lib
/usr/local/dovecot-tmp/lib/dovecot/imap/lib01_acl_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/imap/lib20_convert_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/imap/lib20_expire_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/imap/lib20_fts_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/imap/lib21_fts_squat_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/imap/lib02_lazy_expunge_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/imap/lib20_mail_log_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/imap/lib20_mbox_snarf_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/imap/lib10_quota_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/imap/lib11_imap_quota_plugin.sl
/usr/local/dovecot-tmp/lib/dovecot/imap/lib11_imap_quota_plugin.la
/usr/local/dovecot-tmp/lib/dovecot/imap/lib11_imap_quota_plugin.a
/usr/local/dovecot-tmp/lib/dovecot/imap/lib11_trash_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/lda/lib01_acl_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/lda/lib20_convert_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/lda/lib20_expire_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/lda/lib20_fts_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/lda/lib21_fts_squat_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/lda/lib20_mail_log_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/lda/lib10_quota_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/lda/lib11_trash_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/pop3/lib20_convert_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/pop3/lib20_expire_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/pop3/lib02_lazy_expunge_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/pop3/lib20_mail_log_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/pop3/lib20_mbox_snarf_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/pop3/lib10_quota_pluginODULE_SUFFIX
/usr/local/dovecot-tmp/lib/dovecot/lib01_acl_plugin.sl
/usr/local/dovecot-tmp/lib/dovecot/lib01_acl_plugin.la
/usr/local/dovecot-tmp/lib/dovecot/lib01_acl_plugin.a
/usr/local/dovecot-tmp/lib/dovecot/lib21_fts_squat_plugin.sl
/usr/local/dovecot-tmp/lib/dovecot/lib21_fts_squat_plugin.la
/usr/local/dovecot-tmp/lib/dovecot/lib21_fts_squat_plugin.a
/usr/local/dovecot-tmp/lib/dovecot/lib02_lazy_expunge_plugin.sl
/usr/local/dovecot-tmp/lib/dovecot/lib02_lazy_expunge_plugin.la
/usr/local/dovecot-tmp/lib/dovecot/lib02_lazy_expunge_plugin.a
/usr/local/dovecot-tmp/lib/dovecot/lib20_mail_log_plugin.sl
/usr/local/dovecot-tmp/lib/dovecot/lib20_mail_log_plugin.la
/usr/local/dovecot-tmp/lib/dovecot/lib20_mail_log_plugin.a
/usr/local/dovecot-tmp/lib/dovecot/lib20_mbox_snarf_plugin.sl
/usr/local/dovecot-tmp/lib/dovecot/lib20_mbox_snarf_plugin.la
/usr/local/dovecot-tmp/lib/dovecot/lib20_mbox_snarf_plugin.a
/usr/local/dovecot-tmp/lib/dovecot/lib10_quota_plugin.sl
/usr/local/dovecot-tmp/lib/dovecot/lib10_quota_plugin.la
/usr/local/dovecot-tmp/lib/dovecot/lib10_quota_plugin.a
/usr/local/dovecot-tmp/lib/dovecot/lib11_trash_plugin.sl
/usr/local/dovecot-tmp/lib/dovecot/lib11_trash_plugin.la
/usr/local/dovecot-tmp/lib/dovecot/lib11_trash_plugin.a

Regards,

Woonsan


--- On Fri, 6/13/08, Timo Sirainen [EMAIL PROTECTED] wrote:

 From: Timo Sirainen [EMAIL PROTECTED]
 Subject: Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() 
 call
 To: [EMAIL PROTECTED]
 Cc: Dovecot Mailing List dovecot@dovecot.org
 Date: Friday, June 13, 2008, 5:00 PM
 On Fri, 2008-06-13 at 00:55 -0700, Woonsan Ko wrote:
  It is like the following in the generated Makefile:
  
  MODULE_SUFFIX = .so
 
 Are the plugins created using .so or .sl suffix?


  


Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call

2008-06-13 Thread Timo Sirainen
On Fri, 2008-06-13 at 02:09 -0700, Woonsan Ko wrote:
 By the way, on the [1] machine, I succeeded in `make' by using gcc like the 
 following:
 $ ./configure CC=/opt/hp-gcc64-4.2.1/bin/gcc
 
  [1] `uname': HP-UX B.11.23 U
  `model': 9000/800/rp3440
  CPU: PA-RISC
  `aCC --version': HP ANSI C++ B3910B A.03.80
 
 The plugins are created with .sl suffixes, but there some odd files postfixed 
 by 'ODULE_SUFFIX':

Yes, I noticed that myself also. It's fixed in rc10.



signature.asc
Description: This is a digitally signed message part


Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call

2008-06-13 Thread Woonsan Ko
I succeeded in installing rc10 under HP-UX PA-RISC machine with gcc 
(hp-gcc64-4.2.1). It created .sl suffixed libraries.

Also, I succeeded in making rc10 under HP-UX Itanium machine with the following 
configuration:
$ ./configure CC=/opt/aCC/bin/aCC -AC99
It created .so suffixed libraries.
However, two sources you mentioned before had to be modified: lib/str-find.c 
(int goodtab[1];) and lib-imap/imap-match.c (char patterns_data[1];).
I believe gcc would make in cleaner way than aCC also.

Thank you very much!

Regards,

Woonsan


--- On Fri, 6/13/08, Timo Sirainen [EMAIL PROTECTED] wrote:

 From: Timo Sirainen [EMAIL PROTECTED]
 Subject: Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() 
 call
 To: [EMAIL PROTECTED]
 Cc: Dovecot Mailing List dovecot@dovecot.org
 Date: Friday, June 13, 2008, 6:15 PM
 On Fri, 2008-06-13 at 02:09 -0700, Woonsan Ko wrote:
  By the way, on the [1] machine, I succeeded in
 `make' by using gcc like the following:
  $ ./configure CC=/opt/hp-gcc64-4.2.1/bin/gcc
  
   [1] `uname': HP-UX B.11.23 U
   `model': 9000/800/rp3440
   CPU: PA-RISC
   `aCC --version': HP ANSI C++ B3910B
 A.03.80
  
  The plugins are created with .sl suffixes, but there
 some odd files postfixed by 'ODULE_SUFFIX':
 
 Yes, I noticed that myself also. It's fixed in rc10.