[Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call
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
The environment is like the following:
- command: ./configure
- uname: HP-UX B.11.23 U ia64
- aCC version: HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]
Also, I tried to run ./configure CC=c99' and
./configure CC="/opt/aCC/bin/aCC -Ae" also, but the result was the same. I'm not sure, but the HP C compiler does not seem to support C99 fully with vsnprintf() call.
Is there any workaround for this problem?
TIA,
Woonsan
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..
Hi Timo,
Thank you very much for quick response. I have just tested with your new package, but they print other errors during `make':
make' after
configure'
Error 239: "str-find.c", line 17 # A struct/union shall not contain a member with incomplete type. int goodtab[]; ^^^^^^^
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 <tss@iki.fi> wrote:
From: Timo Sirainen <tss@iki.fi> Subject: Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call To: woon_san@yahoo.com 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..
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':
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).
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.
Hi Timo,
Please see comments below.
--- On Fri, 6/13/08, Timo Sirainen <tss@iki.fi> wrote:
Hi Timo,
Thank you very much for quick response. I have just tested with your new package, but they
From: Timo Sirainen <tss@iki.fi> Subject: Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call To: woon_san@yahoo.com 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: print other errors during `make':
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.
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
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?
It is like the following in the generated Makefile:
MODULE_SUFFIX = .so
--- On Fri, 6/13/08, Timo Sirainen <tss@iki.fi> 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
From: Timo Sirainen <tss@iki.fi> Subject: Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call To: "Dovecot Mailing List" <dovecot@dovecot.org> Cc: woon_san@yahoo.com Date: Friday, June 13, 2008, 4:50 PM On Fri, 2008-06-13 at 09:40 +0300, Timo Sirainen wrote: 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?
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 <tss@iki.fi> wrote:
From: Timo Sirainen <tss@iki.fi> Subject: Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call To: woon_san@yahoo.com 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?
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 <tss@iki.fi> wrote:
From: Timo Sirainen <tss@iki.fi> Subject: Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call To: woon_san@yahoo.com 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?
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.80The 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.
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 <tss@iki.fi> wrote:
From: Timo Sirainen <tss@iki.fi> Subject: Re: [Dovecot] configure error on HP-UX: C99 compatible vsnprintf() call To: woon_san@yahoo.com 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.80The 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.
participants (2)
-
Timo Sirainen
-
Woonsan Ko