This is the mail archive of the
insight@sourceware.org
mailing list for the Insight project.
Re: 20090609-cvs bad on linux (build fail cygwin)
Keith Seitz wrote:
Gene Smith wrote:
I built the current cvs head code on linux (fedora 8) OK (target arm)
but when I run it I see nothing useful in the main "Source Window". I
can set breakpoints, step, continue and stop but I never see the green
highlight marker for the current position. Assembly and Mixed views
show an empty screen.
I have been using 20090605-cvs in my daily work (on F10 -- using system
Tcl, Tk, etc), and I have not noticed your problems. Are you using the
supplied versions of Tcl or the system versions? [i.e., Are src/tcl,
src/tk, and src/itcl in your source tree?]
Yes they are.
Try opening the debug window or enable logging (see the README). That
might provide some "insight" into what may be going wrong.
Right now on linux I have gone back to 6.8 which runs OK. (Right now I
am experimenting with a i686-pc-ming32 cross build of Insight on linux,
which is another subject :) )
Remind me: what's your target's triple? arm-what? What target are you
using to run executables, simulator, a board?
I am following the Codesourcery convention: arm-none-eabi. They provide
a build of arm-none-eabi-gdb/gdbtui but not arm-none-eabi-insight.
Out of curiosity, if you open a console window in insight (when your
target is stopped at a breakpoint) and type "tk
gdb_target_has_execution" what does it return?
(gdb) tk gdb_target_has_execution
1
However, this is with the mingw32 build of 6.8: Per help:
This GDB was configured as "--host=i386-pc-mingw32 --target=arm-none-eabi
Also, after unsuccessful build in cygwin with -mno-cygwin (mingw) and
under msys shell (also mingw) I tried a straight cygwin build. It went
a lot farther but eventually got this error:
I have never used mingw; I am glad you tried this under cygwin...
Tonight I updated to CVS HEAD and rebuilt the whole thing. It took
several hours (I only have a 500MHz Pentium III that runs Win2k -- I
*really* got to set up a virtualized host!), but my build succeeded.
I updated my cygwin installation immediately prior to configuring,
building, and installing:
$ CFLAGS="-g" ../src/configure
--prefix=/home/keiths/sources/insight/head/built
[snip]
$ make all-gdb install-gdb
[snip]
[I set the CFLAGS to "-g" so that I can debug the resultant executable,
if I need to. You need not specify it.]
There must be something magical about my machine that it works every
time... :-P
It may just be your --prefix (see below) ??
make[3]: Entering directory
`/cygdrive/c/insight_make/insight_build/tcl/cygwin'
gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
-DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\"
-DPACKAGE=\"libtcl_cygwin\" -DVERSION=\"8.4\" -DHAVE_GETCWD=1
-DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1
-DHAVE_WAITPID=1 -DNO_VALUES_H=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1
-DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_ST_BLKSIZE=1
-DSTDC_HEADERS=1 -DNO_UNION_WAIT=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void
-DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_TM_ZONE=1 -I.
-I../../../insight_sources/tcl/cygwin
-I../../../insight_sources/tcl/cygwin/../generic
-DTCL_LIBRARY='"/usr/local//lib"' -g -O2 -mno-win32 -c
../../../insight_sources/tcl/cygwin/../unix/tclUnixInit.c
../../../insight_sources/tcl/cygwin/../unix/tclUnixInit.c:66: error:
missing terminating " character
../../../insight_sources/tcl/cygwin/../unix/tclUnixInit.c:66: error:
parse error before ')' token
../../../insight_sources/tcl/cygwin/../unix/tclUnixInit.c:66: error:
missing terminating " character
../../../insight_sources/tcl/cygwin/../unix/tclUnixInit.c:66: error:
parse error before ';' token
Line 66 of tclUnixInit.c is (and the accompanying comment):
/*
* Directory in which to look for packages (each package is typically
* installed as a subdirectory of this directory). The symbol is
* defined by Makefile.
*/
static char pkgPath[sizeof(TCL_PACKAGE_PATH)+200] = TCL_PACKAGE_PATH;
What does your Makefile say the value of TCL_PACKAGE_PATH is? In my
build (cygwin/Makefile), this is defined:
TCL_PACKAGE_PATH = NONE/lib /home/keiths/insight/head/built/lib
I configured with --prefix=/home/keiths/insight/head/built, so this
looks okay. Right below this is the Makefile portion that uses this:
AM_CFLAGS = -DTCL_LIBRARY='"$(TCL_LIBRARY)"'
-DTCL_PACKAGE_PATH='"$(TCL_PACKAGE_PATH)"'
Does this look the same in your Makefile?
For this file on my cygwin box, the following build command was executed:
gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
-DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\"
-DPACKAGE=\"libtcl_cygwin\" -DVERSION=\"8.4\" -DHAVE_GETCWD=1
-DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 -DHAVE_TMPNAM=1
-DHAVE_WAITPID=1 -DNO_VALUES_H=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1
-DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_ST_BLKSIZE=1
-DSTDC_HEADERS=1 -DNO_UNION_WAIT=1 -DNEED_MATHERR=1 -DRETSIGTYPE=void
-DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_TM_ZONE=1 -I.
-I../../../src/tcl/cygwin -I../../../src/tcl/cygwin/../generic
-DTCL_LIBRARY='"/home/keiths/sources/insight/head/built/share/tcl8.4"'
-DTCL_PACKAGE_PATH='"NONE/lib
/home/keiths/sources/insight/head/built/lib"' -g -mno-win32 -c
../../../src/tcl/cygwin/../unix/tclUnixInit.c
As you can see, both our builds have the define for TCL_LIBRARY (in your
build it is not set correctly for some reason -- this value is generated
by configure), yet only my build defines TCL_PACKAGE_PATH -- in yours it
is missing for some reason. Did you paste the entire command?
I think so.
Right now (6.8/-mno-cygwin build) With grep, I only see:
./tcl/win/tclConfig.sh:TCL_PACKAGE_PATH=''
and i see nothing when I grep for DTCL_LIBRARY.
But I will need to try again a head pure cygwin build to compare apples
to apples. See more below:
Keith
Keith,
Going back to windows/cygwin I was able to build 6.8 and run insight 6.8
OK (pure cygwin, no mingw). Then I tried 6.8 on msys shell and it stops
pretty quick due to and error about MAKEINFO being missing or wrong
version. So I tried again under cygwin with -mno-cygwin and finally got
it make/install and run OK. Here is how I built it under cygwin as a
mingw32 executable:
insight_make
insight_sources
unpacked insight-6.8 tarball
insight_build (directory)
makeInsight.sh
makeInsight.sh (run from insight_make)looks like this:
#!/bin/sh
export TARGET=arm-none-eabi
export PREFIX=/cygdrive/c/Progra~1/Raisonance/Ride/arm-gcc
export PATH=$PATH:$PREFIX/bin
export PATH=$PATH:$PREFIX/$TARGET
#cd insight_build && rm -rf *
#../insight_sources/configure -v --quiet --prefix=$PREFIX \
# --target=$TARGET --enable-interwork --enable-multilib \
# --with-gnu-ld --with-gnu-as
#make all
cd insight_build
../insight_sources/configure -v --quiet --prefix=$PREFIX \
--target=$TARGET --enable-interwork --enable-multilib \
--with-gnu-ld --with-gnu-as \
--host=i686-pc-mingw32 --build=i686-pc-cygwin \
CC="gcc -mno-cygwin" AR="ar"
make
make install
<eof>
When building for pure cygwin I leave off the last two lines of the
configure command. This is loosely based on some insight build scripts
provided by this guy:
http://openhardware.net/Embedded_ARM/Toolchain/
I have not tried this again with the cvs head with this exact setup. I
don't know how important the --prefix setting is during the make stage.
I thought it was only used during "make install" but not sure. That may
be why my TCL_LIBRARY was pointing to the wrong place since I may have
had the prefix pointing somewhere else when I was building the head?
(Build on cygwin on my fairly fast machine takes a couple hours. Build
on msys seems like it would be much faster if I could get past the
MAKEINFO/textinfo error.)
-gene