Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 May 2012 14:13:35 -0500 (CDT)
From:      huver@amgraf.com (Huver)
To:        office@FreeBSD.org
Subject:   ICU static lib problem
Message-ID:  <20120521191730.A887ACF063@mailer.amgraf.com>

next in thread | raw e-mail | index | archive | help
Hi,

This is regaring problem report 154086: libsicui18n.a contains no symbols.

Actually, several of the static ICU libraries got their symbols removed,
not just libsicui18n.a.  And the reason is in the file "source/icudefs.mk.in":

	INSTALL-L = $(INSTALL_PROGRAM)
	#INSTALL-L = $(INSTALL_DATA)

The INSTALL_PROGRAM gets expanded (by configure) to:

	install -s -o root -g wheel -m 555

and that "-s" strips all recognized symbols when a library file is being
installed -- during "make install".

The original "INSTALL-L as INSTALL_DATA" worked, as configure sets it to:

	install -c -o root -g wheel -m 444

Since the static libraries, when built, do have symbols in them, this "no-
strip" install will work.

Statically linking with ICU libraries can result in very huge executable file
size (as "-lstdc++" is almost always unavoidable), so I'm not sure how
practical it is.  However, since the "build options" include one for static,
it has better make usable libraries, right? ;-)


-huver  huver@amgraf.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120521191730.A887ACF063>