Issue 128114 - googletesting isn't picked up by configure process, linking of some modules fails
Summary: googletesting isn't picked up by configure process, linking of some modules f...
Status: UNCONFIRMED
Alias: None
Product: Build Tools
Classification: Code
Component: configure (show other issues)
Version: 4.2.0-dev
Hardware: All Linux 64-bit
: P5 (lowest) Normal (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-05-23 08:40 UTC by yury_t
Modified: 2019-05-28 07:41 UTC (History)
3 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description yury_t 2019-05-23 08:40:47 UTC
I have googletesting 1.8.1 installed on my system.

Checked out the source from zero, as advised in the building guide, configured the build with these options:

  $ ./configure --with-dmake-url=https://sourceforge.net/projects/oooextras.mirror/files/dmake-4.12.tar.bz2 --with-epm-url=https://sou
rceforge.net/projects/oooextras.mirror/files/epm-3.7.tar.gz --without-junit --with-jdk-home=/usr/lib64/java --with-package-format=inst
alled --disable-pam --disable-category-b --with-system-libs=no --enable-hyphen --enable-hunspell --enable-graphite --with-system-lucen
e=no --with-system-hsqldb=no --with-system-beanshell=no --with-system-saxon=no --disable-nss-module --with-system-redland=no --with-sy
stem-mythes=no --disable-bundled-dictionaries

Reconfiguring with --with-system-libs=yes makes no difference.

The libgtest.so is actually present in the build tree (after trying --with-system-libs=yes):

./solver/450/unxlngx6.pro/workdir/Headers/Library/libgtest.so
./solver/450/unxlngx6.pro/lib/libgtest.so.0
./solver/450/unxlngx6.pro/lib/libgtest.so.0.0.0
./solver/450/unxlngx6.pro/lib/libgtest.so

Several modules fail: o3tl, salhelper, cppuhelper, and others.

*** messages for salhelper:
Entering /home/ty/c/+ooo/aoo45/trunk/main/salhelper/prj

cd .. && make -s -r -j1   && make -s -r deliverlog
[ build ALL ] top level modules: salhelper
[ build ALL ] loaded modules: salhelper
[ build LNK ] GoogleTest/salhelper__test
/usr/bin/ld: /d/home/ty/c/+ooo/aoo45/trunk/main/solver/450/unxlngx6.pro/workdir/CxxObject/salhelper/qa/test_api.o: in function `(anonymous namespace)::Test_testConditionModifier_Test::TestBody()':
test_api.cxx:(.text+0x52f): undefined reference to `testing::internal::GetBoolAssertionFailureMessage[abi:cxx11](testing::AssertionResult const&, char const*, char const*, char const*)'
/usr/bin/ld: test_api.cxx:(.text+0x5c0): undefined reference to `testing::internal::GetBoolAssertionFailureMessage[abi:cxx11](testing::AssertionResult const&, char const*, char const*, char const*)'
/usr/bin/ld: test_api.cxx:(.text+0x64d): undefined reference to `testing::internal::GetBoolAssertionFailureMessage[abi:cxx11](testing::AssertionResult const&, char const*, char const*, char const*)'
/usr/bin/ld: test_api.cxx:(.text+0x6da): undefined reference to `testing::internal::GetBoolAssertionFailureMessage[abi:cxx11](testing::AssertionResult const&, char const*, char const*, char const*)'
/usr/bin/ld: test_api.cxx:(.text+0x76a): undefined reference to `testing::internal::GetBoolAssertionFailureMessage[abi:cxx11](testing::AssertionResult const&, char const*, char const*, char const*)'
/usr/bin/ld: /d/home/ty/c/+ooo/aoo45/trunk/main/solver/450/unxlngx6.pro/workdir/CxxObject/salhelper/qa/test_api.o:test_api.cxx:(.text+0x89d): more undefined references to `testing::internal::GetBoolAssertionFailureMessage[abi:cxx11](testing::AssertionResult const&, char const*, char const*, char const*)' follow
collect2: error: ld returned 1 exit status
make: *** [/d/home/ty/c/+ooo/aoo45/trunk/main/solenv/gbuild/LinkTarget.mk:330: /d/home/ty/c/+ooo/aoo45/trunk/main/solver/450/unxlngx6.pro/workdir/LinkTarget/GoogleTest/salhelper__test] Error 1
dmake:  Error code 2, while making 'all'
ERROR: error 65280 occurred while making /home/ty/c/+ooo/aoo45/trunk/main/salhelper/prj

*** messages for cpphelper:
Entering /home/ty/c/+ooo/aoo45/trunk/main/cppuhelper/prj

cd .. && make -s -r -j1   && make -s -r deliverlog
[ build PVTIDL ] 
[ build PVTUNOTYPES ] 
/d/home/ty/c/+ooo/aoo45/trunk/main/cppuhelper/Library_cppuhelper.mk:53: warning: overriding recipe for target '/d/home/ty/c/+ooo/aoo45/trunk/main/solver/450/unxlngx6.pro/workdir/Clean/LinkTarget/Library/libuno_cppuhelpergcc3.so'
/d/home/ty/c/+ooo/aoo45/trunk/main/cppuhelper/Library_cppuhelper.mk:48: warning: ignoring old recipe for target '/d/home/ty/c/+ooo/aoo45/trunk/main/solver/450/unxlngx6.pro/workdir/Clean/LinkTarget/Library/libuno_cppuhelpergcc3.so'
/d/home/ty/c/+ooo/aoo45/trunk/main/solenv/gbuild/Package.mk:28: *** gb_Deliver_deliver: file does not exist in solver, and cannot be delivered: /d/home/ty/c/+ooo/aoo45/trunk/main/solver/450/unxlngx6.pro/bin/types.rdb.  Stop.
dmake:  Error code 2, while making 'all'
ERROR: error 65280 occurred while making /home/ty/c/+ooo/aoo45/trunk/main/cppuhelper/prj
Comment 1 oooforum (fr) 2019-05-24 12:16:35 UTC
This software is dedicated for Apache OpenOffice.
OOO Extras is not in this project.
Thanks to see owners if you want help for build these tools.
Comment 2 Matthias Seidel 2019-05-24 14:24:52 UTC
(In reply to oooforum (fr) from comment #1)
> This software is dedicated for Apache OpenOffice.
> OOO Extras is not in this project.
> Thanks to see owners if you want help for build these tools.

What are you talking about?
Configure is part of the build process for AOO.

@yury:
Which branch did you check out? AOO42x or trunk?

Can you try to build with
--disable-unit-test

That switch should skip the tests as a workaround.
Comment 3 yury_t 2019-05-25 05:21:42 UTC
Thank you, Matthias.
As I'm not competent enough with the AOO build system, I can describe the problem only indirectly.

Previously, I was able to build both 420 and 450 on oldish 64-bit linux (GCC 5.3.0). Having updated the system recently, I'm not.

Both then and now, in 'configure' stage in both 420 and 450 I see that:

'--disable-unit-tests' doesn't work, some modules (e.g., cppuhelper) want to link to googletest anyway (no #ifdef's in code etc.)

'--without-system-libs' has problems with coinmp (configure wants external coinmp anyway, seems like some other option messes with this), so I had to '--disable-coinmp'; 

also, '--without-system-libs' needs '--with-system-redland=no' and '--with-system-mythes=no' extra

also some smaller things in that stage, I think, but all that happened before -- but I could complete the build then

What's stopping me now: several modules complain that '.mk' files they need to build aren't there in 'solenv' or some other stuff they expected to be in 'solver' isn't there (I quote from the failing AOO420X build):

dmake:  Error: -- `/d/home/ty/c/+ooo/AOO42X/main/solver/420/unxlngx6.pro/pck/intro.zip' not found, and can't be made
ERROR: error 65280 occurred while making /d/home/ty/c/+ooo/AOO42X/main/instsetoo_native/util

Entering /d/home/ty/c/+ooo/AOO42X/main/i18npool/prj
cd .. && make -s -r -j1   && make -s -r deliverlog
make: Circular /d/home/ty/c/+ooo/AOO42X/main/solver/420/unxlngx6.pro/workdir/ExternalHeaders/Library/libi18npaper.so <- /d/home/ty/c/+ooo/AOO42X/main/solver/420/unxlngx6.pro/workdir/Headers/Library/libi18nisolang1gcc3.so dependency dropped.
make: Circular /d/home/ty/c/+ooo/AOO42X/main/solver/420/unxlngx6.pro/workdir/ExternalHeaders/Library/i18npool.uno.so <- /d/home/ty/c/+ooo/AOO42X/main/solver/420/unxlngx6.pro/workdir/Headers/Library/libi18nisolang1gcc3.so dependency dropped.
make: Circular /d/home/ty/c/+ooo/AOO42X/main/solver/420/unxlngx6.pro/workdir/Package/i18npool_inc <- /d/home/ty/c/+ooo/AOO42X/main/solver/420/unxlngx6.pro/workdir/ExternalHeaders/Library/i18nsearch.uno.so dependency dropped.
/d/home/ty/c/+ooo/AOO42X/main/solenv/gbuild/Package.mk:28: *** gb_Deliver_deliver: file does not exist in solver, and cannot be delivered: /d/home/ty/c/+ooo/AOO42X/main/solver/420/unxlngx6.pro/inc/icuversion.mk.  Stop.

Maybe it's perl having been updated to 5.28 on my system? (What use I make of perl is literally only to satisfy the needds of build systems of AOO and LO, so I don't know perl ecosystem well enough)
But why only some of the modules?
Comment 4 yury_t 2019-05-25 08:35:55 UTC
...more bafflement ensues:

...the 'icu' module by itself builds fine, so I copied its icuversion.mk to 'solver' directory by hand, and tried to rebuild the complaining 'i18npool'.

And I'm getting lots of these:

/d/home/ty/c/+ooo/AOO42X/main/i18npool/source/collator/gencoll_rule.cxx:114:5: error: 'RuleBasedCollator' was not declared in this scope
     RuleBasedCollator *coll = new RuleBasedCollator(reinterpret_cast<const UChar *>(Obuf.getStr()), status); // UChar != sal_Unicode in MinGW
     ^~~~~~~~~~~~~~~~~

So I had to do build --deliver in 'icu', and now I get a ton of these:

[ build LNK ] Library/i18nsearch.uno.so
/usr/bin/ld: /d/home/ty/c/+ooo/AOO42X/main/solver/420/unxlngx6.pro/workdir/CxxObject/i18npool/source/search/textsearch.o: in function `TextSearch::~TextSearch()':
textsearch.cxx:(.text+0x1bb9): undefined reference to `icu_64::RegexMatcher::~RegexMatcher()'
/usr/bin/ld: /d/home/ty/c/+ooo/AOO42X/main/solver/420/unxlngx6.pro/workdir/CxxObject/i18npool/source/search/textsearch.o: in function `TextSearch::RESrchPrepare(com::sun::star::util::SearchOptions const&)':
textsearch.cxx:(.text+0x1d20): undefined reference to `icu_64::UnicodeString::UnicodeString(char16_t const*, int)'
/usr/bin/ld: textsearch.cxx:(.text+0x1d5d): undefined reference to `icu_64::UnicodeString::UnicodeString(char const*, int, icu_64::UnicodeString::EInvariant)'
/usr/bin/ld: textsearch.cxx:(.text+0x1d70): undefined reference to `icu_64::UnicodeString::~UnicodeString()'

I never had such number of building problems with AOO/LO on a supported platform before. GCC is 8.3.0, for what it's worth.
Comment 5 Matthias Seidel 2019-05-25 18:44:39 UTC
Hi Yury,

I am not a specialist for building on Linux, either.
Which exact system are you trying to build on?

Maybe it would be better to discuss this problem on the developer mailing list to see if it is only a problem in configuration or a real bug.

See:
https://openoffice.apache.org/mailing-lists.html#development-mailing-list-public
for subscribing
Comment 6 yury_t 2019-05-28 05:17:31 UTC
Well, the system is one month old Slackware with GCC 8.3.0. Maybe I'll try the devlist, indeed. I'm hoping for somebody at least recognizing the sort of problem I'm dealing with.
Thanks!
Comment 7 Peter 2019-05-28 06:26:04 UTC
I tried your first configure. What did you do to unowinreg.dll? Have you installed Mingw?
Comment 8 yury_t 2019-05-28 07:41:14 UTC
Oh, thanks for looking. The platform is slackware 64bit with GCC 8.3.0, so that '.dll' was just wget-ed into 'external/unowinreg' module. And no mingw (and never needed it on slackware builds).