Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Apr 2006 10:48:42 GMT
From:      Kostik Belousov <kostikbel@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/95400: [patch] devel/pwlib 1.10.0 does not compile when CPUTYPE?=i686 set
Message-ID:  <200604061048.k36Amga1006301@www.freebsd.org>
Resent-Message-ID: <200604061050.k36AoHMl005531@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         95400
>Category:       ports
>Synopsis:       [patch] devel/pwlib 1.10.0 does not compile when CPUTYPE?=i686 set
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Apr 06 10:50:17 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Kostik Belousov
>Release:        6-STABLE
>Organization:
-
>Environment:
FreeBSD deviant.kiev.zoral.com.ua 6.1-PRERELEASE FreeBSD 6.1-PRERELEASE #23: Mon Mar 27 14:35:56 EEST 2006     root@deviant.kiev.zoral.com.ua:/usr/obj/usr/src/sys/DEVIANT  i386
>Description:
I have a line CPUTYPE?=i686 in my /etc/make.conf, and, trying to
upgrade pwlib-1.9.2_4,1 to 1.10.0,1, I got the following:

g++ -O1 -I/usr/home/portsworkdir/usr/ports/devel/pwlib/work/pwlib_v1_10_0/includ
e -I/usr/local/include  -DP_USE_PRAGMA -D_REENTRANT -pthread -Wall  -g -D_DEBUG 
-DNDEBUG -I/usr/home/portsworkdir/usr/ports/devel/pwlib/work/pwlib_v1_10_0/inclu
de  -O2 -fno-strict-aliasing -pipe -march=pentiumpro -O1 -I/usr/home/portsworkdi
r/usr/ports/devel/pwlib/work/pwlib_v1_10_0/include -I/usr/local/include  -felide
-constructors -Wreorder -c ../common/jidctflt.cxx -o /usr/home/portsworkdir/usr/
ports/devel/pwlib/work/pwlib_v1_10_0/lib/obj_d/jidctflt.o
{standard input}: Assembler messages:
{standard input}:370: Error: suffix or operands invalid for `sar'
{standard input}:397: Error: suffix or operands invalid for `sar'
{standard input}:425: Error: suffix or operands invalid for `sar'
{standard input}:454: Error: suffix or operands invalid for `sar'
{standard input}:482: Error: suffix or operands invalid for `sar'
{standard input}:510: Error: suffix or operands invalid for `sar'
{standard input}:538: Error: suffix or operands invalid for `sar'
{standard input}:566: Error: suffix or operands invalid for `sar'
gmake[3]: *** [/usr/home/portsworkdir/usr/ports/devel/pwlib/work/pwlib_v1_10_0/lib/obj_d/jidctflt.o] &#1054;&#1096;&#1080;&#1073;&#1082;&#1072; 1
gmake[3]: Leaving directory `/usr/home/portsworkdir/usr/ports/devel/pwlib/work/pwlib_v1_10_0/src/ptlib/unix'
gmake[2]: *** [debug] &#1054;&#1096;&#1080;&#1073;&#1082;&#1072; 2
gmake[2]: Leaving directory `/usr/home/portsworkdir/usr/ports/devel/pwlib/work/pwlib_v1_10_0'


>How-To-Repeat:
Compile the port for i686.
>Fix:
Either completely disable assembler snippet in question (port already
disables it for x86_64 !), or add the following patch:

--- src/ptlib/common/jidctflt.cxx.orig	Thu Apr  6 13:17:24 2006
+++ src/ptlib/common/jidctflt.cxx	Thu Apr  6 13:18:42 2006
@@ -86,13 +86,13 @@
 {
   __asm__ (
       "add %3,%1\n"
-      "\tsar %2,%1\n"
+      "\tsar %%cl,%1\n"
       "\tsub $-128,%1\n"
       "\tcmovl %5,%1\n"	/* Use the sub to compare to 0 */
       "\tcmpl %4,%1\n" 
       "\tcmovg %4,%1\n"
       : "=r"(x) 
-      : "0"(x), "Ir"(shift), "ir"(1UL<<(shift-1)), "r" (0xff), "r" (0)
+      : "0"(x), "Ic"(shift), "ir"(1UL<<(shift-1)), "r" (0xff), "r" (0)
       );
   return x;
 }

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200604061048.k36Amga1006301>