Bug 872231 - pdflatex miscompiled on i386
Summary: pdflatex miscompiled on i386
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: texlive
Version: rawhide
Hardware: i386
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Jindrich Novy
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-11-01 15:37 UTC by Jerry James
Modified: 2013-07-02 23:57 UTC (History)
4 users (show)

Fixed In Version: texlive-20121107_r28202-6.fc19
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-11-04 15:48:44 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Jerry James 2012-11-01 15:37:46 UTC
Description of problem:
I just tried to rebuild gcl, which uses LaTeX to produce its documentation.  The build failed like this:

pdflatex dwdoc.tex
This is pdfTeX, Version 3.1415926-2.5-1.40.13 (TeX Live 2013/dev)
 restricted \write18 enabled.
entering extended mode
(./dwdoc.tex
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, lo
aded.
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo))
(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty)
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty)
(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))
No file dwdoc.aux.
*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd) [1{/usr/share/texlive/
texmf/fonts/map/pdftex/updmap/pdftex.map}pdflatex: Invalid argument
make[1]: *** [dwdoc.pdf] Error 1
make[1]: Leaving directory `/builddir/build/BUILD/gcl-2.6.8/xgcl-2'
make: *** [unixport/saved_gcl] Error 2

A little debugging shows that the arguments passed to xfseeko do not match its declared parameters.

(gdb) break exit
Breakpoint 1 at 0x804ae30
(gdb) run dwdoc.tex
Starting program: /usr/bin/pdflatex dwdoc.tex
This is pdfTeX, Version 3.1415926-2.5-1.40.13 (TeX Live 2013/dev)
 restricted \write18 enabled.
entering extended mode
(./dwdoc.tex
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, lo
aded.
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo))
(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty)
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty)
(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty)) (./dwdoc.aux)
*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd) [1{/usr/share/texlive/
texmf/fonts/map/pdftex/updmap/pdftex.map}/usr/bin/pdflatex: Invalid argument

Breakpoint 1, 0xf7a80830 in exit () from /lib/libc.so.6
Missing separate debuginfos, use: debuginfo-install expat-2.1.0-4.fc18.i686 fontconfig-2.10.1-2.fc19.i686 freetype-2.4.10-2.fc18.i686 glibc-2.16.90-24.fc19.i686 lcms-libs-1.19-6.fc18.i686 libgcc-4.7.2-6.fc19.i686 libjpeg-turbo-compat-1.2.1-5.fc19.i686 libpng-1.5.13-1.fc19.i686 libstdc++-4.7.2-6.fc19.i686 openjpeg-libs-1.5.1-1.fc19.i686 poppler-0.20.2-3.fc18.i686
(gdb) bt
#0  0xf7a80830 in exit () from /lib/libc.so.6
#1  0xf7d6db67 in xfseeko (f=0x84b8cb0, offset=0, 
    offset@entry=<error reading variable: access outside bounds of object referenced via synthetic pointer>, wherefrom=139172376, filename=0xf5da88c8 "")
    at ../../../texk/kpathsea/xfseeko.c:24
#2  0x080b3fd1 in writestreamlength (length=2335, offset=0)
    at ../../../texk/web2c/pdftexdir/utils.c:416
#3  0x0808194a in pdfendstream () at pdftex0.c:18981
#4  0x080a233d in zpdfshipout (p=p@entry=5910, 
    shippingpage=shippingpage@entry=1) at pdftex0.c:24348
#5  0x080a6a75 in zshipout (p=5910) at pdftex0.c:25085
#6  0x080aae1f in zboxend (boxcontext=5910) at pdftex0.c:32660
#7  0x080ab04e in zpackage (c=22 '\026', c@entry=0 '\000') at pdftex0.c:32937
#8  0x080ab159 in handlerightbrace () at pdftex0.c:37862
#9  0x080ae28b in maincontrol () at pdftex0.c:38285
#10 0x0805fc89 in mainbody () at pdftexini.c:5636
#11 0x0804b2a1 in main (ac=2, av=0xffffd7d4)
    at ../../../texk/web2c/lib/texmfmp.c:900
(gdb) frame 2
#2  0x080b3fd1 in writestreamlength (length=2335, offset=0)
    at ../../../texk/web2c/pdftexdir/utils.c:416
416	        xfseeko(pdffile, (off_t) offset, SEEK_SET, jobname_cstr);
(gdb) print jobname_cstr
$1 = 0x84b9a68 "dwdoc"
(gdb) print offset
$2 = 0
(gdb) print pdffile
$3 = (bytefile) 0x84b8cb0


The caller thinks the arguments to xfseeko are:
  FILE *f = (bytefile) 0x84b8cb0
  off_t offset = (off_t) 0
  int wherefrom = SEEK_SET (== 0)
  const_string filename = 0x84b9a68 "dwdoc"

But the callee thinks its arguments are:
  FILE * f = 0x84b8cb0
  off_t offset = 0
  int wherefrom = 139172376 (== 0x84b9a68)
  const_string filename = 0xf5da88c8 ""

Notice that the callee's "wherefrom" value is exactly what the "filename" value is supposed to be.  This implies that the caller (in texk/web2c/pdftexdir/utils.c) is compiled with options that make off_t 32 bits, while the callee (in texk/kpathsea/xfseeko.c) is compiled with options that make off_t 64 bits.  This snippet from the autoconf info suggests how that might have happened:

 -- Macro: AC_FUNC_FSEEKO
     If the `fseeko' function is available, define `HAVE_FSEEKO'.
     Define `_LARGEFILE_SOURCE' if necessary to make the prototype
     visible on some systems (e.g., glibc 2.2).  Otherwise linkage
     problems may occur when compiling with `AC_SYS_LARGEFILE' on
     largefile-sensitive systems where `off_t' does not default to a
     64bit entity.  All systems with `fseeko' also supply `ftello'.


Version-Release number of selected component (if applicable):
texlive-2012-3.20121019_r28030.fc19.i686

How reproducible:
Always

Steps to Reproduce:
1. Try to build gcl from Fedora git on Rawhide
2.
3.
  
Actual results:
The build fails in the documentation-producing stage, as described above.

Expected results:
TexLive should produce valid documentation instead of crashing.

Additional info:

Comment 1 Jindrich Novy 2012-11-04 15:48:44 UTC
Current TeX Live has problems with 64bit offsets on 32bit arches as well as the basic CFLAGS are checked wrongly for it. I disabled large-file support so that it works on 32bit too. I will switch it back as soon as upstream fixes it.

Comment 2 Fedora Update System 2012-11-04 19:10:26 UTC
texlive-2012-5.20121024_r28063.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/texlive-2012-5.20121024_r28063.fc18

Comment 3 Fedora Update System 2012-11-08 04:13:53 UTC
texlive-2012-6.20121107_r28202.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/texlive-2012-6.20121107_r28202.fc18


Note You need to log in before you can comment on or make changes to this bug.