CURRENT: lang/gcc fails to build on CURRENT with error: configure: error: no usable dependency style found

Dimitry Andric dim at FreeBSD.org
Mon Mar 11 16:29:36 UTC 2013


On 2013-03-11 14:15, Niclas Zeising wrote:
> On 03/11/13 14:13, Steve Kargl wrote:
...
>> No.  Here's my make.conf.
>>
>> KERNCONF=SPEW
>> CPUTYPE?=opteron
>> FFLAGS+= -O2 -pipe -march=native -mtune=native -funroll-loops -ftree-vectorize
>> MALLOC_PRODUCTION="YES"
>> WITHOUT_LIB32="YES"
>> WITHOUT_MODULES="YES"
>> WITHOUT_NLS="YES"
>> WITH_BSD_GREP="YES"
>> WITH_PROFILE="YES"
>> WITH_PKGNG=yes
>> PRINTERDEVICE=ps
>> #
>> # Crap for ports.
>> #
>> DISABLE_MAKE_JOBS="YES"
>> WITH_GHOSTSCRIPT_VER=8
>> #
>> # added by use.perl 2013-02-19 12:45:06
>> PERL_VERSION=5.12.4
>>
>
> This is most likely due to a incompatibility between bsd grep and gnu
> grep.  Try to switch to gnu grep, and the problem will most likely go away.

Yes, this is definitely due to a BSD grep bug.  The depcomp tests
create a file sub/conftest.Po, containing:

========================================================================
sub/conftest.o: sub/conftest.c sub/conftst1.h sub/conftst2.h \
    sub/conftst3.h sub/conftst4.h sub/conftst5.h sub/conftst6.h

sub/conftst1.h:

sub/conftst2.h:

sub/conftst3.h:

sub/conftst4.h:

sub/conftst5.h:

sub/conftst6.h:
========================================================================

Then it runs "grep sub/conftest.o sub/conftest.Po", which fails with BSD
grep, and succeeds with GNU grep.

BSD grep does something very strange here:

$ echo 'foo.bar' | grep foo.bar
foo.bar
$ echo 'foo.barx' | grep foo.bar
foo.barx
$ echo 'sub/foo.bar' | grep sub/foo.bar
sub/foo.bar
$ echo 'sub/foo.barx' | grep sub/foo.bar
$ echo $?
1

So why does it not match in the last case?  GNU grep works:

$ echo 'sub/foo.barx' | gnugrep sub/foo.bar
sub/foo.barx


More information about the freebsd-ports mailing list