[tlbuild] texlive 2011 build on aix 4.3 - "make check": 12 of 46 tests failed

Vladimir Volovich vvv at vsu.ru
Tue Jun 14 21:42:48 CEST 2011


"PB" == Peter Breitenlohner writes:

 PB> The first step ./tex --progname=initex --ini
 PB> <$srcdir/triptrap/trip1.in >tripin.fot is supposed to create
 PB> ./trip.fmt but fails to do so: ../../../texk/web2c/trip.test[32]:
 PB> 14028 Memory fault(coredump)

 PB> The rest is a consequence of that.

> dbx shows that the segfault occurs in

> zpostlinebreak() at 0x10010270
> zlinebreak() at 0x10046718
> endgraf() at 0x1000b1b0
> doendv() at 0x1000a020
> maincontrol() at 0x100047b8
> mainbody() at 0x1004a66c
> main() at 0x100009bc

> i'll recompile with -g to see more details...

it segfaults when it first enters into the zpostlinebreak() function:

$ export TEXMFCNF=../../../texk/web2c/triptrap
$ dbx ./tex
Type 'help' for help.
reading symbolic information ...
(dbx) stop in zpostlinebreak
[1] stop in zpostlinebreak
(dbx) run --progname=initex --ini < ../../../texk/web2c/triptrap/trip1.in 
This is TeX, Version 3.1415926 (TeX Live 2011) (INITEX)
**Please type the name of your input file.
**(./trip.tex
! Bad character code (256).
<to be read again> 
                   -
l.26   \nonstopmode\lccode256-
                              0\mathchardef\a="8000\def\a{ SC...
! Bad mathchar (32768).
<to be read again> 
                   \def 
l.26 ...\mathchardef\a="8000\def
                                \a{ SCALED 3~2769}
! Illegal magnification has been changed to 1000 (32769).
<to be read again> 
                   \skewchar 
l.28   \skewchar
                \rip=`B \countdef\countz % \countz will be \c...
! Missing number, treated as zero.
<to be read again> 
                   \def 
l.29   \def
           \on{1} \toksdef\tokens=256 \show\errorstopmode
! Bad register code (256).
l.29 ...{1} \toksdef\tokens=256 
                                \show\errorstopmode
> \errorstopmode=\errorstopmode.
l.29 ...=256 \show\errorstopmode
                                
> \rip .
<recently read> \font 
                      
l.30   \showthe\font
                     \showthe\pageshrink \showthe\pagegoal
> 0.0pt.
l.30 ...font \showthe\pageshrink
                                 \showthe\pagegoal
> 16383.99998pt.
l.30 ...shrink \showthe\pagegoal
                                
! Illegal unit of measure (replaced by filll).
l.32 ...fdim\hsize<\hsize\fi lll
                                minus 0 fill
\one \csname on line 60
! You can't use `\badness' in vertical mode.
l.61 ...yphenpenalty 89 \badness
                                
! Bad \patterns.
l.75 ...uage256\patterns{0111 \?
                                50AA1b3 *1AcA. bb bb1 0B2B0 b...
! Nonletter.
l.75 ...ge256\patterns{0111 \?50
                                AA1b3 *1AcA. bb bb1 0B2B0 b1c...
! Duplicate pattern.
l.75 ...1b3 *1AcA. bb bb1 0B2B0 
                                b1c}} % *==space
! OK (see the transcript file).
l.78 ...ns{q9q} -\0qq \showlists
                                {\language\?\noboundary111}%
[1] stopped in zpostlinebreak at line 15505 in file "tex0.c"
15505     /* 30 31 */ postlinebreak_regmem 
(dbx) next
stopped in zpostlinebreak at line 15514 in file "tex0.c"
15514     q = mem [bestbet + 1 ].hh .v.RH ;
(dbx) next
stopped in zpostlinebreak at line 15515 in file "tex0.c"
15515     curp = -268435455L ;
(dbx) next
stopped in zpostlinebreak at line 15517 in file "tex0.c"
15517         r = q ;
(dbx) next
stopped in zpostlinebreak at line 15518 in file "tex0.c"
15518       q = mem [q + 1 ].hh .v.LH ;
(dbx) where
zpostlinebreak(finalwidowpenalty = 125), line 15518 in "tex0.c"
zlinebreak(??), line 1616 in "texini.c"
endgraf(), line 18130 in "tex0.c"
doendv(), line 18651 in "tex0.c"
maincontrol(), line 21180 in "tex0.c"
mainbody(), line 4281 in "texini.c"
main(ac = 0, av = (nil)), line 808 in "texmfmp.c"
(dbx) dump
zpostlinebreak(finalwidowpenalty = 125), line 15518 in "tex0.c"
t = ' '
s = 0
r = -268435455
q = -268435455
curline = 537031840
pen = 447
curindent = 55
curwidth = 58612
postdiscbreak = 335
discbreak = 0
mem = 0x2008ec80
eqtb = 0x200c38d8
(dbx) print bestbet
450 
(dbx) print mem [bestbet + 1 ].hh.v
(RH = -268435455, LH = 1) 
(dbx) next

Segmentation fault in zpostlinebreak at line 15518 in file "tex0.c"
15518       q = mem [q + 1 ].hh .v.LH ;
(dbx) dump
zpostlinebreak(finalwidowpenalty = 125), line 15518 in "tex0.c"
t = ' '
s = 0
r = -268435455
q = -268435455
curline = 537031840
pen = 447
curindent = 55
curwidth = 58612
postdiscbreak = 335
discbreak = 0
mem = 0x2008ec80
eqtb = 0x200c38d8
(dbx) 

=======================================

zpostlinebreak comes from tex0.c:

void
zpostlinebreak ( integer finalwidowpenalty )
{
  /* 30 31 */ postlinebreak_regmem
  halfword q, r, s  ;
  boolean discbreak  ;
  boolean postdiscbreak  ;
  scaled curwidth  ;
  scaled curindent  ;
  quarterword t  ;
  integer pen  ;
  halfword curline  ;
  q = mem [bestbet + 1 ].hh .v.RH ;
  curp = -268435455L ;
  do {
      r = q ;
    q = mem [q + 1 ].hh .v.LH ; /* <<<<<< HERE IS WHERE IT SEGFAULTS */
    mem [r + 1 ].hh .v.LH = curp ;
    curp = r ;
  } while ( ! ( q == -268435455L ) ) ;

does this ring a bell to anyone? from the output of "dump" in dbx above,
it appears that the value of q is a large negative number (-268435455)
when it entered the "do" loop, and it tried to access mem[q+1], which
probably caused the segfault.

[i've completely disabled optimization when compiling tex-tex0.o from tex0.c]

Best wishes,
v.


More information about the tlbuild mailing list