Issue 128150

Summary: trunk configured with --with-system-icu=no uses incorrect namespace prefix
Product: Build Tools Reporter: yury_t <yury.tarasievich>
Component: external prerequisitesAssignee: AOO issues mailing list <issues>
Status: UNCONFIRMED --- QA Contact:
Severity: Normal    
Priority: P5 (lowest) CC: mseidel
Version: 4.2.0-dev   
Target Milestone: ---   
Hardware: All   
OS: All   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---
Attachments:
Description Flags
workaround - the patch for the source
none
workaround - the makefile modification none

Description yury_t 2019-07-09 07:55:03 UTC
Building on 64-bit linux, the external source used is 2f6ecca935948f7db92d925d88d0d078-icu4c-4_0_1-src.tgz

The namespace prefix used when accessing the ICU modules when building look like these (there are lots of them):

/usr/bin/ld: /d/home/ty/c/+ooo/AOO45X/main/i18npool/source/search/textsearch.cxx:831: undefined reference to `icu_64::UnicodeString::~UnicodeString()'

...and the build finishes with:

collect2: error: ld returned 1 exit status
make: *** [/d/home/ty/c/+ooo/AOO45X/main/solenv/gbuild/LinkTarget.mk:330: /d/home/ty/c/+ooo/AOO45X/main/solver/450/unxlngx6.pro/workdir/LinkTarget/Library/i18nsearch.uno.so] Error 1

The namespace prefix as found in comiled libicuuc.so in main/solver/450/unxlngx6.pro/lib' is:

000000000006fe9c T icu_4_0::UnicodeString::~UnicodeString()
000000000006fe7a T icu_4_0::UnicodeString::~UnicodeString()
000000000006fe7a T icu_4_0::UnicodeString::~UnicodeString()
Comment 1 yury_t 2019-07-09 08:46:27 UTC
Forgot to mention my configure options set is:

./configure   \
--with-build-version="$(date +"%Y-%m-%d %H:%M") - `uname -sm`" \
--enable-verbose \
--enable-crashdump=yes  \
--enable-opengl  \
--enable-dbus  \
--with-package-format="installed" \
--with-dmake-url=https://sourceforge.net/projects/oooextras.mirror/files/dmake-4.12.tar.bz2 \
--with-epm-url=https://sourceforge.net/projects/oooextras.mirror/files/epm-3.7.tar.gz \
--without-junit \
--without-stlport \
--with-system-stdlibs \
\
--disable-gstreamer \
--disable-wiki-publisher  \
--disable-bundled-dictionaries \
--disable-category-b \
--disable-pam \
\
  --with-jdk-home=/usr/lib64/java \
\
--with-system-libs=no \
  --enable-hyphen \
  --enable-hunspell \
  --enable-graphite \
\
  --with-system-lucene=no \
  --with-system-hsqldb=no \
  --with-system-beanshell=no \
  --with-system-saxon=no \
  --with-system-redland=no \
  --with-system-mythes=no \
Comment 2 yury_t 2019-07-09 08:47:06 UTC
...and --with-system-icu=no, too.
Comment 3 yury_t 2019-07-11 14:29:03 UTC
Created attachment 86712 [details]
workaround - the patch for the source

Actually, I was able to produce a workaround for this, although I'm not sure of the quality of the solution. For partial builds, it requires cleaning and rebuilding 'i18ntools' module.
Comment 4 yury_t 2019-07-11 14:32:28 UTC
Created attachment 86713 [details]
workaround - the makefile modification

The patch for the makefile.mk in 'icu', produced in the 'main' subdir. Have no idea how that should _really_ be done. Seems to work if the source for 'icu' has already been unpacked.