diff --git a/configure b/configure index b77ec52aa8c63d1e3cefed912480eac34396ba43..ba97253d478f5fe5eaf8b835805320ec540f0daf 100755 --- a/configure +++ b/configure @@ -3622,11 +3622,6 @@ rm -f conftest* CPPFLAGS="$CPPFLAGS $INCLUDES" LDFLAGS="$LDFLAGS $LIBDIRS" -{ echo "$as_me:$LINENO: using CPPFLAGS=$CPPFLAGS" >&5 -echo "$as_me: using CPPFLAGS=$CPPFLAGS" >&6;} -{ echo "$as_me:$LINENO: using LDFLAGS=$LDFLAGS" >&5 -echo "$as_me: using LDFLAGS=$LDFLAGS" >&6;} - for ac_prog in gawk mawk nawk awk @@ -3856,6 +3851,7 @@ with_gnu_ld=$ac_cv_prog_gnu_ld + case $host_os in sysv5*) echo "$as_me:$LINENO: checking whether ld -R works" >&5 echo $ECHO_N "checking whether ld -R works... $ECHO_C" >&6 @@ -3909,6 +3905,68 @@ echo "${ECHO_T}$pgac_cv_prog_ld_R" >&6 ld_R_works=$pgac_cv_prog_ld_R esac + +# To simplify the build system, we specify the maximal set of +# libraries to link against when building any executable. The linker +# on some platforms optionally allows unused link arguments to be +# elided from the resulting executable, so enable that capability if +# it exists. +# XXX: currently we only support GNU ld; do any other linkers support +# an equivalent feature? +if test "$with_gnu_ld"; then + echo "$as_me:$LINENO: checking whether ld --as-needed works" >&5 +echo $ECHO_N "checking whether ld --as-needed works... $ECHO_C" >&6 +if test "${pgac_cv_prog_ld_as_needed+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + pgac_save_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -Wl,--as-needed" + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +#ifdef F77_DUMMY_MAIN +# ifdef __cplusplus + extern "C" +# endif + int F77_DUMMY_MAIN() { return 1; } +#endif +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + pgac_cv_prog_ld_as_needed=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +pgac_cv_prog_ld_as_needed=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + if test x"$pgac_cv_prog_ld_as_needed" = x"no"; then + LDFLAGS=$pgac_save_LDFLAGS + fi + +fi +echo "$as_me:$LINENO: result: $pgac_cv_prog_ld_as_needed" >&5 +echo "${ECHO_T}$pgac_cv_prog_ld_as_needed" >&6 +fi + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 @@ -4167,6 +4225,11 @@ echo "${ECHO_T}no" >&6 +{ echo "$as_me:$LINENO: using CPPFLAGS=$CPPFLAGS" >&5 +echo "$as_me: using CPPFLAGS=$CPPFLAGS" >&6;} +{ echo "$as_me:$LINENO: using LDFLAGS=$LDFLAGS" >&5 +echo "$as_me: using LDFLAGS=$LDFLAGS" >&6;} + for ac_prog in 'bison -y' do # Extract the first word of "$ac_prog", so it can be a program name with args. diff --git a/configure.in b/configure.in index d8da7cd4ffb5d123048f5ed52a2a5576e8c103d5..39ed00a1abf59fa7f6c140f384dfe7ef87ebe602 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -dnl $PostgreSQL: pgsql/configure.in,v 1.407 2005/03/25 00:34:19 tgl Exp $ +dnl $PostgreSQL: pgsql/configure.in,v 1.408 2005/05/05 11:50:18 neilc Exp $ dnl dnl Developers, please strive to achieve this order: dnl @@ -539,9 +539,6 @@ AC_SUBST(ELF_SYS) CPPFLAGS="$CPPFLAGS $INCLUDES" LDFLAGS="$LDFLAGS $LIBDIRS" -AC_MSG_NOTICE([using CPPFLAGS=$CPPFLAGS]) -AC_MSG_NOTICE([using LDFLAGS=$LDFLAGS]) - AC_ARG_VAR(LDFLAGS_SL) AC_PROG_AWK @@ -550,6 +547,7 @@ AC_PROG_LN_S PGAC_PROG_LD AC_SUBST(LD) AC_SUBST(with_gnu_ld) + case $host_os in sysv5*) AC_CACHE_CHECK([whether ld -R works], [pgac_cv_prog_ld_R], [ @@ -560,11 +558,35 @@ case $host_os in sysv5*) ld_R_works=$pgac_cv_prog_ld_R AC_SUBST(ld_R_works) esac + +# To simplify the build system, we specify the maximal set of +# libraries to link against when building any executable. The linker +# on some platforms optionally allows unused link arguments to be +# elided from the resulting executable, so enable that capability if +# it exists. +# XXX: currently we only support GNU ld; do any other linkers support +# an equivalent feature? +if test "$with_gnu_ld"; then + AC_CACHE_CHECK([whether ld --as-needed works], [pgac_cv_prog_ld_as_needed], + [ + pgac_save_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -Wl,--as-needed" + AC_TRY_LINK([], [], + [pgac_cv_prog_ld_as_needed=yes], + [pgac_cv_prog_ld_as_needed=no]) + if test x"$pgac_cv_prog_ld_as_needed" = x"no"; then + LDFLAGS=$pgac_save_LDFLAGS + fi + ]) +fi + AC_PROG_RANLIB AC_CHECK_PROGS(LORDER, lorder) AC_PATH_PROG(TAR, tar) PGAC_CHECK_STRIP +AC_MSG_NOTICE([using CPPFLAGS=$CPPFLAGS]) +AC_MSG_NOTICE([using LDFLAGS=$LDFLAGS]) + AC_CHECK_PROGS(YACC, ['bison -y']) if test "$YACC"; then