Subject: Re: pkg/33754 (mplayer not building on i386-current using gcc4)
To: None <gnats-bugs@NetBSD.org>
From: Geert Hendrickx <ghen@NetBSD.org>
List: pkgsrc-bugs
Date: 10/03/2006 13:42:19
On Tue, Jun 27, 2006 at 09:51:56PM +0000, wiz@netbsd.org wrote:
> Synopsis: mplayer not building on i386-current using gcc4
>
> State-Changed-From-To: open->feedback
> State-Changed-By: wiz@netbsd.org
> State-Changed-When: Tue, 27 Jun 2006 21:51:54 +0000
> State-Changed-Why:
> Please try mplayer-share/Makefile.cflags 1.3 and let me know if
> mplayer now compiles for you.

I'm getting the same error with pkgsrc-2006Q3 on NetBSD 3.x (gcc 3.3.3),
but only with the "mplayer-runtime-cpudetection" option disabled (it's
enabled by default).

Error: Cannot find header either inttypes.h or bitypes.h (see DOCS/HTML/en/faq.html).

The problem is not inttypes.h or bitypes.h, the ./configure script just
fails at every compile test because: (snippets from configure.log)

> ============ Checking for CPU type ============
> Result is:  Intel (686-class)
> ##########################################
>
> ============ Checking for GCC & CPU optimization abilities ============
> Result is: prescott
> ##########################################
>
> ============ Checking for inttypes.h (required) ============
>
> #include <inttypes.h>
> int main(void) { return 0; }
>
> cc -O4 -march=prescott -mcpu=prescott -pipe -ffast-math
> -fomit-frame-pointer -I/usr/pkg/include -I/usr/pkg/include/faad2
> -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/faad2
> -DGLX_GLXEXT_LEGACY -I/usr/pkg/i
> nclude/freetype2   -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -L/usr/pkg/lib
> -Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -L/usr/X11R6/lib
> -Wl,-R/usr/X11R6/lib -o
> /scratch/work/multimedia/mplayer/work/mplayer-conf--12116.
> o /scratch/work/multimedia/mplayer/work/mplayer-conf--12116.c
> cc1: error: bad value (prescott) for -march= switch
> cc1: error: bad value (prescott) for -mcpu= switch
>
> ldd /scratch/work/multimedia/mplayer/work/mplayer-conf--12116.o
> ldd: /scratch/work/multimedia/mplayer/work/mplayer-conf--12116.o: No such
> file or directory
>
> Result is: no
> ##########################################
>
> ============ Checking for bitypes.h (inttypes.h predecessor) ============
>
> #include <sys/bitypes.h>
> int main(void) { return 0; }
>
> cc -O4 -march=prescott -mcpu=prescott -pipe -ffast-math
> -fomit-frame-pointer -I/usr/pkg/include -I/usr/pkg/include/faad2
> -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/faad2
> -DGLX_GLXEXT_LEGACY -I/usr/pkg/i
> nclude/freetype2   -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -L/usr/pkg/lib
> -Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -L/usr/X11R6/lib
> -Wl,-R/usr/X11R6/lib -o
> /scratch/work/multimedia/mplayer/work/mplayer-conf--12116.
> o /scratch/work/multimedia/mplayer/work/mplayer-conf--12116.c
> cc1: error: bad value (prescott) for -march= switch
> cc1: error: bad value (prescott) for -mcpu= switch
>
> ldd /scratch/work/multimedia/mplayer/work/mplayer-conf--12116.o
> ldd: /scratch/work/multimedia/mplayer/work/mplayer-conf--12116.o: No such
> file or directory

Two problems here:

- My CPU is a p4, not a prescott (wrong detection?)
- mcpu=prescott was introduced with gcc4, it's unknown to gcc3.

I assume some gcc4 fix has broken mplayer with gcc3 somehow.  Reverting
Makefile.cflags to rev. 1.2 doesn't help, I think it's an upstream problem.

However, the package builds (and runs) fine with "mplayer-runtime-cpudetection"
(which is on by default).

	Geert