X-Spam-Check-By: sourceware.org Date: Thu, 2 Feb 2006 10:41:33 -0800 From: David Rothenberger To: cygwin AT cygwin DOT com Subject: Re: [ANNOUNCEMENT] Updated: OpenSSH-4.3p1-1 Message-ID: <20060202184133.GA11468@tela.daveroth.dyndns.org> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="tKW2IUtsqtDRztdT" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i X-IsSubscribed: yes Reply-To: cygwin AT cygwin DOT com Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com --tKW2IUtsqtDRztdT Content-Type: text/plain; charset=us-ascii Content-Disposition: inline I get the following error when trying to compile openssh-4.3p1-1 using cygwin 1.5.19-4. scp.c: In function `rsource': scp.c:698: error: structure has no member named `d_ino' The error comes from this code: while ((dp = readdir(dirp)) != NULL) { if (dp->d_ino == 0) continue; if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) continue; ... } I "solved" the problem with the attached patch, which detects the missing d_ino in configure and removes the test and continue if d_ino isn't present. Is this the appropriate thing to do? Also, Corinna, how did you make the binaries for openssh-4.3p1-1? -- David Rothenberger spammer? -> spam AT daveroth DOT dyndns DOT org GPG/PGP: 0x92D68FD8, DB7C 5146 1AB0 483A 9D27 DFBA FBB9 E328 92D6 8FD8 But Captain -- the engines can't take this much longer! --tKW2IUtsqtDRztdT Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="openssh.patch" --- openssh-4.3p1-1/config.h.in 2006-02-01 03:33:49.000000000 -0800 +++ openssh-4.3p1-2/config.h.in 2006-02-01 20:41:16.134875000 -0800 @@ -77,6 +77,9 @@ /* Define if you want to specify the path to your wtmp file */ #undef CONF_WTMP_FILE +/* Define if your struct dirent doesn't contain d_ino */ +#undef DIRENT_MISSING_D_INO + /* Define if your platform needs to skip post auth file descriptor passing */ #undef DISABLE_FD_PASSING --- openssh-4.3p1-1/configure 2006-02-01 03:33:51.000000000 -0800 +++ openssh-4.3p1-2/configure 2006-02-01 20:41:11.634875000 -0800 @@ -10346,6 +10346,63 @@ rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi +echo "$as_me:$LINENO: checking whether struct dirent contains d_ino" >&5 +echo $ECHO_N "checking whether struct dirent contains d_ino... $ECHO_C" >&6 +if test "$cross_compiling" = yes; then + + { echo "$as_me:$LINENO: WARNING: cross compiling: assuming DIRENT_MISSING_D_INO" >&5 +echo "$as_me: WARNING: cross compiling: assuming DIRENT_MISSING_D_INO" >&2;} + cat >>confdefs.h <<\_ACEOF +#define DIRENT_MISSING_D_INO 1 +_ACEOF + + + +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include +int main(void){struct dirent d;exit(sizeof(d.d_ino)>=0);} + +_ACEOF +rm -f 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='./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 + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) + + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + +cat >>confdefs.h <<\_ACEOF +#define DIRENT_MISSING_D_INO 1 +_ACEOF + + +fi +rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + echo "$as_me:$LINENO: checking for /proc/pid/fd directory" >&5 echo $ECHO_N "checking for /proc/pid/fd directory... $ECHO_C" >&6 if test -d "/proc/$$/fd" ; then @@ -26883,9 +26940,10 @@ # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs @@ -27157,9 +27215,9 @@ exec 5>>config.log { echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <&5 cat >&5 <<_CSEOF --- openssh-4.3p1-1/configure.ac 2006-01-29 05:22:39.000000000 -0800 +++ openssh-4.3p1-2/configure.ac 2006-02-01 20:38:45.978625000 -0800 @@ -950,6 +950,25 @@ ] ) +AC_MSG_CHECKING([whether struct dirent contains d_ino]) +AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#include +int main(void){struct dirent d;exit(sizeof(d.d_ino)>=0);} + ]])], + [AC_MSG_RESULT(yes)], + [ + AC_MSG_RESULT(no) + AC_DEFINE(DIRENT_MISSING_D_INO, 1, + [Define if your struct dirent doesn't contain d_ino]) + ], + [ + AC_MSG_WARN([cross compiling: assuming DIRENT_MISSING_D_INO]) + AC_DEFINE(DIRENT_MISSING_D_INO) + ] +) + AC_MSG_CHECKING([for /proc/pid/fd directory]) if test -d "/proc/$$/fd" ; then AC_DEFINE(HAVE_PROC_PID, 1, [Define if you have /proc/$pid/fd]) --- openssh-4.3p1-1/scp.c 2006-01-31 03:11:38.000000000 -0800 +++ openssh-4.3p1-2/scp.c 2006-02-01 20:41:20.619250000 -0800 @@ -695,8 +695,10 @@ return; } while ((dp = readdir(dirp)) != NULL) { +#ifndef DIRENT_MISSING_D_INO if (dp->d_ino == 0) continue; +#endif if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) continue; if (strlen(name) + 1 + strlen(dp->d_name) >= sizeof(path) - 1) { --tKW2IUtsqtDRztdT Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ --tKW2IUtsqtDRztdT--