Subject: Re: pkg/30366: multimedia/mjpegtools fails to build with -march=pentium4
To: None <,,>
From: Geert Hendrickx <>
List: pkgsrc-bugs
Date: 06/07/2005 11:19:02
The following reply was made to PR pkg/30366; it has been noted by GNATS.

From: Geert Hendrickx <>
To: Frederick Bruckman <>
Subject: Re: pkg/30366: multimedia/mjpegtools fails to build with -march=pentium4
Date: Tue, 7 Jun 2005 13:17:57 +0200

 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/"