LFS on powerpc-apple-darwin
Hi, I need help with Large File Support on powerpc-apple-darwin; it's broken in pdftex-stable and -trunk. With a binary from -stable pdf inclusion is currently broken on powerpc-apple-darwin 8.11; when trying to include any pdf (I'm testing with the output of sample2e.tex) I get this error: "No space left on device" and sure, when I fire up gdb it shows this: ------------------- (gdb) bt #0 0x90014ba8 in write () #1 0x90015cbc in _swrite () #2 0x900055f8 in __sflush () #3 0x9006abe0 in fseeko () #4 0x001c9aac in xfseeko (f=0xa000dbe4, offset=64656437686498, wherefrom=0, filename=0x232ae80 "test-inc") at ../../../src/texk/kpathsea/xfseeko.c:28 #5 0x000cfe80 in writestreamlength (length=3909, offset=64656437682547) at ../../../../src/texk/web2c/pdftexdir/utils.c:412 #6 0x00061a88 in pdfendstream () at pdftex1.c:8395 ------------------- The offset is a bit large.:-{ This is regardless of --disable-largefile. When compiling -stable I get these nice warnings: ------------------- gcc -DHAVE_CONFIG_H -I. -I../../../src/texk/web2c -I.. -I../../../src/texk/web2c/.. -I../../libs/obsdcompat -I ../../libs/obsdcompat/.. -I../../../src/texk/web2c/../../libs/obsdcompat -I../../../src/texk/web2c/../../libs/ob sdcompat/.. -g3 -Wall -Wno-write-strings -std=c99 -c pdftex0.c -o pdftex0.o In file included from ../../../src/texk/web2c/../../libs/obsdcompat/includes.h:27, from ../../../src/texk/web2c/../../libs/obsdcompat/openbsd-compat.h:37, from ../../../src/texk/web2c/pdftexdir/ptexlib.h:41, from ../../../src/texk/web2c/pdftexdir/pdftex.h:67, from pdftexcoerce.h:1605, from pdftexd.h:789, from pdftex0.c:2: ../../libs/obsdcompat/../obsdcompat/config.h:219:1: warning: "WORDS_BIGENDIAN" redefined In file included from pdftexd.h:11, from pdftex0.c:2: ../../../src/texk/web2c/texmfmp.h:31:1: warning: this is the location of the previous definition ------------------- And sure enough obsdcompat/config.h has this: ------------------- /* Define to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ #define WORDS_BIGENDIAN 1 ------------------- while texmfmp.h has this: /* If we have these macros, use them, as they provide a better guide to the endianess when cross-compiling. */ ------------------- #if defined (BYTE_ORDER) && defined (BIG_ENDIAN) && defined (LITTLE_ENDIAN) #ifdef WORDS_BIGENDIAN #undef WORDS_BIGENDIAN #endif #if BYTE_ORDER == BIG_ENDIAN #define WORDS_BIGENDIAN #endif #endif /* More of the same, but now NeXT-specific. */ #ifdef NeXT #ifdef WORDS_BIGENDIAN #undef WORDS_BIGENDIAN #endif #ifdef __BIG_ENDIAN__ #define WORDS_BIGENDIAN #endif #endif ------------------- Might this be the reason? Best Martin
2008/4/21, Martin Schröder
device" and sure, when I fire up gdb it shows this: ------------------- (gdb) bt #0 0x90014ba8 in write () #1 0x90015cbc in _swrite () #2 0x900055f8 in __sflush () #3 0x9006abe0 in fseeko () #4 0x001c9aac in xfseeko (f=0xa000dbe4, offset=64656437686498, wherefrom=0, filename=0x232ae80 "test-inc") at ../../../src/texk/kpathsea/xfseeko.c:28 #5 0x000cfe80 in writestreamlength (length=3909, offset=64656437682547) at ../../../../src/texk/web2c/pdftexdir/utils.c:412 #6 0x00061a88 in pdfendstream () at pdftex1.c:8395 ------------------- The offset is a bit large.:-{
I've traced it to this: ------- pdftoepdf.cc ------ static void copyName(char *s) { pdf_puts("/"); for (; *s != 0; s++) { if (isdigit(*s) || isupper(*s) || islower(*s) || *s == '_' || *s == '.' || *s == '-' || *s == '+') { do { pdfroom(1); pdfbuf[pdfptr++] = c; } while (0); else pdf_printf("#%.2X", *s & 0xFF); } } -------------------------- debugging this I get -------------------------- Breakpoint 1, copyName (s=0x2329380 "F15") at ../../../../src/texk/web2c/pdftexdir/pdftoepdf.cc:286 286 pdf_puts("/"); (gdb) n Current language: auto; currently c++ 287 for (; *s != 0; s++) { (gdb) display pdfptr 1: pdfptr = 302 (gdb) n 288 if (isdigit(*s) || isupper(*s) || islower(*s) || *s == '_' || 1: pdfptr = 302 (gdb) 291 pdfroom(1); 1: pdfptr = 302 (gdb) 292 pdfbuf[pdfptr++] = *s; 1: pdfptr = 302 (gdb) 287 for (; *s != 0; s++) { 1: pdfptr = 4294967598 (gdb) -------------------------- What's going on? Best Martin
participants (1)
-
Martin Schröder