Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Jan 2013 19:34:42 +0100
From:      Rainer Hurling <rhurlin@gwdg.de>
To:        glarkin@FreeBSD.org
Cc:        Vasil Dimov <vd@FreeBSD.org>, ajtiM <lumiwa@gmail.com>, freebsd-ports@freebsd.org
Subject:   Re: FreeBSD Port: graphics/hugin
Message-ID:  <50F995C2.40200@gwdg.de>
In-Reply-To: <50F98AE4.3090409@FreeBSD.org>
References:  <201301171634.59322.lumiwa@gmail.com> <20130118073715.GA17087@hag.hw.v5d.org> <50F97FB0.9050804@gwdg.de> <50F98AE4.3090409@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------000507000107020801020402
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

On 18.01.2013 18:48 (UTC+2), Greg Larkin wrote:
> On 1/18/13 12:00 PM, Rainer Hurling wrote:
>> On 18.01.2013 08:37 (UTC+2), Vasil Dimov wrote:
>>> On Thu, Jan 17, 2013 at 16:34:59 -0600, ajtiM wrote:
>>>> My system: 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243826: Tue Dec
>>>> 4 06:55:39 UTC 2012
>>>> root@obrian.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
>>>>
>>>> clang -v: FreeBSD clang version 3.1 (branches/release_31
>>>> 156863) 20120523 Target: i386-unknown-freebsd9.0 Thread model:
>>>> posix
>>>>
>>>> I try to update hugin (Chase OpenEXR lib update) with clang but
>>>> I got an error:
>>>>
>>>>
>>>> In file included from 
>>>> /usr/ports/graphics/hugin/work/hugin-2011.4.0/src/foreign/zthread/src/vanilla/SimpleAtomicCount.cxx:26:
>>>>
>>>>
> /usr/ports/graphics/hugin/work/hugin-2011.4.0/src/foreign/zthread/src/../include/zthread/Guard.h:117:9:
> 
>>>> error: void function 'createScope' should not return a value
>>>> [-Wreturn-type] return false; ^      ~~~~~ 
>>>> /usr/ports/graphics/hugin/work/hugin-2011.4.0/src/foreign/zthread/src/../include/zthread/Guard.h:121:5:
>>>>  error: void function 'createScope' should not return a value
>>>> [-Wreturn-type] return true; ^      ~~~~ 2 errors generated. 
>>>> ***
>>>> [src/foreign/zthread/src/CMakeFiles/ZThread.dir/AtomicCount.cxx.o]
>>>> Error code 1
>>> [...]
>>>
>>> Hello,
>>>
>>> Do you have
>>>
>>> CC=clang CXX=clang++ CPP=clang-cpp
>>>
>>> in your environment, e.g. /etc/make.conf ?
>>>
>>> hugin does not seem to compile with clang. I fixed the above
>>> error but a set of another ones spills out.
>>>
>>> Can you try the attached patch which should force it to compile
>>> with gcc and confirm whether it fixes the problem for you?
> 
>> Hi Vasil,
> 
>> thanks for the patch for Makefile and
>> src/foreign/flann/util/logger.h. Both works nice for me on recent
>> 10.0-CURRENT amd64.
> 
>> With USE_GCC=yes the patch uses lang/gcc46. Isn't USE_GCC=any also 
>> sufficient, so we can use systems compiler gcc-4.2.1, if present?
> 
>> Rainer
> 
>>> The clang compilation issues would better be addressed with the
>>> hugin authors.
>>>
> 
> 
> 
> Hi all,

hi Greg,

> The build with clang dies inside of the zthread code included in the
> hugin distro, and I wonder if it would be fixed with the same patch
> that I committed to the devel/zthread port this week?

very nice idea and problably the right one.

> Here is the patch file for zthread's Guard.h file:
> 
> http://svnweb.freebsd.org/ports/head/devel/zthread/files/patch-include__zthread__Guard.h?revision=310556&view=co

I just tried your patch on hugin (my patch attached) with clang and it
builds and installs fine. A quick test using hugin also seems to be ok.

I did not use your fourth item in patching Guard.h, because it is
different from yours and should already ok for clang:

in zthreads Guard.h:l.494
-    if(!isDisabled())
+    if(!this->isDisabled())
       LockingPolicy::destroyScope(*this);

in hugins Guard.h:l.494
    if(!LockHolder<LockType>::isDisabled())
      LockingPolicy::destroyScope(*this);

This should be ok within hugins Guard.h. What do you think about it?

Many thanks,
Rainer

> 
> Hope that helps,
> Greg

--------------000507000107020801020402
Content-Type: text/plain; charset=UTF-8;
 name="hugin_clang.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="hugin_clang.diff"

diff -Naur hugin.orig/files/patch-src__foreign__flann__util__logger.h hugin/files/patch-src__foreign__flann__util__logger.h
--- hugin.orig/files/patch-src__foreign__flann__util__logger.h	1970-01-01 01:00:00.000000000 +0100
+++ hugin/files/patch-src__foreign__flann__util__logger.h	2013-01-18 19:05:12.000000000 +0100
@@ -0,0 +1,10 @@
+--- src/foreign/flann/util/logger.h.orig	2011-12-02 18:02:36.925022000 +0100
++++ src/foreign/flann/util/logger.h	2013-01-18 19:04:18.000000000 +0100
+@@ -32,6 +32,7 @@
+ #define LOGGER_H
+ 
+ #include <cstdio>
++#include <stdarg.h>
+ #include "flann/general.h"
+ 
+ 
diff -Naur hugin.orig/files/patch-src__foreign__zthread__include__zthread__Guard.h hugin/files/patch-src__foreign__zthread__include__zthread__Guard.h
--- hugin.orig/files/patch-src__foreign__zthread__include__zthread__Guard.h	1970-01-01 01:00:00.000000000 +0100
+++ hugin/files/patch-src__foreign__zthread__include__zthread__Guard.h	2013-01-18 19:10:18.000000000 +0100
@@ -0,0 +1,31 @@
+--- src/foreign/zthread/include/zthread/Guard.h.orig	2011-12-02 18:02:37.253022000 +0100
++++ src/foreign/zthread/include/zthread/Guard.h	2013-01-18 19:08:14.000000000 +0100
+@@ -108,7 +108,7 @@
+   }
+ 
+   template <class LockType>
+-  static void createScope(LockHolder<LockType>& l, unsigned long ms) {
++  static bool createScope(LockHolder<LockType>& l, unsigned long ms) {
+ 
+     if(Scope1::createScope(l, ms))
+       if(!Scope2::createScope(l, ms)) {
+@@ -428,8 +428,8 @@
+   template <class U, class V>
+   Guard(Guard<U, V>& g) : LockHolder<LockType>(g) {
+ 
+-    LockingPolicy::shareScope(*this, extract(g));
+-    
++    LockingPolicy::shareScope(*this, this->extract(g));
++
+   }
+ 
+   /**
+@@ -458,7 +458,7 @@
+   template <class U, class V>
+   Guard(Guard<U, V>& g, LockType& lock) : LockHolder<LockType>(lock) {
+ 
+-    LockingPolicy::transferScope(*this, extract(g));
++    LockingPolicy::transferScope(*this, this->extract(g));
+ 
+   }
+ 

--------------000507000107020801020402--



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