Ticket #1375 (Closed: fixed)
icu config check is slightly broken
Priority: | low | Reporter: | fgerlits |
---|---|---|---|
Severity: | minor | Assigned to: | maroy |
Component: | bug | Status: | closed |
Version: | 1.0 | Resolution: | fixed |
Milestone: | 1.0 | Keywords: |
Description by fgerlits:
I had ICU installed in /usr/local, which was found by AC_CHECK_ICU, but the include flags were not set correctly, and compilation failed.
Attachments
Changelog
Sat Aug 6 09:55:32 2005: Modified by fgerlits
- status changed from new to assigned
- owner changed from anonymous to maroy
Mon Aug 8 16:14:34 2005: Modified by fgerlits
Fri Aug 26 13:41:21 2005: Modified by maroy
this is quite strange indeed. if you look at livesupport/etc/acinclude.m4, in function AC_CHECK_ICU, it actually checks for the specific version, here: ICU_VERSION=`$ICU_CONFIG --version` VERSION_CHECK=`expr $ICU_VERSION \\>\\= $1` if test "$VERSION_CHECK" = "1" ; then ... on my system, the system-installed ICU is 2.8, and is properly recognized as an insufficient version (as we're looking for 3.0) what does the following shell command return on your system: expr `icu-config --version` \>\= 3.0 ?
Fri Sep 23 16:41:36 2005: Modified by maroy
- description changed.
I just posted the autoconf check here:
http://autoconf-archive.cryp.to/ac_check_icu.html
please let me know if it still doesn't work for you. it's working properly for me...
Sat Sep 24 12:04:59 2005: Modified by fgerlits
On an ubuntu 5.04, I installed the ICU 3.4 tarball in /usr/local and tried to install livesupport from SVN (after undisabling the ICU config check in /etc/configure.ac).
Everything ran fine, until it tried to generate the .res files at the end of make compile in /products/gLiveSupport, when I got this:
/usr/local/bin/genrb --destdir ./tmp --encoding utf-8 --package-name gLiveSupport --strict var/root.txt /usr/local/bin/genrb: error while loading shared libraries: libicui18n.so.34: cannot open shared object file: No such file or directory make[1]: *** [tmp/gLiveSupport_root.res] Error 127
The same error occurs when I try to run make check, or try to start the scheduler. There is a libicui18n.so.34 file in /usr/local/lib.
Sat Sep 24 12:16:20 2005: Modified by maroy
but what does this have to do with the autoconf ICU check?
you just can't simply run genrb, because LD_LIBRARY_PATH probably doesn't include /usr/local/lib ...
Sat Sep 24 12:50:14 2005: Modified by fgerlits
Well, I don't know what it has to do with, all I'm saying is it doesn't work.
You are right, my LD_LIBRARY_PATH was empty, so I did {{ export LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/genrb ... (works) ... make compile }} but still get the same error message.
Sat Sep 24 13:08:57 2005: Modified by maroy
well, ICU checking does work - as ICU >= 3.0 was recognized by the autoconf script properly.
as for executing genrb:
it's quite strange, as in products/gLiveSupport/etc/Makefile.in, a new value is only appended to LD_LIBRARY_PATH, see line 200:
export LD_LIBRARY_PATH:=${LD_LIBRARY_PATH}:${USR_LIB_DIR}
if you change the pattern rule that calls genrb to print LD_LIBRARY_PATH, like this:
${TMP_DIR}/${PACKAGE_NAME}_%.res : ${VAR_DIR}/%.txt
echo ${LD_LIBRARY_PATH} ${GENRB} ${GENRBOPTS} $^
what do you get?
Sat Sep 24 13:10:06 2005: Modified by maroy
sorry, code formatting was broken in the previous post...
the change should read:
${TMP_DIR}/${PACKAGE_NAME}_%.res : ${VAR_DIR}/%.txt echo ${LD_LIBRARY_PATH} ${GENRB} ${GENRBOPTS} $^
Sat Sep 24 13:13:05 2005: Modified by maroy
oh, I see you're executing from the main makefile, where unfortunately the original LD_LIBRARY_PATH is totally overwridden, in line 80 of etc/Makefile.in:
export LD_LIBRARY_PATH=${prefix}/lib
try changing this to:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${prefix}/lib
Sat Sep 24 13:33:51 2005: Modified by fgerlits
Yes, that fixes it; just needs another colon, like this:
export LD_LIBRARY_PATH:=${LD_LIBRARY_PATH}:${prefix}/lib
Sat Sep 24 13:46:48 2005: Modified by maroy
- resolution set to fixed
- status changed from assigned to closed
yes, I saw the type after I commited it (and one can't seem to be able to edit an entry here). but I thought you'll see it as well :)
committed the required changes, see [1620]
Sat Sep 24 16:45:42 2005: Modified by fgerlits
Is the next line (export PKG_CONFIG_PATH=...) correct? That one overwrites the system settings, too, instead of appending to it.
Sat Sep 24 16:47:20 2005: Modified by fgerlits
"overwridden" is an excellent new word, by the way :)
Sat Sep 24 16:54:42 2005: Modified by maroy
frankly, I don't know. we haven't bumped into pkg-config issues so far...
Akos, the overwridder :)
I temporarily disabled boost (and ICU) library check in the main configure.ac and all the C++ module and product Makefile.ins. They need to be put back in after they are fixed.