[Starkit] FreeBSD core dumps when wrapping big files!

Joey Mukherjee joey at swri.edu
Fri Dec 15 11:15:31 CET 2006


On Dec 15, 2006, at 4:40 AM, Jean-Claude Wippler wrote:

> Joey Mukherjee wrote:
>> I have a file which is roughly 80mb that I include in the  
>> starkit.  With this file, I can never get the final "sdx.kit wrap"  
>> to work - it will just dump core.  This 80mb file is actually a  
>> zip file that if I unzip it, it works fine so its not the size of  
>> the kit I am creating, just the size of the individual file.
>
> This is very strange, the 80 Mb should not matter.  All I can think  
> of is a missing "fconfigure -translation binary" somewhere, i.e.  
> that there is a data contents sensitivity somewhere (or perhaps a  
> null-byte or some other encoding quirk).
>
> You may have to binary-search-split the problematic file to  
> determine exactly when it fails and when it still works.  Again, I  
> can't think of a reason why *size* in itself would be a problem.

I have tried taking random files out and really the only difference  
seems to be size.  I have narrowed down to a magic number, though.   
When the file in my starpack to be wrapped is greater than 67107626,  
but smaller than 67117434, it will core regardless of the files  
inside.  I have tried with several different files removed and added  
to get to this range.  Its harder than it looks to narrow this down!   
(As an aside: Does anyone know of an easy way to create a file of an  
exact size?)

Anyway, here's an example log:

 > Tcl/tclkit-freebsd6-x86 sdx.kit wrap setup -runtime ./tclkit
131 updates applied
 > ls -l setup.vfs/
total 85728
-rw-r--r--  1 joey  joey  17806074 Dec 14 22:03 bin.zip
-rw-r--r--  1 joey  joey  67107626 Dec 14 22:22 bin2.zip
-rw-r--r--  1 joey  joey      3317 Mar 22  2006 boot.tcl
-rw-r--r--  1 joey  joey        37 Apr 19  2006 config.tcl
-rw-r--r--  1 joey  joey    818855 Nov 27 16:18 config.zip
-rw-r--r--  1 joey  joey      4628 Dec  1 21:53 eula.txt
-rw-r--r--  1 joey  joey     84312 Nov 27 16:18 graphics.zip
-rw-r--r--  1 joey  joey   1517155 Nov 27 16:18 html.zip
-rw-r--r--  1 joey  joey    222437 Nov 27 16:18 layouts.zip
drwxr-xr-x  7 joey  joey       512 Dec 14 05:31 lib
-rw-r--r--  1 joey  joey     32370 Dec  1 21:53 main.tcl
-rw-r--r--  1 joey  joey     18976 Dec  1 21:53 sddas1.gif
-rw-r--r--  1 joey  joey     14575 Nov 27 16:18 svrcmds.zip
-rw-r--r--  1 joey  joey     10134 Aug 19  2003 tclkit.ico
 > cd setup.vfs/
 > zip -9 bin2.zip ../bin/db_merge
   adding: ../bin/db_merge (deflated 63%)
 > cd ..
 > Tcl/tclkit-freebsd6-x86 sdx.kit wrap setup -runtime ./tclkit
Segmentation fault (core dumped)
 > ls -l setup.vfs/
total 85744
-rw-r--r--  1 joey  joey  17806074 Dec 14 22:03 bin.zip
-rw-r--r--  1 joey  joey  67119608 Dec 14 22:26 bin2.zip
-rw-r--r--  1 joey  joey      3317 Mar 22  2006 boot.tcl
-rw-r--r--  1 joey  joey        37 Apr 19  2006 config.tcl
-rw-r--r--  1 joey  joey    818855 Nov 27 16:18 config.zip
-rw-r--r--  1 joey  joey      4628 Dec  1 21:53 eula.txt
-rw-r--r--  1 joey  joey     84312 Nov 27 16:18 graphics.zip
-rw-r--r--  1 joey  joey   1517155 Nov 27 16:18 html.zip
-rw-r--r--  1 joey  joey    222437 Nov 27 16:18 layouts.zip
drwxr-xr-x  7 joey  joey       512 Dec 14 05:31 lib
-rw-r--r--  1 joey  joey     32370 Dec  1 21:53 main.tcl
-rw-r--r--  1 joey  joey     18976 Dec  1 21:53 sddas1.gif
-rw-r--r--  1 joey  joey     14575 Nov 27 16:18 svrcmds.zip
-


> I've just checked in some changes to kitgen to better support *BSD  
> OS'es.  One crucial bit of info is that you have to use GNU make,  
> i.e. "gmake", not "make".  A quick test on a FreeBSD machine on the  
> SourceForge compile farm appears to work.

Hmm, I wonder how they are doing it.  I still have problems, and I  
don't think I have much more than a vanilla 6.1 install.  Anyway,  
here's end of the log after doing a "gmake small":

Creating package index /usr/home/joey/kitgen/8.4/kit-small/build/lib/ 
tk8.4/pkgIndex.tcl
Installing libtk8.4.so to /usr/home/joey/kitgen/8.4/kit-small/build/lib/
Installing wish as /usr/home/joey/kitgen/8.4/kit-small/build/bin/wish8.4
Installing tkConfig.sh to /usr/home/joey/kitgen/8.4/kit-small/build/lib/
Installing libtkstub8.4.a to /usr/home/joey/kitgen/8.4/kit-small/ 
build/lib/
Making directory /usr/home/joey/kitgen/8.4/kit-small/build/lib/tk8.4/ 
images
Making directory /usr/home/joey/kitgen/8.4/kit-small/build/lib/tk8.4/ 
msgs
Installing header files
Installing library files to /usr/home/joey/kitgen/8.4/kit-small/build/ 
lib/tk8.4
Installing library images directory
Installing translation directory
gmake[2]: Leaving directory `/usr/home/joey/kitgen/8.4/kit-small/ 
build/tkdyn'
cp kit-cli tclkit-dyn && strip tclkit-dyn
./kit-cli -init- ../../setupvfs.tcl  tclkit-dyn dyn
application-specific initialization failed: error copying "build/lib/ 
libtk8.4.so]": no such file or directory
%

It says it can not find libtk8.4.so, but it is in the directory as  
listed above (/usr/home/joey/kitgen/8.4/kit-small/build/lib/).  It  
also leaves me in the Tcl prompt.

A "gmake large" fails as well, but I'd swear it gets further:

-lX11 -lXss -lXext -L/usr/X11R6/lib -lXft -lX11 -L/usr/local/lib - 
Wl,--rpath -Wl,/usr/local/lib -lfreetype -lz -L/usr/X11R6/lib - 
lfontconfig -L/usr/X11R6/lib -lXrender -lX11 -lXext  -lpthread -lm -L/ 
usr/home/joey/kitgen/8.5/kit-large/build/lib -ltclstub8.5   -rpath / 
usr/home/joey/kitgen/8.5/kit-large/build/lib:/usr/X11R6/lib
ld: unrecognized option '-Wl,--rpath'
ld: use the --help option for usage information
gmake[2]: *** [libtk8.5.so] Error 1
gmake[2]: Leaving directory `/usr/home/joey/kitgen/8.5/kit-large/ 
build/tkdyn'
gmake[1]: *** [build/tkdyn] Error 2
gmake[1]: Leaving directory `/usr/home/joey/kitgen/8.5/kit-large'
gmake: *** [large] Error 2

If I keep rerun "gmake large":

 > gmake large
sh config.sh 8.5/kit-large aqua univ thread allenc allmsgs tzdata
Configuring 8.5/kit-large/Makefile for FreeBSD.
cd 8.5/kit-large && gmake && gmake clean
gmake[1]: Entering directory `/usr/home/joey/kitgen/8.5/kit-large'
cp kit-cli tclkit-dyn && strip tclkit-dyn
./kit-cli -init- ../../setupvfs.tcl -t -e -m -z tclkit-dyn dyn
application-specific initialization failed: error copying "build/lib/ 
tk8.5/bgerror.tcl": no such file or directory
%

I feel like it is very close...

The only thing I changed was makefile.include:

cvs server: Diffing .
Index: makefile.include
===================================================================
RCS file: /home/cvs/tclkit/kitgen/makefile.include,v
retrieving revision 1.12
diff -r1.12 makefile.include
5c5
< #LDFLAGS = -L/usr/X11R6/lib -lX11 -ldl -lm # -lpthread
---
 > LDFLAGS = -L/usr/X11R6/lib -lXft -lX11 -lm -lpthread

Thanks again!

Joey




More information about the Starkit mailing list