http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52122



--- Comment #7 from Daniel Starke <daniel.f.starke at freenet dot de> 
2012-09-22 16:00:03 UTC ---

It seems to be partly a gcc autoconfig macro issue. Seeing the following in

gcc/acinclude.m4



dnl See if symbolic links work and if not, try to substitute either hard links

or simple copy.

AC_DEFUN([gcc_AC_PROG_LN_S],

[AC_MSG_CHECKING(whether ln -s works)

AC_CACHE_VAL(gcc_cv_prog_LN_S,

[rm -f conftestdata_t

echo >conftestdata_f

if ln -s conftestdata_f conftestdata_t 2>/dev/null

then

  gcc_cv_prog_LN_S="ln -s"

else

  if ln conftestdata_f conftestdata_t 2>/dev/null

  then

    gcc_cv_prog_LN_S=ln

  else

    if cp -p conftestdata_f conftestdata_t 2>/dev/null

    then

      gcc_cv_prog_LN_S="cp -p"

    else

      gcc_cv_prog_LN_S=cp

    fi

  fi

fi

rm -f conftestdata_f conftestdata_t

])dnl

LN_S="$gcc_cv_prog_LN_S"

if test "$gcc_cv_prog_LN_S" = "ln -s"; then

  AC_MSG_RESULT(yes)

else

  if test "$gcc_cv_prog_LN_S" = "ln"; then

    AC_MSG_RESULT([no, using ln])

  else

    AC_MSG_RESULT([no, and neither does ln, so using $gcc_cv_prog_LN_S])

  fi

fi

AC_SUBST(LN_S)dnl

])



it is obvious that gcc_cv_prog_LN_S="cp -p" needs to be changed to

gcc_cv_prog_LN_S="cp -pr".



On the other hand running autoconfig on this configure.ac:

AC_PREREQ(2.64)

AC_INIT

AC_PROG_LN_S



returns the wrong output as also seen in the patch with:

if (echo >conf$$.file) 2>/dev/null; then

  if ln -s conf$$.file conf$$ 2>/dev/null; then

    as_ln_s='ln -s'

    # ... but there are two gotchas:

    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.

    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.

    # In both cases, we have to default to `cp -p'.

    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||

      as_ln_s='cp -p'

  elif ln conf$$.file conf$$ 2>/dev/null; then

    as_ln_s=ln

  else

    as_ln_s='cp -p'

  fi

else

  as_ln_s='cp -p'

fi



The part mentioned by Tim Vanholder that was not in the attached patch was

certainly just overseen by me as it was not necessary to build gcc.

I have just filed a bug report against autoconf.

Reply via email to