Is this a compiler error?

Matthew Dillon dillon at apollo.backplane.com
Fri Oct 5 11:53:23 PDT 2007


:While trying to build pkgsrc/emacs on HEAD with the default gcc41 I'm
:getting an error that just doesn't make sense.  This is taken from
:'dragonfly.h' in the emacs sources:
:
:#if defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ == 4
:#  ifndef DFLY_PRE_17_CRT
:#define START_FILES pre-crt0.o /usr/lib/gcc34/crt1.o /usr/lib/gcc34/crti.o /usr/lib/gcc34/crtbegin.o
:#define LIB_STANDARD -L/usr/lib/gcc34 -lgcc -lc -lgcc /usr/lib/gcc34/crtend.o /usr/lib/gcc34/crtn.o
:#  else
:#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o
:#define LIB_STANDARD -L/usr/lib/gcc34 -lgcc -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o
:#  endif
:#else
:#error "Add compiler version magic"
:#endif
:
:The problem is that 'error' is triggered no matter what that first 'if'
:checks for.  E.g. that first line can be changed to #if 0 and that same
:'error' is still triggered.
:
:Either gcc41 is broken or I am.  Which is it?

    Nothing wrong with gcc41.  If you set the first if to #if 0 then
    the error will be triggered because it's in the else clause.

    The conditionals simply do not check for gcc 4.1.  It is only checking
    for gcc 3.4, not finding it, and throwing up its hands.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Bugs mailing list