Issue 128148 - build of trunk fails, because of icu
Summary: build of trunk fails, because of icu
Alias: None
Product: Build Tools
Classification: Code
Component: GNU make (show other issues)
Version: 4.2.0-dev
Hardware: All All
: P5 (lowest) Normal (vote)
Target Milestone: 4.2.0
Assignee: AOO issues mailing list
QA Contact:
Keywords: regression
Depends on:
Reported: 2019-07-07 06:09 UTC by yury_t
Modified: 2019-10-03 07:57 UTC (History)
4 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---
mseidel: 4.2.0_release_blocker+


Note You need to log in before you can comment on or make changes to this issue.
Description yury_t 2019-07-07 06:09:46 UTC
I'm trying to build trunk on linux, using the configure options as included further in the post (development snapshot options, minus some things I don't need right now, plus options to minimize system dependencies).

The build fails on not being there (the relevant part of diagnostics included). The file in question resides in 'icu' subdir, but I don't see how to put it to use. Doing 'build --all:icu' does nothing. The source for icu4c actually exists in external_sources. 

Looks like dependencies generation is broken by such a combination of configuration options. What do I do? I don't want to install all the stuff which is required by build with complete set of 'category-b' enabled.

./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= \
--with-epm-url= \
--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 \


Building module i18npool

Entering /d/home/ty/c/+ooo/AOO45X/main/i18npool/prj

cd .. && make  -r -j1   && make  -r deliverlog
make: Circular /d/home/ty/c/+ooo/AOO45X/main/solver/450/ <- /d/home/ty/c/+ooo/AOO45X/main/solver/450/ dependency dropped.
make: Circular /d/home/ty/c/+ooo/AOO45X/main/solver/450/ <- /d/home/ty/c/+ooo/AOO45X/main/solver/450/ dependency dropped.
make: Circular /d/home/ty/c/+ooo/AOO45X/main/solver/450/ <- /d/home/ty/c/+ooo/AOO45X/main/solver/450/ dependency dropped.
/d/home/ty/c/+ooo/AOO45X/main/solenv/gbuild/ *** gb_Deliver_deliver: file does not exist in solver, and cannot be delivered: /d/home/ty/c/+ooo/AOO45X/main/solver/450/  Stop.
dmake:  Error code 2, while making 'all'

1 module(s): 
need(s) to be rebuilt
Comment 1 Peter 2019-07-07 06:41:30 UTC
Which build command do you use? (make or build)

Then you have

This seems strange.
Did the option work before?
Comment 2 yury_t 2019-07-07 07:02:40 UTC
I was able to build trunk about 2-3 months ago, only I didn't save the configuration.

The '--without-stlport' and '--with-system-stdlibs' come from the development snapshot build options, as published on wiki:

I use those together '--with-system-libs=no' because my guess is those refer to the different sets of libraries.


BTW, I was able to 'activate' the 'icu' module by poking things and it happens I needed to add '--with-system-icu=no' to my configuration. However, build still fails in 'i18npool' when using things from 'icu' module, only now it is because of namespaces mismatch:

........... lots of those (note the icu_64:: prefix) ..............

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

collect2: error: ld returned 1 exit status
make: *** [/d/home/ty/c/+ooo/AOO45X/main/solenv/gbuild/ /d/home/ty/c/+ooo/AOO45X/main/solver/450/] Error 1

and in main/solver/450/' contains:

000000000006fe9c T icu_4_0::UnicodeString::~UnicodeString()
000000000006fe7a T icu_4_0::UnicodeString::~UnicodeString()
000000000006fe7a T icu_4_0::UnicodeString::~UnicodeString()
Comment 3 damjan 2019-07-07 09:36:35 UTC
Possibly a regression from:
Comment 4 damjan 2019-07-08 19:53:24 UTC
Indeed it was a regression from commit 1852965.

Fixed by commit 1862776, where I made it not include the file if it wasn't delivered (which will be the case when using system ICU).
Comment 5 Marcus 2019-07-08 22:23:00 UTC
The best way to ask for granting this as a release blocker is to set the respective flag. I've set this for you. ;-)
Comment 6 yury_t 2019-07-09 05:43:12 UTC
I assume the original issue's fixed now? Thank you very much!

Now, do I open a separate ticket on ICU namespaces mismatch issue, as in the 2nd part of #2?

Also, the use of several libraries is not configured properly when '--without-system-libs' is specified together with '--disable-category-b' and then some of the category-b modules are enabled separately (as seen in the #1). A separate issue for this as well?
Comment 7 Peter 2019-07-09 05:46:29 UTC
I think you should.
Comment 8 Matthias Seidel 2019-07-11 12:41:40 UTC
Merged to AOO42X with r1862920