This is the mail archive of the
cygwin-developers@cygwin.com
mailing list for the Cygwin project.
Re: Does CVS build?
Charles Wilson wrote:
> Well, I've come up with a patch that seems to work when you autoconf
> libiberty with autoconf-2.52 and takes care to remain compatible with
> 2.13. (Compiling the dll is successful, too). Unfortunately, I can't
> do a 'cvs diff' since sourceware is hammered right now (load average of
> 159).
>
> I'll try again after dinner.
Earnie, can you confirm that after this patch is applied, you can
autoconf and build cgywin? (Note, it includes Chris's earlier patch)
--Chuck
Index: aclocal.m4
===================================================================
RCS file: /cvs/src/src/libiberty/aclocal.m4,v
retrieving revision 1.4
diff -u -r1.4 aclocal.m4
--- aclocal.m4 2001/03/06 18:27:14 1.4
+++ aclocal.m4 2001/08/15 18:39:34
@@ -1,3 +1,33 @@
+dnl forward compatibility macros: make autoconf 2.13 look like 2.50
+ifdef([AC_PROG_CC_WORKS],
+ [define([MY_CC_WORKS],[AC_PROG_CC_WORKS])dnl
+define([MY_CC_GNU],[AC_PROG_CC_GNU])dnl
+define([MY_CXX_WORKS],[AC_PROG_CXX_WORKS])dnl
+define([MY_CXX_GNU],[AC_PROG_CXX_GNU])dnl
+],
+ [define([MY_CC_WORKS],
+ [AC_LANG_PUSH(C)dnl
+_AC_COMPILER_EXEEXT
+_AC_COMPILER_OBJEXT
+AC_LANG_POP()])dnl
+define([MY_CC_GNU],
+ [AC_LANG_PUSH(C)dnl
+_AC_LANG_COMPILER_GNU
+AC_LANG_POP()])dnl
+define([MY_CXX_WORKS],
+ [AC_LANG_PUSH(C++)dnl
+_AC_COMPILER_EXEEXT
+_AC_COMPILER_OBJEXT
+AC_LANG_POP()])dnl
+define([MY_CXX_GNU],
+ [AC_LANG_PUSH(C++)dnl
+_AC_LANG_COMPILER_GNU
+AC_LANG_POP()])dnl
+])
+ifdef([_AC_PROG_CC_G],[],
+ [AC_DEFUN([_AC_PROG_CC_G],[AC_PROG_CC_G])])
+ifdef([_AC_PROG_CXX_G],[],
+ [AC_DEFUN([_AC_PROG_CCX_G],[AC_PROG_CCX_G])])
dnl See whether strncmp reads past the end of its string parameters.
dnl On some versions of SunOS4 at least, strncmp reads a word at a time
dnl but erroneously reads past the end of strings. This can cause
@@ -99,7 +129,7 @@
test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
fi
-AC_PROG_CC_GNU
+_AC_LANG_COMPILER_GNU
if test $ac_cv_prog_gcc = yes; then
GCC=yes
@@ -110,7 +140,7 @@
ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
- AC_PROG_CC_G
+ _AC_PROG_CC_G
if test "$ac_test_CFLAGS" = set; then
CFLAGS="$ac_save_CFLAGS"
elif test $ac_cv_prog_cc_g = yes; then
Index: configure.in
===================================================================
RCS file: /cvs/src/src/libiberty/configure.in,v
retrieving revision 1.13
diff -u -r1.13 configure.in
--- configure.in 2001/07/05 17:29:17 1.13
+++ configure.in 2001/08/15 18:39:42
@@ -177,8 +177,10 @@
# Of the functions in $checkfuncs, newlib only has strerror.
AC_DEFINE_NOAUTOHEADER(HAVE_STRERROR)
- setobjs=yes
-
+ case "$host" in
+ *-*-cygwin*) ;;
+ *) setobjs=yes ;;
+ esac
fi
else
@@ -221,13 +223,6 @@
setobjs=yes
;;
- esac
-fi
-
-if test -z "${setobjs}"; then
-
- case "${host}" in
-
*-*-cygwin*)
# The Cygwin library actually uses a couple of files from
# libiberty when it is built. If we are building a native
@@ -247,6 +242,31 @@
funcs="`echo $funcs | sed -e 's/random//'`"
LIBOBJS="$LIBOBJS random.o"
vars="`echo $vars | sed -e 's/sys_siglist//'`"
+ # Newer cygwins define sys_errlist and sys_nerr.
+ # We have a chicken/egg situation here, though. How do we know that
+ # the toolchain being built contains a newer cygwin?
+ # The code below checks for the existence of sys_errlist in the
+ # winsup/cygwin/cygwin.din file. The assumption is that you are going
+ # to be building a dll which contains this global.
+ # If this is not found then check if the export is in the library
+ # that is used by GCC. Define the appropriate libiberty_cv_var variables
+ # if so.
+ if test -z "$libiberty_cv_var_sys_errlist"
+ then
+ eval `sed -n -e 's/^sys_errlist.*/libiberty_cv_var_sys_errlist=yes/p' \
+ -e 's/^sys_nerr .*/libiberty_cv_var_sys_nerr=yes/p' \
+ "$srcdir/../winsup/cygwin/cygwin.din" 2>/dev/null`
+ if test -z "$libiberty_cv_var_sys_errlist"
+ then
+ for v in sys_errlist sys_nerr; do
+ AC_TRY_LINK([int *p;], [extern int _imp__$v; p = &_imp__$v;],
+ [eval "libiberty_cv_var_$v=yes"],
+ [eval "libiberty_cv_var_$v=no"])
+ done
+ fi
+ fi
+ test -z "$libiberty_cv_var_sys_errlist" && libiberty_cv_var_sys_errlist=no
+ test -z "$libiberty_cv_var_sys_nerr" && libiberty_cv_var_sys_nerr=no
checkfuncs="`echo $checkfuncs | sed -e 's/strsignal//' -e 's/psignal//'`"
fi
;;
@@ -274,7 +294,7 @@
# We haven't set the list of objects yet. Use the standard autoconf
# tests. This will only work if the compiler works.
- AC_PROG_CC_WORKS
+ MY_CC_WORKS
AC_REPLACE_FUNCS($funcs)
libiberty_AC_FUNC_C_ALLOCA
AC_FUNC_VFORK