python; configure; ark...
Jim Rowan <[email protected]> Thu, 17 Nov 2005 16:27:46 -0600
| Newsgroups | gmane.comp.sysutils.ark.devel |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--------------000304090800020908060406
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Still fighting against this python configure. :( Following is long and
complicated, but I would appreciate whatever ideas anyone has!
My earlier discovery that unsetting CONFIG_SHELL allowed me to run
configure to completion. However, I have now run into something else
and I am baffled by the results of my debugging efforts.
The "problem" is that when I ask ark to configure the package, I get an
error from configure:
...
+ ./configure --prefix=/our/.-ark-deploy/python--2.4.2 --disable-nls
LDFLAGS= -L/our/.-ark-deploy/python--2.4.2/lib
-Wl,-R/our/.-ark-deploy/python--2.4.2/lib CXXFLAGS=-O2
-I/our/.-ark-deploy/python--2.4.2/include CFLAGS=-O2 -fstrict-aliasing
-I/our/.-ark-deploy/python--2.4.2/include CPPFLAGS=
-I/our/.-ark-deploy/python--2.4.2/include CXX=/our/bin/g++
CC=/our/bin/gcc CONFIG_SHELL=
checking MACHDEP... sunos5
checking EXTRAPLATDIR...
checking for --without-gcc... no
checking for --with-cxx=<compiler>... no
checking for c++... /our/bin/g++
checking for C++ compiler default output file name... a.out
checking whether the C++ compiler works... configure: error: cannot run
C++ compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
config.log tells us a bit more:
...
configure:1833: result: a.out
configure:1838: checking whether the C++ compiler works
configure:1844: ./a.out
ld.so.1: ./a.out: fatal: libgcc_s.so.1: version `GCC_3.3' not found
(required by file /our/.-ark-deploy/gcc--3.4.4/lib/libstdc++.so.6)
configure:1847: $? = 137
configure:1854: error: cannot run C++ compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
...
And this would point fairly clearly to a runtime load library path kind
of problem... except that I have very conflicting/confusing other info:
I've tried to recreate this failure by running it in various ways by
hand, and I cannot recreate it.
0.) If I run configure by hand, (with no args) it works just fine.
1.) I hacked the configure script to save a copy of the a.out that it
built when run under ark. I can run a.out just fine. I don't have
LD_LIBRARY_PATH set in my environment.
2.) I tracked down the python code in arkbase/ark/think.py that runs the
shell code that is built up, and uncommented the debug statements near
line 1800:
elif lang == 'sh':
#print 'pre=',`self.preambleSh()`
#print 'exp=',`self.expandParams(lang)`
#print 'cod=',`string.strip(code)`
Ran the ark package configure again; saved the resulting statements to a
file, messed with it to remove/adjust the quoting, and ended up with a
file (foo) that I can run with the command "sh foo". This does
everything that I think ark is doing (certainly the output looks very
similar). *It* also runs to completion, and doesn't have trouble with
the C++ compiler/loader issue. foo is attached.
This latter one is the most perplexing. I don't understand how the
"environment" when run via "ark package configure" might be different
from what "foo" does -- but it clearly is different enough that it has
this problem....
Got any ideas?
(I may or may not have a problem with the compiler and libstdc++, but
even if I do, why does this stuff succeed when run by hand and fail when
run by ark.?)
(I think I really need to understand this unable-to-recreate-failure, so
that I can successfully debug any compiler problem I have.)
--------------000304090800020908060406
Content-Type: text/plain;
name="foo"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="foo"
ARK_PROFILE='/usr2/jmr/.ark_profile';export ARK_PROFILE
VERBOSE='-v'
PRETEND=''
KEEP_GOING=''
HARD_UNDO=''
PATH='/our/bin:/usr/local/bin:/usr/ccs/bin:/usr/bin:/bin:/usr/sbin:/sbin:/pkg/qct/bin:/usr/X/bin';export PATH # don't leave PATH to chance!
# useful shell functions:
sidaiPickProgram () {
for p in "$@" ; do
case "$p" in
/*|./*|../*)
p_w1=`echo $p | sed -e 's/ .*//'`
if [ -x "$p_w1" ] ; then
echo $p
return
fi
;;
*) # relative path, so don't even try
echo $p
return
;;
esac
done
echo "No executable program among: $*" 2>& 1
exit 1
}
sidaiClearPkgState () {
tag=$1
PKG_STATE_DIR="$PKGS_STATE_DIR/$PKG_ID"
if [ -d $PKG_STATE_DIR ] ; then
cd $PKG_STATE_DIR
f1=$tag
f2=$f1.xml
f1f=$f1-FORCED
f2f=$f2-FORCED
for i in $f1 $f2 $f1f $f2f ; do
if [ -f $i ]; then /bin/rm $i ; fi
done
fi
}
umask 022 # so we don't pick up something random from ssh/rsh
PKG_BUILD_DIR='/prj/qct/sysadmin/aus-it/arik/ark-builds/python--2.4.2'
PKG_DEPLOY_DIRS='/our/.-ark-deploy/python--2.4.2'
set -e
set -u
set -x
CONFIG_SHELL=''
PKG_PROTO_HOST='sparc-solaris9'
dep_iflags='-I/our/.-ark-deploy/python--2.4.2/include'
dep_lflags='-L/our/.-ark-deploy/python--2.4.2/lib -Wl,-R/our/.-ark-deploy/python--2.4.2/lib'
pre_config_eval='/bin/rm -f Iflags Lflags; echo "$dep_iflags" > Iflags; echo "$dep_lflags" > Lflags'
extra_configure_args='--disable-nls'
FIND='/usr/bin/find'
XARGS='/usr/bin/xargs'
cc='/our/bin/gcc'
cxx='/our/bin/g++'
ccboot='/pkg/gnu_compilers/gcc-3.2.3/bin/gcc'
cxxboot='/pkg/gnu_compilers/gcc-3.2.3/bin/c++'
cppflags=' -I/our/.-ark-deploy/python--2.4.2/include'
cflags='-O2 -fstrict-aliasing -I/our/.-ark-deploy/python--2.4.2/include'
cxxflags='-O2 -I/our/.-ark-deploy/python--2.4.2/include'
ldflags=' -L/our/.-ark-deploy/python--2.4.2/lib -Wl,-R/our/.-ark-deploy/python--2.4.2/lib'
cppflagsboot=' -I/our/.-ark-deploy/python--2.4.2/include'
cflagsboot='-O2 -fstrict-aliasing -I/our/.-ark-deploy/python--2.4.2/include'
cxxflagsboot='-O2 -I/our/.-ark-deploy/python--2.4.2/include'
ldflagsboot=' -L/our/.-ark-deploy/python--2.4.2/lib -Wl,-R/our/.-ark-deploy/python--2.4.2/lib'
in_dir='.'
CONFIGURE='./configure'
configure_args=''
prefix='/our/.-ark-deploy/python--2.4.2'
cd $PKG_BUILD_DIR/$PKG_PROTO_HOST/$in_dir
# better safe than sorry...
$FIND . \( -name 'config*.cache' -o -name autom4te.cache -o -name config.log -o -name config.status -o -name conftest.c \) -print | $XARGS /bin/rm -rf
# don't want any user prefs to trip us up:
if [ "x${CONFIG_SITE:-}" != 'x' ] ; then unset CONFIG_SITE ; fi
cc=`sidaiPickProgram "$cc" "$ccboot"`
if [ "x$cc" = "x$ccboot" ] ; then
cppflags="$cppflagsboot"
cflags="$cflagsboot"
ldflags="$ldflagsboot"
fi
cxx=`sidaiPickProgram "$cxx" "$cxxboot"`
if [ "x$cxx" = "x$cxxboot" ] ; then
cppflags="$cppflagsboot"
cxxflags="$cxxflagsboot"
ldflags="$ldflagsboot"
fi
if [ "x${pre_config_eval:-}" != "x" ] ; then
# this let's you get weird stuff in the environment, for example
eval "$pre_config_eval"
fi
CONFIG_SHELL="$CONFIG_SHELL" \
CC="$cc" \
CXX="$cxx" \
CPPFLAGS="$cppflags" \
CFLAGS="$cflags" \
CXXFLAGS="$cxxflags" \
LDFLAGS="$ldflags" \
$CONFIGURE --prefix=$prefix $configure_args $extra_configure_args
--------------000304090800020908060406--
-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc. Get Certified Today
Register for a JBoss Training Course. Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click