Bug 197894

Summary: graphics/exact-image fails to build when USE_GCC=yes implies GCC 4.9
Product: Ports & Packages Reporter: Gerald Pfeifer <gerald>
Component: Individual Port(s)Assignee: Brendan Fabeny <bf>
Status: Closed Overcome By Events    
Severity: Affects Some People CC: mandree
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 196712    

Description Gerald Pfeifer freebsd_committer 2015-02-22 01:27:24 UTC
This is related to PR 196712 and blocks updating the default version of
GCC from 4.8 to 4.9.

I believe what is happening here is that OpenEXR uses GCC on older 
versions of FreeBSD and when linking with the OpenEXR libraries we
then fail to pull in the proper NEWER GCC run-time libraries.

This can be fixed by building (or at least linking) with the same
compiler that OpenEXR is built with.  See OpenEXR/Makefile for how
this is done there. 


c++ -O2 -pipe -fno-strict-aliasing -I utility/ -fPIC -funroll-loops -fomit-frame-pointer -fpermissive -I/usr/local/include -I . -I/usr/local/include/agg2 -I/usr/local/include/freetype2 -I lib -I utility -pthread -I/usr/local/include/OpenEXR -I codecs/ -I bardecode -I utility -I utility    -o 'objdir/frontends/econvert' objdir/frontends/econvert.o objdir/lib/lib.a objdir/codecs/lib.a objdir/bardecode/bardecode.a objdir/utility/ArgumentList.o objdir/utility/File.o    -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lagg -laggfontfreetype -L/usr/local/lib -lfreetype  -ljpeg -ltiff  -lpng -lgif -ljasper -lIlmImf -L/usr/local/lib -lImath-2_2 -lIexMath-2_2 -lHalf -lIex-2_2 -lIlmThread-2_2 -pthread -L/usr/local/lib -llcms -lexpat -lz  
/usr/local/lib/libIlmImf.so: undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20'
build/bottom.make:84: recipe for target 'objdir/frontends/econvert' failed
gmake: *** [objdir/frontends/econvert] Error 1
rm objdir/frontends/econvert.o
*** [do-build] Error code 1
Comment 1 Bugzilla Automation freebsd_committer 2015-02-22 01:27:24 UTC
Auto-assigned to maintainer bf@FreeBSD.org
Comment 2 Brendan Fabeny freebsd_committer 2015-03-09 08:56:08 UTC
Gerald, are you referring to this bloc in the OpenEXR Makefile?:

# If default compiler is GCC, upgrade it because
# g++ 4.2 is too old to auto-upgrade 0xffffffffffffffffl to
# a long long integer constant - and has likely more issues.
.if ${COMPILER_TYPE} == gcc
USE_GCC= yes
Comment 3 Gerald Pfeifer freebsd_committer 2015-03-15 21:25:44 UTC
(In reply to Brendan Fabeny from comment #2)
> Gerald, are you referring to this bloc in the OpenEXR Makefile?

Yes, Brendan.  That should fix the failure.

Thanks for looking into this!
Comment 4 Gerald Pfeifer freebsd_committer 2015-04-09 19:22:37 UTC
OpenEXR no longer employes USE_GCC=yes, so this issue should be
resolved without changes to graphics/exact-image.