home *** CD-ROM | disk | FTP | other *** search
- To: vim_dev@googlegroups.com
- Subject: Patch 7.3.050
- Fcc: outbox
- From: Bram Moolenaar <Bram@moolenaar.net>
- Mime-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- ------------
-
- Patch 7.3.050
- Problem: The link script is clumsy.
- Solution: Use the --as-needed linker option if available. (Kirill A.
- Shutemov)
- Files: src/Makefile, src/auto/configure, src/config.mk.in,
- src/configure.in, src/link.sh
-
-
- *** ../vim-7.3.049/src/Makefile 2010-10-27 16:49:41.000000000 +0200
- --- src/Makefile 2010-11-03 22:26:45.000000000 +0100
- ***************
- *** 1700,1706 ****
- $(CCC) version.c -o objects/version.o
- @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
- -o $(VIMTARGET) $(OBJ) objects/version.o $(ALL_LIBS)" \
- ! MAKE="$(MAKE)" sh $(srcdir)/link.sh
-
- xxd/xxd$(EXEEXT): xxd/xxd.c
- cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
- --- 1700,1707 ----
- $(CCC) version.c -o objects/version.o
- @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
- -o $(VIMTARGET) $(OBJ) objects/version.o $(ALL_LIBS)" \
- ! MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
- ! sh $(srcdir)/link.sh
-
- xxd/xxd$(EXEEXT): xxd/xxd.c
- cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
- *** ../vim-7.3.049/src/auto/configure 2010-11-03 21:59:23.000000000 +0100
- --- src/auto/configure 2010-11-03 22:28:03.000000000 +0100
- ***************
- *** 593,598 ****
- --- 593,599 ----
-
- ac_subst_vars='LTLIBOBJS
- LIBOBJS
- + LINK_AS_NEEDED
- DEPEND_CFLAGS_FILTER
- MAKEMO
- MSGFMT
- ***************
- *** 12404,12409 ****
- --- 12405,12427 ----
- fi
-
-
- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --as-needed support" >&5
- + $as_echo_n "checking linker --as-needed support... " >&6; }
- + LINK_AS_NEEDED=
- + # Check if linker supports --as-needed and --no-as-needed options
- + if $CC -Wl,--help 2>/dev/null | grep as-needed > /dev/null; then
- + LDFLAGS="$LDFLAGS -Wl,--as-needed"
- + LINK_AS_NEEDED=yes
- + fi
- + if test "$LINK_AS_NEEDED" = yes; then
- + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- + $as_echo "yes" >&6; }
- + else
- + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- + $as_echo "no" >&6; }
- + fi
- +
- +
- ac_config_files="$ac_config_files auto/config.mk:config.mk.in"
-
- cat >confcache <<\_ACEOF
- *** ../vim-7.3.049/src/config.mk.in 2010-08-15 21:57:28.000000000 +0200
- --- src/config.mk.in 2010-11-03 22:26:24.000000000 +0100
- ***************
- *** 30,35 ****
- --- 30,36 ----
- CPP = @CPP@
- CPP_MM = @CPP_MM@
- DEPEND_CFLAGS_FILTER = @DEPEND_CFLAGS_FILTER@
- + LINK_AS_NEEDED = @LINK_AS_NEEDED@
- X_CFLAGS = @X_CFLAGS@
- X_LIBS_DIR = @X_LIBS@
- X_PRE_LIBS = @X_PRE_LIBS@
- *** ../vim-7.3.049/src/configure.in 2010-11-03 21:59:23.000000000 +0100
- --- src/configure.in 2010-11-03 22:26:16.000000000 +0100
- ***************
- *** 3527,3532 ****
- --- 3527,3549 ----
- fi
- AC_SUBST(DEPEND_CFLAGS_FILTER)
-
- + dnl link.sh tries to avoid overlinking in a hackish way.
- + dnl At least GNU ld supports --as-needed which provides the same functionality
- + dnl at linker level. Let's use it.
- + AC_MSG_CHECKING(linker --as-needed support)
- + LINK_AS_NEEDED=
- + # Check if linker supports --as-needed and --no-as-needed options
- + if $CC -Wl,--help 2>/dev/null | grep as-needed > /dev/null; then
- + LDFLAGS="$LDFLAGS -Wl,--as-needed"
- + LINK_AS_NEEDED=yes
- + fi
- + if test "$LINK_AS_NEEDED" = yes; then
- + AC_MSG_RESULT(yes)
- + else
- + AC_MSG_RESULT(no)
- + fi
- + AC_SUBST(LINK_AS_NEEDED)
- +
- dnl write output files
- AC_OUTPUT(auto/config.mk:config.mk.in)
-
- *** ../vim-7.3.049/src/link.sh 2010-08-15 21:57:25.000000000 +0200
- --- src/link.sh 2010-11-03 22:26:08.000000000 +0100
- ***************
- *** 5,11 ****
- # libraries when they exist, but this doesn't mean they are needed for Vim.
- #
- # Author: Bram Moolenaar
- ! # Last change: 2006 Sep 26
- # License: Public domain
- #
- # Warning: This fails miserably if the linker doesn't return an error code!
- --- 5,11 ----
- # libraries when they exist, but this doesn't mean they are needed for Vim.
- #
- # Author: Bram Moolenaar
- ! # Last change: 2010 Nov 03
- # License: Public domain
- #
- # Warning: This fails miserably if the linker doesn't return an error code!
- ***************
- *** 16,26 ****
- echo "$LINK " >link.cmd
- exit_value=0
-
- #
- # If auto/link.sed already exists, use it. We assume a previous run of
- # link.sh has found the correct set of libraries.
- #
- - if test -f auto/link.sed; then
- echo "link.sh: The file 'auto/link.sed' exists, which is going to be used now."
- echo "link.sh: If linking fails, try deleting the auto/link.sed file."
- echo "link.sh: If this fails too, try creating an empty auto/link.sed file."
- --- 16,38 ----
- echo "$LINK " >link.cmd
- exit_value=0
-
- + if test "$LINK_AS_NEEDED" = yes; then
- + echo "link.sh: \$LINK_AS_NEEDED set to 'yes': invoking linker directly."
- + cat link.cmd
- + if sh link.cmd; then
- + exit_value=0
- + echo "link.sh: Linked fine"
- + else
- + exit_value=$?
- + echo "link.sh: Linking failed"
- + fi
- + else
- + if test -f auto/link.sed; then
- +
- #
- # If auto/link.sed already exists, use it. We assume a previous run of
- # link.sh has found the correct set of libraries.
- #
- echo "link.sh: The file 'auto/link.sed' exists, which is going to be used now."
- echo "link.sh: If linking fails, try deleting the auto/link.sed file."
- echo "link.sh: If this fails too, try creating an empty auto/link.sed file."
- ***************
- *** 124,129 ****
- --- 136,143 ----
- fi
- fi
-
- + fi
- +
- #
- # cleanup
- #
- *** ../vim-7.3.049/src/version.c 2010-11-03 21:59:23.000000000 +0100
- --- src/version.c 2010-11-03 22:30:17.000000000 +0100
- ***************
- *** 716,717 ****
- --- 716,719 ----
- { /* Add new patch number below this line */
- + /**/
- + 50,
- /**/
-
- --
- Save the plankton - eat a whale.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
- /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
- \\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-