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

Bug#618033: texlive-bin-2009: Missing -D_FILE_OFFSET_BITS=64 leads to files not opening (x86 /32bit)



The short info first:  the package you built works fine except it
wants libstdc++ >= 4.5 while 4.4 is the one installed on my box
(matches squeeze http://packages.debian.org/squeeze/libstdc++6).

I'm sorry! I built these packages in Debian unstable, where libstdc++
= 4.5 exists. I can provide another package using libstdc++ = 4.4 if
you like to.
Thanks, I fixed it for me. I added your lines manually and recompiled. That is what I am using now since my first mail (appart from the test) and works fine.
If you want an additional test, please send me  a "patch" and I can build
the package on my machine.


Well, I created a new partition on my unstable system and formatted
it using xfs.  No problem with a tex file on it even with the default
unstable packages (no LFS support compiled).
Strange .. are you on 32bit machine? Mine is a 64bit processor but my
installation is still 32bit.
I also attached some simple code. Perhaps the flag is defined somewhere else on unstable?

I looked into the kpathsea code. It should contain the macros for
the configure script for testing if largefile support is required. I have note yet checked if these tests are run or not. So that makes me worry a bit.
On the other hand I found on the web that others have a similar problem
e.g. https://bugs.launchpad.net/ubuntu/+source/texlive-base/+bug/485949
so this problem could be really upstream. I will look so

Many thanks for help!
Many thanks for your fast reactions!

Pierre
/*
 * Test if a file is readdable on the system similar as does the 
 * kpathsea library (file readdable.c)
 */
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <errno.h>


static void
usage(char * progname)
{
	printf("Usage %s path\n\t path ... path to test if readable\n", progname);
	exit(1);
}

static int 
readdable(const char * fn, struct stat *st)
{
	int flag;

	flag = access(fn, R_OK);
	if(flag != 0){
		fprintf(stderr, "%s:%d readable: Failed on access for %s\n", 
			__FILE__, __LINE__,  fn);
		perror("access failed:");		
		return 0;
	}
	flag = stat (fn, st);
	if(flag != 0){
		fprintf(stderr, "%s:%d  readable: Failed on stat for %s with errno %d ? EOVERFLOW = %d\n", 
			__FILE__, __LINE__,  fn, errno, EOVERFLOW);
		perror("Stat failed:");		
		return 0;
	}
	
	flag = S_ISDIR (st->st_mode);
	if (flag == 0){
		return 1;
	}else{
		fprintf(stderr, "%s:%d  readable: %s is a directory \n", 
			__FILE__, __LINE__,  fn);
	}
	return 0;
}

int
main(int argc, char * argv[])
{
	int flag;
	struct stat st;
	
	if(argc != 2)
		usage(argv[0]);


#ifdef _FILE_OFFSET_BITS
	printf("_FILE_OFFSET_BITS was not defined\n");
#else
	printf("_FILE_OFFSET_BITS was %d\n", _FILE_OFFSET_BITS);
#endif

	flag = readdable(argv[1], &st);
	printf("File %s readable = %s\n", argv[1], (flag == 0) ? "No" : "Yes");
	return 0;
}

Reply to: