ports/155183: graphics/gegl build failure because of missing log2f()

Christoph Moench-Tegeder cmt at burggraben.net
Wed Mar 2 10:00:21 UTC 2011


>Number:         155183
>Category:       ports
>Synopsis:       graphics/gegl build failure because of missing log2f()
>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:   Wed Mar 02 10:00:20 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Christoph Moench-Tegeder
>Release:        FreeBSD 8.2-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD reindeer.exwg.net 8.2-RELEASE FreeBSD 8.2-RELEASE #7: Thu Feb 17 09:12:56 CET 2011 cmt at reindeer.exwg.net:/usr/obj/usr/src/sys/CMT amd64

Upgrade graphics/gegl-0.1.2_1 to graphics/gegl-0.1.6

>Description:
Build of gegl-0.1.6 fails because of missing log2f():

 CXX    exp_combine-exp_combine.o                                               
exp_combine.cpp: In function 'gfloat expcombine_get_file_ev(const gchar*)':     
exp_combine.cpp:94: error: 'log2f' was not declared in this scope               
gmake[2]: *** [exp_combine-exp_combine.o] Error 1                               
gmake[2]: Leaving directory `/usr/ports/graphics/gegl/work/gegl-0.1.6/tools'

log2f() is in POSIX and C89, so FreeBSD should have one, too; but that is
outside the scope of this PR.

>How-To-Repeat:
	try to build gegl

>Fix:

If I got my logarithms right, the following patch should produce equivalent
code without relying on log2f(). Please review, in case I'm making a fool
of myself.

diff -Nru gegl.orig/files/patch-tools-exp_combine.cpp gegl/files/patch-tools-exp_combine.cpp
--- gegl.orig/files/patch-tools-exp_combine.cpp	1970-01-01 01:00:00.000000000 +0100
+++ gegl/files/patch-tools-exp_combine.cpp	2011-03-02 10:26:21.000000000 +0100
@@ -0,0 +1,11 @@
+--- tools/exp_combine.cpp.orig	2011-03-02 10:23:52.000000000 +0100
++++ tools/exp_combine.cpp	2011-03-02 10:25:03.000000000 +0100
+@@ -91,7 +91,7 @@
+       gain = 1.0f;
+     }
+ 
+-  return log2f (aperture * aperture) + log2f (1 / time) + log2f (gain);
++  return logf (aperture * aperture * gain / time) / logf (2.0);
+ }
+ 
+ 


Regards,
Christoph
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list