This is the mail archive of the
cygwin-developers@cygwin.com
mailing list for the Cygwin project.
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 ;;