FreeBSD Port: graphics/hugin
Rainer Hurling
rhurlin at gwdg.de
Fri Jan 18 18:34:51 UTC 2013
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 at 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
-------------- next part --------------
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));
+
+ }
+
More information about the freebsd-ports
mailing list