Bug 197894 - graphics/exact-image fails to build when USE_GCC=yes implies GCC 4.9
Summary: graphics/exact-image fails to build when USE_GCC=yes implies GCC 4.9
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Brendan Fabeny
URL:
Keywords:
Depends on:
Blocks: 196712
  Show dependency treegraph
 
Reported: 2015-02-22 01:27 UTC by Gerald Pfeifer
Modified: 2015-04-09 19:22 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gerald Pfeifer freebsd_committer freebsd_triage 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. 

http://package18.nyi.freebsd.org/data/93i386-default-PR196712/2015-01-18_16h49m19s/logs/errors/exact-image-0.8.9_9.log

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 freebsd_triage 2015-02-22 01:27:24 UTC
Auto-assigned to maintainer bf@FreeBSD.org
Comment 2 Brendan Fabeny freebsd_committer freebsd_triage 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
.endif
Comment 3 Gerald Pfeifer freebsd_committer freebsd_triage 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 freebsd_triage 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.