This is the mail archive of the cygwin-developers@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problems compiling cygwin from CVS - Undefined symbol


bkeener@thesoftwaresource.com wrote:

Christopher Faylor wrote:


make[3]: Leaving directory `/usr/develop/obj/cygwin/i686-pc-cygwin/newlib'
make[2]: Leaving directory `/usr/develop/obj/cygwin/i686-pc-cygwin/newlib'
make[1]: Leaving directory `/usr/develop/obj/cygwin/i686-pc-cygwin/newlib'
Configuring in i686-pc-cygwin/libiberty
configure: error: invalid package name: target-subdir
make: *** [configure-target-libiberty] Error 1

Looking at the ChangeLog, the gcc people recently switched libiberty's configure script to the new autoconf version. So your error has nothing to do with you and everything to do with the newer autoconf and it's interaction with our version of ash. I know this because this will not happen if you delete sh.exe and symlink sh.exe->bash.exe. Anyhow, I've brought this up countless times in the past on the main list, but nobody seemed interested in helping to track it down. At first I was only seeing it in WinME, but then it started acting up under Win2k. I tried working on it for awhile, but didn't get very far due to the randomness of this condition happening and it not wanting to happen when I was trying to debug it. So I got frustrated, and without a wife to encourage me, I gave up on trying to track it down in ash/cygwin. The most I can say is that one of the sh children is racing when expr is called in multiple subsequent loops. I suspect this might be due to the fact that ash's code may have bitrotted somewhat over the years.


Anyhow, I've got ten million other projects that I'm trying to work on without getting into it, but someone with some free time might consider trying to merge up the ash source with the current NetBSD cvs source. It should be fairly easy considering the RCSID is in every file. This ash was modified with debian enhancements and some cygwin stuff, so keep that in mind when you resolve failed hunks. Also, some consideration should be given to whether we actually need ash to be built completely stripped down (-DSMALL), since it isn't compliant with the POSIX standard for /bin/sh in its current form. I doubt it will impact performance that much and could in fact provide better memory/process management facilities, etc.

Finally, I do have something you can try in the mean time. I have isolated the problematic portions of the script and have in fact created a very kludgy patch to rid any 2.54+ script of them. This ought to work on any 2.54+ configure script since the area it affects is always generated and always before the variable portions of an autoconf script.

Cheers,
Nicholas
--- configure.orig  2003-10-08 15:43:00.000000000 -0400
+++ configure   2003-10-08 15:58:46.000000000 -0400
@@ -357,19 +357,11 @@ do
 
   -disable-* | --disable-*)
     ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
     ac_feature=`echo $ac_feature | sed 's/-/_/g'`
     eval "enable_$ac_feature=no" ;;
 
   -enable-* | --enable-*)
     ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
     ac_feature=`echo $ac_feature | sed 's/-/_/g'`
     case $ac_option in
       *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
@@ -548,10 +540,6 @@ do
 
   -with-* | --with-*)
     ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
     ac_package=`echo $ac_package| sed 's/-/_/g'`
     case $ac_option in
       *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
@@ -561,10 +549,6 @@ do
 
   -without-* | --without-*)
     ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
     ac_package=`echo $ac_package | sed 's/-/_/g'`
     eval "with_$ac_package=no" ;;
 
@@ -593,10 +577,6 @@ Try \`$0 --help' for more information." 
 
   *=*)
     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
     ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
     eval "$ac_envvar='$ac_optarg'"
     export $ac_envvar ;;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]