Re: ltx2rtf compiles on RedHat 6.2 but not on debian 2.2
>
> > Hello,
> >
> > I want to compile ltx2rtf on a debian machine, but the make fails. However, it
> > works on a redhat 6.2, but the binary file Segm-Faults on debian 2.2. Did
> > someone have an idea on the way to get it work on debian ? Is it a problem of
> > gcc version ?
>
> how does the compile fail? more then likely your missing a -dev
> package with a needed header file.
>
Which package may be missing ? "dpkg -l | grep dev" gives :
ii dpkg-dev 1.6.15 Package building tools for Debian
ii dvi2tty 5.1-13 Previewing dvi-files on text-only devices
ii fbset 2.1-6 Framebuffer device maintenance program.
ii jdk1.1-dev 1.1.8v1-3 JDK 1.1.x (Java Development Kit)
ii libc6-dev 2.2-1 GNU C Library: Development Libraries and Hea
ii libdb2-util 2.4.14-2.7.7.1 The Berkeley database routines (development
ii makedev 2.3.1-46.2 Creates special device files in /dev.
ii psptools 1.2.2-3 Tools for PostScript printers and devices
ii tetex-dev 1.0.6-7 kpathsea.a and include files for teTeX
ii xlib6g-dev 3.3.6-11potato include files and libraries for X client dev
The make log is below :
hathout:~/ltx2rtf/src-gcc>make -f makefile.lnx
rm -f main.o
gcc -g -funsigned-char -c fonts.c -o fonts.o
gcc -g -funsigned-char -c cdirect.c -o cdirect.o
gcc -g -funsigned-char -c commands.c -o commands.o
gcc -g -funsigned-char -c stack.c -o stack.o
gcc -g -funsigned-char -c funct1.c -o funct1.o
gcc -g -funsigned-char -c funct2.c -o funct2.o
gcc -g -funsigned-char -c ignore.c -o ignore.o
gcc -g -funsigned-char -DLIBDIR=\"/usr/local/lib/ltx2rtf\" -c main.c -o main.o
main.c: In function `Convert':
main.c:491: invalid operands to binary ==
make: *** [main.o] Error 1
The faulty operation is FPOS_EQ defined as
#if defined (_POSIX_)
# define FPOS_EQ(p1, p2) ((p1) == (p2))
#else /* _POSIX_ */
# if !__STDC__ && _INTEGRAL_MAX_BITS >= 64
# define FPOS_EQ(p1, p2) ((p1) == (p2))
# else
# define FPOS_EQ(p1, p2) \
((p1).lopart == (p2).lopart \
&& (p1).hipart == (p2).hipart)
# endif
#endif /* _POSIX_ */
#else
#define FPOS_EQ(p1, p2) ((p1) == (p2))
#endif
and only used in this fragment of main.c
if (FPOS_EQ(pos1, pos2)) /* no RTF output */
{
if (cLast == '\n')
cThis = '\n';
else
cThis = ' ';
}
break;
}
Reply to: