I tried to compile CUPS on 7.0 but it chokes on linking pdftops: echo Linking pdftops... Linking pdftops... g++ -Wall -fPIC -O2 -g3 -o pdftops pdftops.o libxpdf.a -L../cups -lcups -lnsl -lpam -ldl -lcrypt -lm libxpdf.a(PSOutputDev.o): In function `PSOutputDev::PSOutputDev(char *, Catalog *, int, int, int, int)': /usr/src/redhat/BUILD/cups-1.1.4/pdftops/OutputDev.h:32: undefined reference to `OutputDev virtual table' libxpdf.a(PSOutputDev.o): In function `PSOutputDev::PSOutputDev(char *, Catalog *, int, int, int, int)': /usr/src/redhat/BUILD/cups-1.1.4/pdftops/PSOutputDev.cxx:235: undefined reference to `PSOutputDev virtual table' libxpdf.a(PSOutputDev.o): In function `PSOutputDev::PSOutputDev(char *, Catalog *, int, int, int, int)': /usr/src/redhat/BUILD/cups-1.1.4/pdftops/OutputDev.h:35: undefined reference to `OutputDev virtual table' And so on for some other 100 lines. Same links on 6.2 with the old 2.95 without complaining. Hey I _NEED_ CUPS here.
I tried it again yesterday with gcc[-c++]-2.96-63 from rawhide and the glibc update. Same with the newer gcc: does not link.
Verified as preprocessor bug, will be fixed in cpp-2.96-70. In the mean time, if you change OPTIM in toplevel Makedefs from -g3 to -g, everything should work fine. The issue was that with -g3, preprocessor outputs all #defines into the preprocessed file so that dwarf2 can use them, but defines set through cpp0 command line were output before first #line command (and cc1plus requires the name of the input file for #pragma implementation to be on the first line in the file).
*** Bug 23700 has been marked as a duplicate of this bug. ***