Bug 174618

Summary: devel/icu error: in blender, /usr/local/lib/libboost_locale.so: undefined reference to `icu_50::UnicodeString::doReplace(int, int, unsigned short const*, int, int)' c++: error: linker command failed with exit code 1 (use -v to see invoca
Product: Ports & Packages Reporter: O. Hartmann <ohartmann>
Component: Individual Port(s)Assignee: FreeBSD Office Team <office>
Status: Closed Feedback Timeout    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description O. Hartmann 2012-12-21 20:50:01 UTC
After a lot of updates and also port icu (icu-50.1) updates, updating of port graphics/blender (2.65) fails. Also port devel/boost recompiled:

[...]

[100%] Built target buildinfo
Scanning dependencies of target blender
[100%] Building C object source/creator/CMakeFiles/blender.dir/buildinfo.c.o
Linking CXX executable ../../bin/blender
/usr/local/lib/libboost_locale.so: undefined reference to `icu_50::UnicodeString::doReplace(int, int, unsigned short const*, int, int)'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
*** [bin/blender] Error code 1

Stop in /usr/ports/graphics/blender/work/.build.
*** [source/creator/CMakeFiles/blender.dir/all] Error code 1

Stop in /usr/ports/graphics/blender/work/.build.
*** [all] Error code 1

Stop in /usr/ports/graphics/blender/work/.build.
*** [do-build] Error code 1

Stop in /usr/ports/graphics/blender.
*** [build] Error code 1

Stop in /usr/ports/graphics/blender.

===>>> make failed for graphics/blender
===>>> Aborting update

Terminated

===>>> You can restart from the point of failure with this command line:
       portmaster <flags> graphics/blender

How-To-Repeat: Follow all instructions in ports/UPDATING (portmaster -w -r icu) and update or install port graphics/blender.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2012-12-21 20:50:08 UTC
Responsible Changed
From-To: freebsd-ports-bugs->mva

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Marcus von Appen freebsd_committer freebsd_triage 2012-12-21 21:53:26 UTC
State Changed
From-To: open->feedback

Waiting for submitter feedback
Comment 3 Mark Linimon 2012-12-21 22:39:08 UTC
----- Forwarded message from Marcus von Appen <mva@FreeBSD.org> -----

Date: Fri, 21 Dec 2012 22:43:40 +0100
From: Marcus von Appen <mva@FreeBSD.org>
To: freebsd-ports-bugs@FreeBSD.org,
	"O. Hartmann" <ohartman@zedat.fu-berlin.de>
Subject: Re: ports/174618: graphics/blender:
	/usr/local/lib/libboost_locale.so: undefined reference to
	`icu_50::UnicodeString::doReplace(int, int, unsigned short const*, int,
	int)' c++: error: linker command failed with exit code 1 (use -v to see
	invocation)

Hi,

I am unable to recreate this issue. Although the error of yours does not
sound like it, I would like you to recompile devel/boost-libs, too,
since libboost_locale.so belongs to that port:

# pkg_info -W /usr/local/lib/libboost_locale.so
/usr/local/lib/libboost_locale.so was installed by package boost-libs-1.48.0_2

If this still does not resolve the issue, please send me the
CMakeError.log and CMakeOutput.log files from blender's
work/.build/CMakeFiles directory for further inspection along with your
configuration options of devel/boost-libs and graphics/blender (output
of make showconfig).

Cheers
Marcus

----- End forwarded message -----
Comment 4 Marcus von Appen freebsd_committer freebsd_triage 2012-12-22 13:44:40 UTC
On, Sat Dec 22, 2012, O. Hartmann wrote:

> On 12/21/12 22:43, Marcus von Appen wrote:
> > Hi,
> >
> > I am unable to recreate this issue. Although the error of yours does not
> > sound like it, I would like you to recompile devel/boost-libs, too,
> > since libboost_locale.so belongs to that port:
> >
> > # pkg_info -W /usr/local/lib/libboost_locale.so
> > /usr/local/lib/libboost_locale.so was installed by package boost-libs-1.48.0_2
> >
> > If this still does not resolve the issue, please send me the
> > CMakeError.log and CMakeOutput.log files from blender's
> > work/.build/CMakeFiles directory for further inspection along with your
> > configuration options of devel/boost-libs and graphics/blender (output
> > of make showconfig).
> >
> > Cheers
> > Marcus
> >
>
>
> The port devel/boost-libs has been recompiled in the first place, as I
> stated. I did this again. I have not one single FreeBSD 10.0 machine
> which compiles the port graphics/blender.
>
> Again, as I reported, my FreeBSD systems are at the most recent revision.
>
> Although it should be implicit on FreeBSD by now that software gets
> compiled via LLVM/CLANG (3.2), if possible, every port is compiled with
> most recent LLVM/CLANG 3.2 as it gets refreshed and with the new libc++.

As stated above, can you please send me the specified logfiles? Thanks.

Cheers
Marcus
Comment 5 O. Hartmann 2012-12-30 14:21:27 UTC
Port garphics/blender (2.65) doesn't compile properly and show up with
the reported error as long as port devel/boost-libs is compiled with option

ICU=on: Boost.Regex with ICU unicode support

(ICU is set to ON and being used).

This problem was introduced when the new ICU 50.1 was comitted.

Removing the use of ICU (which is set ON by default in the port
devel/boost-libs) the port graphics/blender compiles properly. Due to
the lack of time I can not say whether blender now works correctly or not.

Oliver
Comment 6 O. Hartmann 2013-01-03 11:13:08 UTC
Am 01/02/13 18:12, schrieb Marcus von Appen:
> On, Sun Dec 30, 2012, O. Hartmann wrote:
> 
> [...]
> 
> devel/icu is indeed the culprit here. If clang++ is detected on the
> target platform, devel/icu will try to use C++11 standard features, such
> as the char16_t type. This type will also be exported in the ABI and
> ABI, which causes issues on linking the library (just as you ran into).
> 
> A more detailled explanation along with a fix can be found at:
> 
>   http://bugs.icu-project.org/trac/ticket/9728
> 
> Attached is a patch for devel/icu. Please give it a try and let me know,
> if this fixes the linker issue for you and if you are able to run
> graphics/blender afterwards.
> 
> Cheers
> Marcus
> 



Patch to port devel/icu applied, port icu recompiled. Then port
devel/boost-libs recompiled, this time option ICU enabled as well as
optimized compiler flags. After reinstallation recompiling of port
graphics/blender - with success!

Thanks,

Oliver
Comment 7 Marcus von Appen freebsd_committer freebsd_triage 2013-01-03 20:52:31 UTC
Responsible Changed
From-To: mva->freebsd-office

The clang issue with devel/icu is office@ territory.
Comment 8 Baptiste Daroussin freebsd_committer freebsd_triage 2013-01-14 20:06:10 UTC
Should be fixed with icu 50.1.1

Can you confirm?

regards,
Bapt
Comment 9 Mark Linimon freebsd_committer freebsd_triage 2013-03-10 02:05:41 UTC
Responsible Changed
From-To: freebsd-office->office

Canonicalize assignment.