[Dovecot] ./configure and /or Makefile problem
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512
This is on OpenBSD 3.x.
I'll fully admit not being a savvy programmer and therefore unable to suggest a decent resolution.
It seems that _something_ in either the main "configure" script or one of the Makefile.in templates is causing the Makefiles in src/auth and src/util to add two variables named "AUTH_CFLAGS" and "AUTH_LIBS", which on first look makes sense.
Looking a bit deeper, they both contain variables in the format "@VARNAME@" which I'm presuming _should_ have been replaced with actual paths and/or "-l" statements during the configure process.
Those being:
AUTH_CFLAGS = -I@includedir@ @INCLUDE_des@ AUTH_LIBS = -L@libdir@ -lgssapi -lkrb5 -lasn1 @LIB_des_appl@
- -lroken @LIB_crypt@ @LIB_dbopen@ @LIBS@ -L/usr/local/lib -lpq
- -L/usr/local/lib/mysql -lmysqlclient -lz -lm
Two issues become apparent:
1 - Somehow, the unexpanded "@" variables are making it to the command line 2 - "-lroken" is a Linux specific library and is not found in most *BSD's. Generally configure scripts replace it with "-lcrypto" on host OS detection.
This can be displayed by looking at the errors for both auth and util:
Making all in auth gmake[3]: Entering directory `/src/mail/dovecot-1.0.beta8/src/auth' if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib then mv -f ".deps/mycrypt.Tpo" ".deps/mycrypt.Po"; else rm -f
- -I../../src/lib-sql -I../../src/lib-settings -I../../src/lib-ntlm
- -DAUTH_MODULE_DIR=\""/usr/local/lib/dovecot/auth"\"
- -DPKG_LIBEXECDIR=\""/usr/local/libexec/dovecot"\" -I@includedir@ @INCLUDE_des@ -I/usr/local/include -I/usr/include/kerberosV
- -std=gnu99 -O2 -march=athlon -pipe -Wall -W -Wmissing-prototypes
- -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2
- -Wbad-function-cast -MT mycrypt.o -MD -MP -MF ".deps/mycrypt.Tpo"
- -c -o mycrypt.o mycrypt.c; \
".deps/mycrypt.Tpo"; exit 1; fi
gcc: cannot specify -o with -c or -S and multiple compilations
gmake[3]: *** [mycrypt.o] Error 1
gmake[3]: Leaving directory /src/mail/dovecot-1.0.beta8/src/auth' gmake[2]: *** [all-recursive] Error 1 gmake[2]: Leaving directory
/src/mail/dovecot-1.0.beta8/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/src/mail/dovecot-1.0.beta8'
gmake: *** [all] Error 2
Making all in util gmake[3]: Entering directory `/src/mail/dovecot-1.0.beta8/src/util' if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib - then mv -f ".deps/gdbhelper.Tpo" ".deps/gdbhelper.Po"; else rm -f
- -I../../src/auth -I/usr/local/include -I/usr/include/kerberosV -
- -std=gnu99 -O2 -march=athlon -pipe -Wall -W -Wmissing-prototypes -
- -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2
- -Wbad-function-cast -MT rawlog.o -MD -MP -MF ".deps/rawlog.Tpo"
- -c - -o rawlog.o rawlog.c; \ then mv -f ".deps/rawlog.Tpo" ".deps/rawlog.Po"; else rm -f ".deps/rawlog.Tpo"; exit 1; fi /bin/sh ../../libtool --mode=link --tag=CC gcc -std=gnu99 -O2 -
- -march=athlon -pipe -Wall -W -Wmissing-prototypes
- -Wmissing-declarations -Wpointer-arith -Wchar-subscripts
- -Wformat=2 - -Wbad-function-cast -L/usr/local/lib -o rawlog rawlog.o ../lib/liblib.a mkdir .libs gcc -std=gnu99 -O2 -march=athlon -pipe -Wall -W -Wmissing-prototypes
- -Wmissing-declarations -Wpointer-arith -Wchar-subscripts
- -Wformat=2 - -Wbad-function-cast -o rawlog rawlog.o -L/usr/local/lib ../lib/liblib.a if gcc -DHAVE_CONFIG_H -I. -I. -I../..
- -I../../src/lib - -I../../src/auth -I/usr/local/include
- -I/usr/include/kerberosV - -std=gnu99 -O2 -march=athlon -pipe -Wall
- -W -Wmissing-prototypes - -Wmissing-declarations -Wpointer-arith
- -Wchar-subscripts -Wformat=2 - -Wbad-function-cast -MT gdbhelper.o
- -MD -MP -MF ".deps/gdbhelper.Tpo" -c -o gdbhelper.o gdbhelper.c; \
".deps/gdbhelper.Tpo"; exit 1; fi /bin/sh ../../libtool --mode=link directory
- --tag=CC gcc -std=gnu99 -O2 - -march=athlon -pipe -Wall -W
- -Wmissing-prototypes
- -Wmissing-declarations -Wpointer-arith -Wchar-subscripts
- -Wformat=2 - -Wbad-function-cast -L/usr/local/lib -o gdbhelper gdbhelper.o ../lib/liblib.a gcc -std=gnu99 -O2 -march=athlon -pipe -Wall -W -Wmissing-prototypes
- -Wmissing-declarations -Wpointer-arith -Wchar-subscripts
- -Wformat=2 - -Wbad-function-cast -o gdbhelper gdbhelper.o
- -L/usr/local/lib ../lib/liblib.a if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../src/lib -
- -I../../src/auth -I/usr/local/include -I/usr/include/kerberosV -
- -std=gnu99 -O2 -march=athlon -pipe -Wall -W -Wmissing-prototypes -
- -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2
- -Wbad-function-cast -MT dovecotpw.o -MD -MP -MF ".deps/dovecotpw.Tpo" -c -o dovecotpw.o dovecotpw.c; \ then mv -f ".deps/dovecotpw.Tpo" ".deps/dovecotpw.Po"; else rm -f ".deps/dovecotpw.Tpo"; exit 1; fi /bin/sh ../../libtool --mode=link
- --tag=CC gcc -std=gnu99 -O2 - -march=athlon -pipe -Wall -W
- -Wmissing-prototypes - -Wmissing-declarations -Wpointer-arith
- -Wchar-subscripts -Wformat=2 - -Wbad-function-cast
- -L/usr/local/lib -o dovecotpw dovecotpw.o ../auth/libpassword.a ../lib-ntlm/libntlm.a ../lib/liblib.a - -L@libdir@ -lgssapi -lkrb5
- -lasn1 @LIB_des_appl@ -lroken @LIB_crypt@ @LIB_dbopen@ @LIBS@
- -L/usr/local/lib -lpq -L/usr/local/lib/mysql
- -lmysqlclient -lz -lm -export-dynamic ../../libtool[6473]: cd: /src/mail/dovecot-1.0.beta8/src/util/@libdir@ - No such file or
libtool: link: cannot determine absolute directory name of @libdir@' gmake[3]: *** [dovecotpw] Error 1 gmake[3]: Leaving directory
/src/mail/dovecot-1.0.beta8/src/util'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory /src/mail/dovecot-1.0.beta8/src' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory
/src/mail/dovecot-1.0.beta8'
gmake: *** [all] Error 2
To get Dovecot to build, I manually went into both Makefiles, made "AUTH_CFLAGS" empty and deleted all "@" references and "-lroken" in "AUTH_LIBS" replacing them with "-lcrypto"
Once I did that, it built successfully and has not thrown any errors.
Ed V.
Don't hit the keys so hard, it hurts. 12 June 2006 08:22:32 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (MingW32)
iQIVAwUBRI15U6fRmhqF/IZAAQpxDBAA5eHEmclQjjQesfrz9cq5zkFeted+G5md vDCQ65Q8QDD5yXdg0BKlc571JbFJjI2Rc7jGEGsokrgP895jOEHDMEaDbJ4CCX8h r5IqFSmS9Hi/Uuyte1Aww7lLBnq0+yT9NcxzmYP0OYwGRM+EpYU5Z4/mwjgSmFcR 0qn/2WlmK+Q1kBD3S0IrtbOOUjLEFX+x+C5iomd0Ua05FuwtKSFFBBChNU9jOl3S 4ir9UVYJpd8pOikfghnPrSegoigjU4SsxcbvjFi3lfZUpJPY5oZZDNzRqh5/oJHc PSwIl8as98RqQqtJsMzEwzT787pAD5zT5q+KAk+0jRPN5Qhc58lnDSQD2KBr9WPg MeZmRivQAkK5LUePkSCGg+BqsiA6UJka5RF76nGfpi3boL7Uc6Q9OFYFHWny8g1T dxrQvXW5//n6QyxTPliK9Nu3g7tspp07E6oBMSAhu6q7KF3l+ReARVPEpdjcgOqM yz+rzk6a8NMTkXfsysvwm11EU6pvjgrJRpnVlLvYfbbIu0BDIVrr9J4iAXWvb6Ll 447S+DDf67rDxp0VscmCxQ1CrI8WK2mL/SGdnuJEcQvP2B1BurI01AcVNcUDfeNi anHOX+b8OUkwbvjOecFMNEMg/GHN1Ckgd05vgG4o4u2IyBsA/a1cypNFHnwLFTxM IRjupfBLxlE= =y6WG -----END PGP SIGNATURE-----
On Mon, 2006-06-12 at 08:25 -0600, B.O.F.H. wrote:
1 - Somehow, the unexpanded "@" variables are making it to the command line
I haven't heard this happening to anyone else but you, so I'd say the problem has something to do with your system rather than anything in Dovecot. You have newer automake than 1.4, right?
2 - "-lroken" is a Linux specific library and is not found in most *BSD's. Generally configure scripts replace it with "-lcrypto" on host OS detection.
Same in here again. The -lroken include is found somewhere from your system (possibly marked as a dependency to some library that Dovecot uses). The Dovecot sources don't contain -lroken anywhere in it.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512
This is on a "from bare-metal" install of OpenBSD 3.9, using the standard ports tree to install GNU utilities like autoconfig, gmake, etc.
# automake --version automake (GNU automake) 1.9.6 Written by Tom Tromey <tromey@redhat.com>.
Copyright 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# ldconfig -vr | grep roken # ld -lroken ld: cannot find -lroken #
# pwd /src/mail/dovecot-1.0.beta8 # grep lroken * Makefile:AUTH_LIBS = -L@libdir@ -lgssapi -lkrb5 -lasn1 @LIB_des_appl@ -lroken @LIB_crypt@ @LIB_dbopen@ @LIBS@
- -L/usr/local/lib -lpq -L/usr/local/lib/mysql -lmysqlclient -lz -lm config.log:AUTH_LIBS=' -L@libdir@ -lgssapi -lkrb5 -lasn1 @LIB_des_appl@ -lroken @LIB_crypt@ @LIB_dbopen@ @LIBS@
- -L/usr/local/lib -lpq -L/usr/local/lib/mysql -lmysqlclient -lz -lm' config.status:s,@AUTH_LIBS@, -L@libdir@ -lgssapi -lkrb5 -lasn1 @LIB_des_appl@ -lroken @LIB_crypt@ @LIB_dbopen@ @LIBS@
- -L/usr/local/lib -lpq -L/usr/local/lib/mysql -lmysqlclient -lz -lm,;t t
To my admittedly non-programmatic eye, it sure looks like something is populating -lroken through the configure process, even when it doesn't exist and ld returns an error code.
Is there any further data I can extract and /or pass along to help figure out where this is coming from?
Thanks,
Ed V.
IBM: Immeasurable Bigheaded Malapert 12 June 2006 08:47:32
Timo Sirainen wrote:
On Mon, 2006-06-12 at 08:25 -0600, B.O.F.H. wrote:
1 - Somehow, the unexpanded "@" variables are making it to the command line
I haven't heard this happening to anyone else but you, so I'd say the problem has something to do with your system rather than anything in Dovecot. You have newer automake than 1.4, right?
2 - "-lroken" is a Linux specific library and is not found in most *BSD's. Generally configure scripts replace it with "-lcrypto" on host OS detection.
Same in here again. The -lroken include is found somewhere from your system (possibly marked as a dependency to some library that Dovecot uses). The Dovecot sources don't contain -lroken anywhere in it.
!DSPAM:448d7ada50661617611613! -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (MingW32)
iQIVAwUBRI1/7KfRmhqF/IZAAQrAaQ/9ETHsQ5G9A1cml5uXwM11CQi0bwYN6v2B p1m6YnkX88LCwCmPwHaDyLs+qNM3tQR1I7syBocFSTdmiwzbckoPyXUV8pdEH0Yc Liq2YJ0WcZhusCC3UFe2xSNOBvWLmhyMxWczzXjEjR3XrmQjAr85HzasbfEAxuo4 0iL3itKrLtsFdKEhhsSKg0V57ym7x/Cbejlq+9WFkBLKjO9PACW7k3/HXPsUfoC0 F1VMyxcfa4h4LrS8+H14aKcgi7ZxztwbQikNfr2aHYX3jW+6KU+JKv3eHwxOOE6R yEl88y0gQExX5ew2CzNzgIhGbzAofZB8FJmxyrcCj+TWNspzNJiVqfGIbPufN5VD GPjV/ujRTMwoaK4JW0eYO+aiJ3LLjsz6KSVf3d7RPlwE0rbI+TFhxgEuhdqjq2Ll qLJyXlfGRn7RSonmpUFqzCyz1leaLlhHX4DSHpRdkGQE+83KFp0Y5/NeDbMxhfjL y3ACfVlCy0B4fWlMUcgTh6FV+o+/2zgwzk54DqVinDzkg7oBXx4sbshq5yawMBbh fibhFCKoz4OeS5nqibOwjFYQJhw2HeWpez7tN4jrWoNaBgWv10FSeLiL+6Hv9wVK TEt989Tq/YPO+YMGvZGU+w02xRPJZoqAfAw1loSJ/e7mcMA4OjfwrUJxxwQdF1GS kgSKvL3SlHU= =JsIQ -----END PGP SIGNATURE-----
participants (2)
-
B.O.F.H.
-
Timo Sirainen