cvs commit: ports/databases/postgresql84-server Makefile
ports/databases/postgresql90-server
Makefile ports/databases/postgresql91-server Makefile
Eygene Ryabinkin
rea at FreeBSD.org
Sun Sep 25 18:09:07 UTC 2011
rea 2011-09-25 18:09:06 UTC
FreeBSD ports repository
Modified files:
databases/postgresql84-server Makefile
databases/postgresql90-server Makefile
databases/postgresql91-server Makefile
Log:
PostgreSQL: unbreak GSSAPI support
The problem with GSSAPI without Kerberos is that configure.in has
very funny logics of choosing GSSAPI libraries:
{{{
if test "$with_gssapi" = yes ; then
if test "$PORTNAME" != "win32"; then
AC_SEARCH_LIBS(gss_init_sec_context, [gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'], [],
[AC_MSG_ERROR([could not find function 'gss_init_sec_context' required for GSSAPI])])
else
LIBS="$LIBS -lgssapi32"
fi
fi
}}}
This makes configure to happily choose -lgssapi_krb5 when the system
has Kerberos support (NO_KERBEROS is absent), but ld's '--as-needed'
will throw this library away when no Kerberos functions are used and
linker won't produce 'postgres' binary whining about unresolved
symbols:
{{{
cc -O2 -pipe -fno-strict-aliasing -Wall -Wmissing-prototypes \
-Wpointer-arith -Wdeclaration-after-statement -Wendif-labels \
-fno-strict-aliasing -fwrapv -L../../src/port -L/usr/local/lib \
-rpath=/usr/lib:/usr/local/lib -L/usr/local/lib -L/usr/local/lib \
-Wl,--as-needed -Wl,-R'/usr/local/lib' -Wl,-export-dynamic \
[... a bunch of *.o files was stripped ...]
../../src/timezone/pgtz.o ../../src/port/libpgport_srv.a -lintl -lssl \
-lcrypto -lgssapi_krb5 -lcrypt -lm -o postgres
libpq/auth.o: In function `pg_GSS_error':
auth.c:(.text+0x6e): undefined reference to `gss_display_status'
auth.c:(.text+0x8e): undefined reference to `gss_release_buffer'
auth.c:(.text+0xc5): undefined reference to `gss_display_status'
auth.c:(.text+0xe5): undefined reference to `gss_release_buffer'
libpq/auth.o: In function `ClientAuthentication':
auth.c:(.text+0x82d): undefined reference to `gss_delete_sec_context'
auth.c:(.text+0x941): undefined reference to `gss_accept_sec_context'
auth.c:(.text+0x9f1): undefined reference to `gss_release_buffer'
auth.c:(.text+0xaf3): undefined reference to `gss_release_cred'
auth.c:(.text+0xb10): undefined reference to `gss_display_name'
auth.c:(.text+0xbc8): undefined reference to `gss_release_buffer'
auth.c:(.text+0x10b0): undefined reference to `gss_release_buffer'
auth.c:(.text+0x111e): undefined reference to `gss_release_buffer'
libpq/pqcomm.o: In function `pq_close':
pqcomm.c:(.text+0x105a): undefined reference to `gss_delete_sec_context'
pqcomm.c:(.text+0x107d): undefined reference to `gss_release_cred'
gmake: *** [postgres] Error 1
}}}
Also, ports for PostgreSQL 8.4 and 9.0 had their <bsd.port.pre.mk>
misplaced: OPTIONS came after it, so WITH_/WITHOUT_ knobs will not
be really activated.
PR: 160050
Feature safe: yes
Approved by: maintainer timeout (1 month)
Revision Changes Path
1.230 +8 -4 ports/databases/postgresql84-server/Makefile
1.224 +8 -4 ports/databases/postgresql90-server/Makefile
1.226 +7 -0 ports/databases/postgresql91-server/Makefile
More information about the cvs-ports
mailing list