[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#637720: Bug#637667: libkpathsea5: breaks pdflatex on big endian platforms



On 13.08.11 Aurelien Jarno (aurel32@debian.org) wrote:

Hi Aurelien,

> clone -1 637667
> retitle -1 libkpathsea5: ABI changed on 32-bit platforms
> thanks
> 
Many thanks for your bug report and analysis. I'm sorry for the
inconvenience!

Could you check if the broken LFS support also introduced #637667?
I.e. simply comment the patch (partial_lfs_support.diff) in the
series files, rebuild the package and test it?

Many thanks,
  Hilmar

> On Sat, Aug 13, 2011 at 05:50:04PM +0200, Aurelien Jarno wrote:
> > Package: libkpathsea5
> > Version: 2009-10
> > Severity: serious
> > 
> > When libkpathsea5 version 2009-10 pdflatex doesn't work anymore, and
> > issues strange errors:
> > 
> > | Chapter 1.
> > | <yaws_head.pdf, id=26, 804.00375pt x 61.22874pt> <use yaws_head.pdf>
> > | Overfull \hbox (12.65096pt too wide) in paragraph at lines 65--66
> > | [] 
> > | [2 <./yaws_head.pdf>] [3pdflatex: yaws: Invalid argument
> > 
> > This is not reproducible with libkpathsea5 version 2009-09. All big 
> > endian platforms seems affected, at least mips, powerpc, s390 and sparc.
> > See for example the following build logs:
> > 
> > https://buildd.debian.org/status/package.php?p=yaws&suite=sid
> > https://buildd.debian.org/status/package.php?p=freefem%2B%2B&suite=sid
> > 
> 
> The problem is due to the following change:
> 
> | * comment the --disable-largefile switch in upstream build script
> |   (partial_lfs_support.diff). This hopefully (Closes: #618033). dvips
> |   still can't write files > 2GB (see #383781).
> 
> This patch does:
> 
> | diff -urN texlive-bin-2009.orig/Build texlive-bin-2009/Build
> | --- texlive-bin-2009.orig/Build 2009-09-17 15:40:44.000000000 +0200
> | +++ texlive-bin-2009/Build      2011-03-28 19:40:09.000000000 +0200
> | @@ -66,7 +66,7 @@
> | 
> |  # longinteger and off_t declarations are still inconsistent, do not
> |  # enable this unless you are testing.
> | -: ${TL_CONF_LARGEFILE=--disable-largefile}
> | +# : ${TL_CONF_LARGEFILE=--disable-largefile}
> | 
> |  # default to static linking.
> |  : ${TL_CONF_SHARED=--disable-shared}
> 
> As the comments says long int and off_t are still used in the code,
> which means on 32-bit architectures, setting off_t to 64-bit with
> largefile support, the type doesn't match. On little endian machines,
> only the high part is lost (which means the problem only appears with
> files bigger than 2GB), on big endian machines the offset is completely
> wrong.
> 
> Also given that libkpathsea exports the following function,
> 
> | xfseeko(FILE *, off_t, int, string filename)
> 
> enabling largefile support change off_t to 64 bits on 32-bit
> Linux architecture and breaks the ABI.
> 
> I am therefore cloning this bug for this slightly different problem.
> 
-- 
No evil can happen to a good man.
		-- Plato
  http://www.hilmar-preusse.de.vu/



Reply to: