Greetings, I have run into a curious issue when trying to build XFree86 (4.4.0 or 4.4.99.13) from source on my i586 Linux system. I have the sinking feeling that it is an easy problem with an obvious solution, but one that somehow eludes me. The symptoms are bizarre. After compilation (apparently without errors) and installation (make World, make install, make install.man), several key installed files have zero length - the most critical of which is startx. If the empty startx is replaced with a valid script, X windows can be started, but xrdb is inoperative, and some applications (e.g., xmms) will have "jerky" screen updates - which apparently is caused by the fact that /etc/X11/locale/locale.dir is empty. Some man pages are also empty (e.g., /usr/X11R6/man/man1/Xnest.1x has a zero file length). Acting on the assumption that all these problems are related, I decided to start by tracking down what was causing the empty Xnest man page. In my build directory (buildxc), the Makefile (in buildxc/programs/Xserver/hw/xnest) contains (around line 1060): Xnest.$(MANNEWSUFFIX):: Xnest.$(MANSRCSUFFIX) $(RM) $@ sed -e 's/\\$$/\\ /' Xnest.$(MANSRCSUFFIX) | $(RAWCPP) $(MANDEFS) $(EXTRAMANDEFS) | sed -e '/^# ... (I have removed the tabs and truncated this very long line for readability). Now, on my system with my own custom host.def (email me if you need to see this), the xnest.man build line becomes: sed -e 's/\\$/\\ /' Xnest.man | gcc -march=i586 -pipe -E -undef -traditional ... which FAILS with error "gcc: no input files". Unfortunately, compilation does not stop with this error and the resulting Xnest._man output is empty. I do not understand how this is expected to work in the first place because gcc's man page clearly indicates that the input filename is NOT optional even when only using the preprocessor via -E (which Xnest's build uses for macro substitution): SYNOPSIS gcc [-c|-S|-E] [-std=standard] [-g] [-pg] [-Olevel] [-Wwarn...] [-pedantic] [-Idir...] [-Ldir...] [-Dmacro[=defn]...] [-Umacro] [-foption...] [-mmachine-option...] [-o outfile] infile... In order to get the Xnest.man build to work, I have to add the "-" option to tell gcc to read from standard input: sed -e 's/\\$/\\ /' Xnest.man | gcc - -march=i586 -pipe -E -undef -traditional ... which will then build the desired Xnest._man correctly. I wonder why my net searches didn't turn up any prior posts on this matter. Now, I am running a very recent gcc: [mshell]: gcc --version gcc (GCC) 3.4.2 But tests with the older gcc 2.96 seem to indicate that it works the same way: [mshell]: echo "testing" | gcc_296 -E gcc_296: No input files [mshell]: echo "testing" | gcc_296 - -E # 1 "" testing What is going wrong with my XFree makefiles and how best do I fix it? For what it is worth, IMHO, if no input files are given to gcc, it should assume that input is via stdin. But, this does not appear to be consistent with GNU's vision of the way gcc should work. Thank you in advance, Michael Shell news1@xxxxxxxxxxxxxxxx _______________________________________________ XFree86 mailing list XFree86@xxxxxxxxxxx http://XFree86.Org/mailman/listinfo/xfree86