[Dovecot] dovecot 2.0.2 compile issues on Solaris 10u8 Sparc
I am having compile problems with Dovecot v2.0.2 on a well patched Solaris 10u8 Sparc system using the included gcc compiler.
Version 2.0.0 compiled with out any issues using the same configure syntax. My ./configure syntax looks like this:
./configure --with-ssl=openssl --with-shadow
Yahoo and Google searches turned up nothing for me.
Reviewing the file mountpoint.c between version 2.0.0 and 2.0.2 shows the files to be identical, so I have a problem somewhere else, I am just not sure where.
TIA for any pointers,
Jerry
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
/bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H
-I. -I../.. -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes
-Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2
-Wbad-function-cast -I/usr/sfw/include -MT module-dir.lo -MD -MP -MF
.deps/module-dir.Tpo -c -o module-dir.lo module-dir.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -std=gnu99 -g -O2
-Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith
-Wchar-subscripts -Wformat=2 -Wbad-function-cast -I/usr/sfw/include -MT
module-dir.lo -MD -MP -MF .deps/module-dir.Tpo -c module-dir.c -fPIC
-DPIC -o .libs/module-dir.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -std=gnu99 -g -O2
-Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith
-Wchar-subscripts -Wformat=2 -Wbad-function-cast -I/usr/sfw/include -MT
module-dir.lo -MD -MP -MF .deps/module-dir.Tpo -c module-dir.c -o
module-dir.o >/dev/null 2>&1
mv -f .deps/module-dir.Tpo .deps/module-dir.Plo
/bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H
-I. -I../.. -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes
-Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2
-Wbad-function-cast -I/usr/sfw/include -MT mountpoint.lo -MD -MP -MF
.deps/mountpoint.Tpo -c -o mountpoint.lo mountpoint.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -std=gnu99 -g -O2
-Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith
-Wchar-subscripts -Wformat=2 -Wbad-function-cast -I/usr/sfw/include -MT
mountpoint.lo -MD -MP -MF .deps/mountpoint.Tpo -c mountpoint.c -fPIC
-DPIC -o .libs/mountpoint.o
mountpoint.c: In function mountpoint_get': mountpoint.c:88: error: field
ent' has incomplete type
mountpoint.c:89: error: field ext' has incomplete type mountpoint.c:172: warning: implicit declaration of function
resetmnttab'
mountpoint.c:173: warning: implicit declaration of function getextmntent' mountpoint.c:174: warning: implicit declaration of function
hasmntopt'
make[4]: *** [mountpoint.lo] Error 1
make[4]: Leaving directory /usr/local/src/d/dovecot-2.0.2/src/lib' make[3]: *** [all] Error 2 make[3]: Leaving directory
/usr/local/src/d/dovecot-2.0.2/src/lib'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory /usr/local/src/d/dovecot-2.0.2/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory
/usr/local/src/d/dovecot-2.0.2'
make: *** [all] Error 2
On Sat, 2010-09-11 at 22:12 -0500, Jerry K wrote:
I am having compile problems with Dovecot v2.0.2 on a well patched Solaris 10u8 Sparc system using the included gcc compiler.
Version 2.0.0 compiled with out any issues using the same configure syntax.
And it still compiles (i.e. you didn't do an OS upgrade since then)?
mountpoint.c:88: error: field
ent' has incomplete type mountpoint.c:89: error: field
ext' has incomplete type mountpoint.c:172: warning: implicit declaration of function `resetmnttab'
These should be defined in sys/mnttab.h. Is there anything different in config.h between 2.0.0 and 2.0.2?
If all else fails, you'll find the patchset that breaks it.. Maybe http://mercurial.selenic.com/wiki/BisectExtension helps.
Please see in line comments.
On 09/13/10 05:15, Timo Sirainen wrote:
On Sat, 2010-09-11 at 22:12 -0500, Jerry K wrote:
I am having compile problems with Dovecot v2.0.2 on a well patched Solaris 10u8 Sparc system using the included gcc compiler.
Version 2.0.0 compiled with out any issues using the same configure syntax.
yes, I am a new dovecot user, and it made sense to start with version 2.x
And it still compiles (i.e. you didn't do an OS upgrade since then)?
That is a good point, I haven't tried to recompile 2.0.0. I will do that then report back. No OS upgrades have taken place and no patches have been applied since compiling 2.0.0. I am planning an upgrade to Sol 10u9 on this system, but that has not yet taken place.
mountpoint.c:88: error: field
ent' has incomplete type mountpoint.c:89: error: field
ext' has incomplete type mountpoint.c:172: warning: implicit declaration of function `resetmnttab'These should be defined in sys/mnttab.h. Is there anything different in config.h between 2.0.0 and 2.0.2
here is a diff of config.h between 2.0.0 and 2.0.2
v120 /usr/local/src/d 412 # cd dovecot-2.0.2 v120 /usr/local/src/d/dovecot-2.0.2 413 # ls -l config.h -rw-r--r-- 1 root root 18641 Sep 11 21:43 config.h v120 /usr/local/src/d/dovecot-2.0.2 414 # ls -l ../dovecot-2.0.0/config.h -rw-r--r-- 1 root root 18644 Aug 16 17:00 ../dovecot-2.0.0/config.h v120 /usr/local/src/d/dovecot-2.0.2 415 # diff ./config.h ../dovecot-2.0.0/config.h 53c53 < #define DOVECOT_STRING "Dovecot 2.0.2"
#define DOVECOT_STRING "Dovecot 2.0.0" 56c56 < #define DOVECOT_VERSION "2.0.2"
#define DOVECOT_VERSION "2.0.0" 208c208 < #define HAVE_MNTENT_H 1
/* #undef HAVE_MNTENT_H */ 539c539 < #define PACKAGE_STRING "Dovecot 2.0.2"
#define PACKAGE_STRING "Dovecot 2.0.0" 548c548 < #define PACKAGE_VERSION "2.0.2"
#define PACKAGE_VERSION "2.0.0" 674c674 < #define VERSION "2.0.2"
#define VERSION "2.0.0"
If all else fails, you'll find the patchset that breaks it.. Maybe http://mercurial.selenic.com/wiki/BisectExtension helps.
Thanks for your assistance,
Jerry
It appears that file mntent.h is installed as part of package SUNWhea .
Jerry
..................................................................
# grep mntent.h /var/sadm/install/contents /usr/include/sys/mntent.h f none 0644 root bin 6831 16814 1252633432 SUNWhea
v120 /var/sadm/install 425 # ls -l /usr/include/sys/mntent.h -rw-r--r-- 1 root bin 6831 Sep 10 2009 /usr/include/sys/mntent.h
v120 /var/sadm/install 426 # cat /etc/release Solaris 10 10/09 s10s_u8wos_08a SPARC Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. Assembled 16 September 2009 v120 /var/sadm/install 427 #
On 09/13/10 09:21, Timo Sirainen wrote:
On Mon, 2010-09-13 at 09:10 -0500, Jerry Kemp wrote:
< #define HAVE_MNTENT_H 1
/* #undef HAVE_MNTENT_H */
This is unexpected. Where did you get mntent.h? It was supposed to exist only in Linux..
On Mon, 2010-09-13 at 09:35 -0500, Jerry Kemp wrote:
v120 /var/sadm/install 425 # ls -l /usr/include/sys/mntent.h
But that's sys/mntent.h
< #define HAVE_MNTENT_H 1
/* #undef HAVE_MNTENT_H */
This says you have mntent.h (not under sys/). Unless of course the /usr/include/sys/ directory suddenly somehow became added to include search path.
Does this give an error:
echo "#include
Timo, see response to original question at bottom of email ..........................................................
Thank you Timo!!
I did the following based on your hints provided:
# cd dovecot-2.0.2 # make clean # vi config.h, replacing line 208 with this line from my working v2.0.0 config.h ---> /* #undef HAVE_MNTENT_H */
# make # make check # make install
v120 /usr/local/src/d/dovecot-2.0.2 469 # which dovecot
/usr/local/sbin/dovecot
v120 /usr/local/src/d/dovecot-2.0.2 470 # ldd which dovecot
libdovecot.so.0 => /usr/local/lib/dovecot/libdovecot.so.0
libnsl.so.1 => /usr/lib/libnsl.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
librt.so.1 => /usr/lib/librt.so.1
libsendfile.so.1 => /usr/lib/libsendfile.so.1
libc.so.1 => /usr/lib/libc.so.1
libgcc_s.so.1 => /usr/sfw/lib/libgcc_s.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libmd.so.1 => /usr/lib/libmd.so.1
libscf.so.1 => /usr/lib/libscf.so.1
libaio.so.1 => /usr/lib/libaio.so.1
libdoor.so.1 => /usr/lib/libdoor.so.1
libuutil.so.1 => /usr/lib/libuutil.so.1
libgen.so.1 => /usr/lib/libgen.so.1
libm.so.2 => /usr/lib/libm.so.2
/platform/SUNW,UltraAX-i2/lib/libc_psr.so.1
/platform/SUNW,UltraAX-i2/lib/libmd_psr.so.1
v120 /usr/local/src/d/dovecot-2.0.2 471 # /usr/local/sbin/dovecot --version
2.0.2
v120 /usr/local/src/d/dovecot-2.0.2 472 #
v120 /usr/local/src/d/dovecot-2.0.2 472 # ps -ef | grep dovecot
root 23328 1 0 10:18:34 ? 0:00 /usr/local/sbin/dovecot
root 23332 23328 0 10:18:34 ? 0:00 dovecot/config
dovecot 23329 23328 0 10:18:34 ? 0:00 dovecot/anvil
root 23363 1017 0 10:25:24 pts/1 0:00 grep dovecot
root 23330 23328 0 10:18:34 ? 0:00 dovecot/log
v120 /usr/local/src/d/dovecot-2.0.2 473 #
On 09/13/10 09:56, Timo Sirainen wrote:
On Mon, 2010-09-13 at 09:35 -0500, Jerry Kemp wrote:
v120 /var/sadm/install 425 # ls -l /usr/include/sys/mntent.h
But that's sys/mntent.h
< #define HAVE_MNTENT_H 1
/* #undef HAVE_MNTENT_H */
This says you have mntent.h (not under sys/). Unless of course the /usr/include/sys/ directory suddenly somehow became added to include search path.
Does this give an error:
echo "#include
"|gcc -c -x c -
v120 /usr/local/src/d/dovecot-2.0.2 468 # echo "#include
On Mon, 2010-09-13 at 10:30 -0500, Jerry Kemp wrote:
v120 /usr/local/src/d/dovecot-2.0.2 468 # echo "#include
"|gcc -c -x c -
I'd still like to know why this works. Is this something that's happening with other people's systems as well, or is something broken in your Solaris? Do you have mntent.h elsewhere than under sys/?
The expected reply to that command is:
% echo "#include
running find and starting in / , this was the only instance of the file located on the system.
/usr/include/sys/mntent.h
Jerry
On 09/13/10 10:42, Timo Sirainen wrote:
On Mon, 2010-09-13 at 10:30 -0500, Jerry Kemp wrote:
v120 /usr/local/src/d/dovecot-2.0.2 468 # echo "#include
"|gcc -c -x c - I'd still like to know why this works. Is this something that's happening with other people's systems as well, or is something broken in your Solaris? Do you have mntent.h elsewhere than under sys/?
The expected reply to that command is:
% echo "#include
"|gcc -c -x c - <stdin>:1:20: mntent.h: No such file or directory
participants (3)
-
Jerry K
-
Jerry Kemp
-
Timo Sirainen