Hi,

AC_LIBOBJ removes duplicates but our replacement doesn't. This matters when
building shared libraries on platforms like MacOS X and mingw. (For example,
if you need both getline and getdelim, getdelim.o will be added twice.) Here
is a fix.


2006-10-18  Bruno Haible  <[EMAIL PROTECTED]>

        * gnulib-tool (func_emit_initmacro_end): Remove duplicates from the
        gl_LIBOBJS list.

*** gnulib-tool.bak     2006-10-13 01:18:44.000000000 +0200
--- gnulib-tool 2006-10-19 04:15:27.000000000 +0200
***************
*** 1339,1348 ****
    echo "    ${macro_prefix}_libobjs="
    echo "    ${macro_prefix}_ltlibobjs="
    echo "    if test -n \"\$${macro_prefix}_LIBOBJS\"; then"
!   echo "      for i in \$${macro_prefix}_LIBOBJS; do"
!   echo "        # Remove the extension."
!   echo "        sed_drop_objext='s/\\.o\$//;s/\\.obj\$//'"
!   echo "        i=\`echo \"\$i\" | sed \"\$sed_drop_objext\"\`"
    echo "        ${macro_prefix}_libobjs=\"\$${macro_prefix}_libobjs 
\$i.\$ac_objext\""
    echo "        ${macro_prefix}_ltlibobjs=\"\$${macro_prefix}_ltlibobjs 
\$i.lo\""
    echo "      done"
--- 1339,1347 ----
    echo "    ${macro_prefix}_libobjs="
    echo "    ${macro_prefix}_ltlibobjs="
    echo "    if test -n \"\$${macro_prefix}_LIBOBJS\"; then"
!   echo "      # Remove the extension."
!   echo "      sed_drop_objext='s/\\.o\$//;s/\\.obj\$//'"
!   echo "      for i in \`for i in \$${macro_prefix}_LIBOBJS; do echo \"\$i\"; 
done | sed \"\$sed_drop_objext\" | sort | uniq\`; do"
    echo "        ${macro_prefix}_libobjs=\"\$${macro_prefix}_libobjs 
\$i.\$ac_objext\""
    echo "        ${macro_prefix}_ltlibobjs=\"\$${macro_prefix}_ltlibobjs 
\$i.lo\""
    echo "      done"


Reply via email to