, ( ) .
, , . , Linux. , , , / .
() . . /configure, - . , .
icu 4-2? php intl (ext/intl/grapheme/grapheme_string.c)
#include <unicode/ubrk.h>
...
PHP_FUNCTION(grapheme_substr)
{
...
ubrk_close(bi);
...
. grapheme_string.c , icu 3.4 icu 4.2. ubrk_close_4_2?
"./configure... --with-icu-dir =/usr/local/icu", ext/intl/config.m4. icu-config , include , php. icu, ,
ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config"
ICU_INCS=`$ICU_CONFIG --cppflags-searchpath`
ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio`
. icu-config, , , , , ICU_INCS ICU_LIBS .
ICU_INCS ICU_LIBS gcc, /. gcc (apperently) unicode/ubrk.h , , ICU_INCS, , icu 4.2 .
unicode/ubrk.h unicode/utypes.h, unicode/urename.h - icu 4.2. unicode/urename.h #define ubrk_close ubrk_close_4_2.
, ubrk_close (bi) ubrk_close_4_2 (bi).
PHP_FUNCTION(grapheme_substr)
{
...
ubrk_close_4_2(bi);
...
, ubrk_close_4_2, - .
, . icu 4.2 . .
. ICU_LIBS
-lpthread -lm -L/usr/local/icu/lib -licui18n -licuuc -licudata -lpthread -lm -licuio
-licuuc gcc " icuuc ". gcc LIB , "icuuc".
libicuuc.so. , , , libicuuc.so. , . gcc . - , gcc. .
gcc -L/usr/lib -L/usr/local/lib -licuuc
/usr/lib/libicuuc.so, , /usr/local/lib/libicuuc.so(). , , .
, "" , ( ).
, , (runtime) loader ( ), .
"" ( ) , ( SONAME) .
, .
lrwxrwxrwx 1 root root 18 Jul 1 09:56 libicuuc.so -> libicuuc.so.42.0.1
lrwxrwxrwx 1 root root 18 Jul 1 09:56 libicuuc.so.42 -> libicuuc.so.42.0.1
-rwxr-xr-x 1 root root 1660769 Jul 1 09:56 libicuuc.so.42.0.1
libicuuc.so, gcc , -licuuc. libicuuc.so.42.0.1. "" , (runtime) libicuuc.so.42, . http://userguide.icu-project.org/packaging#TOC-ICU-Versions.
libicuuc.so.42.0.1, libicuuc.so.42.0.2, libicuuc.so.42.0.3, libicuuc.so.42. libicuuc.so.42 / , icu 4.2. /, .
, gcc libicuuc.so- > libicuuc.so.42.0.1, () libicuuc.so- > libicuuc.so.34.x.y. libicuuc.so.34.x.y icu 4.2, ubrk_close_4_2, ubrk_close_3_4. , ubrk_close_4_2 → .
"" (): . /configure , ... Makefile.
Makefile ( ) , INTL_SHARED_LIBADD =
-licui18n -licuuc -licudata -licuio
/usr/local/icu/lib/libicui18n.so.42/usr/local/icu/lib/libicuuc.so.42/usr/local/icu/lib/libicudata.so.42/usr/local//Library/libicuio.so.42
( -lm -pthread... ). .
"" gcc/linker .so, . , (beacuse of SONAME).
, . /configure, .
: libicuXY.so( " " ), libicuXY.so- > libicuXY.so.42.0.1. libicuuc.so → gt; libicuuc.so.34.x.y, gcc/linker .
- SONAME, , , "" ( ) libicuXY.so.34.
, .. , include, -. ( ) .