Subject: Re: pkg/30366: multimedia/mjpegtools fails to build with -march=pentium4
To: Frederick Bruckman <>
From: Geert Hendrickx <>
List: tech-pkg
Date: 06/07/2005 13:17:57
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Sun, May 29, 2005 at 04:36:52PM -0500, Frederick Bruckman wrote:
> In article <>,
> writes:
> > pkgsrc/multimedia/mjpegtools fails when built with -march=pentium4
> > in the CFLAGS.  It succeeds with any -march up to pentium3, but
> > (!!), also succeeds with -march=pentium4 when -mcpu=pentium4 is
> > added (however, this is automatically implied by gcc).  
> > 
> > The error comes from compiling some assembler code.  The ./configure
> > script does some `uname -m' checking and accordingly sets a flag
> > $have_cmov (unless $enable_cmov_extension == no).  However, on i386
> > (or better), NetBSD's "uname -m" _always_ returns i386 (luckily,
> > otherwise binary packages built on a pentium2 bulk build machine
> > wouldn't work on a lesser cpu).  
> My money's on the hand-tuned assembler, over the gcc flag. I agree 
> with you, that it would bad to do that automatically.  The package 
> could grow an option, ${MJPEGTOOLS_USE_CMOV}, and a note in the 
> description in "defaults/mk.conf" not to set that unless you run 
> only hosts that support it.  (I guess the simplist way to tell, on 
> NetBSD, is "grep CMOV /var/run/dmesg.boot".)

The patch in attachment introduces a "cmov" option (using the OPTIONS
framwork), which only exists on i386, and is unset by default.
According to this option being set or unset, the ./configure flag
--enable-cmov-extension or --disable-cmov-extension is added.  

This solves the problem.  Only thing to be done is to document the
option in mk/defaults/.  It may be worth mentioning that, on NetBSD,
this extension can be checked with "dmesg | grep CMOV".  



Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="Makefile.diff"

--- multimedia/mjpegtools/Makefile.orig	2005-06-07 12:47:36.000000000 +0200
+++ multimedia/mjpegtools/Makefile	2005-06-07 13:09:21.000000000 +0200
@@ -26,6 +26,18 @@
+.if ${MACHINE_ARCH} == "i386"
+.  include "../../mk/"
+.  if !empty(PKG_OPTIONS:Mcmov)
+CONFIGURE_ARGS+=	--enable-cmov-extension
+.  else
+CONFIGURE_ARGS+=	--disable-cmov-extension
+.  endif
 .include "../../audio/lame/"
 .include "../../devel/SDL/"
 .include "../../graphics/ImageMagick/"