[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lmi] confused by latest expm1.c changes
From: |
Greg Chicares |
Subject: |
Re: [lmi] confused by latest expm1.c changes |
Date: |
Mon, 23 Jun 2008 20:03:39 +0000 |
User-agent: |
Thunderbird 2.0.0.14 (Windows/20080421) |
On 2008-06-23 16:50Z, Vadim Zeitlin wrote:
>
[boost provides expm1() and log1p()]
>
> One problem with using these Boost function is that they're new since
> 1.34 and LMI uses 1.33. OTOH maybe it's time to update to Boost 1.35
> anyhow?
Below [1] is a patch to update boost. It doesn't quite work:
/opt/lmi/third_party/src/boost/libs/filesystem/src/utf8_codecvt_facet.cpp:15:46:
libs/detail/utf8_codecvt_facet.cpp: No such file or directory
I think the problem is that its "jamfile" requires some component
of "boost::system" from someplace else in their source tree. Of
course, there might be other problems that I don't see yet.
I tried omitting 'utf8_codecvt_facet' from the makefiles, and
using
CPPFLAGS=-DBOOST_FILESYSTEM_NARROW_ONLY
in the hope that it would make the utf8 thing unnecessary; but,
alas, without success:
/MinGW_/bin/g++ -o test_coding_rules.exe exception.o operations.o path.o
portability.o alert.o alert_cli.o fenv_lmi.o main_common.o main_common_non_wx.o
sigfpe.o my_test_coding_rules.o
test_coding_rules.o -L . -L /opt/lmi/local/lib -L /opt/lmi/local/bin
-lboost_regex-gcc-1_33_1 -lxslt.dll -lxml2.dll
-Wl,-Map,test_coding_rules.exe.map -Wl,--disable-auto-import
exception.o:C:/MinGW-20050827/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/bits/basic_string.h:2041:
undefined reference to `boost::filesystem::path::native_file_string() const'
...
operations.o: In function `error_code':
/opt/lmi/third_party/include/boost/system/error_code.hpp:309: undefined
reference to `boost::system::get_system_category()'
And it looks like boost-1.34 has the same dependency and would
have the same issue. Things seem to compile okay; the problem
is all these "undefined reference" errors.
I guess the problem is this lmi design decision:
# Treat certain external libraries as collections of source files to
# be compiled and linked explicitly here, instead of building them
# separately and linking them as normal libraries. Rationale:
#
# boost: the build system provided is not free.
[and it's unique to boost AFAICT]
How would you recommend we attack this problem? If my impression
is correct--that boost's build system isn't free--then we really
ought to find a better way. Do you think it would be hard to
autotoolize boost::filesystem so that we could use it as a shared
library?
---------
[1] "patch to update boost"
Index: configure.ac
===================================================================
RCS file: /sources/lmi/lmi/configure.ac,v
retrieving revision 1.35
diff -u -r1.35 configure.ac
--- configure.ac 21 Mar 2008 12:13:17 -0000 1.35
+++ configure.ac 23 Jun 2008 19:38:31 -0000
@@ -412,7 +412,7 @@
LMI_BOOSTFS_SRC="."
fi
-for f in convenience.cpp exception.cpp operations_posix_windows.cpp
path_posix_windows.cpp; do
+for f in exception.cpp operations.cpp path.cpp portability.cpp
utf8_codecvt_facet.cpp; do
if ! test -r $LMI_BOOSTFS_SRC/$f; then
no_boost_fs=1
fi
Index: install_miscellanea.make
===================================================================
RCS file: /sources/lmi/lmi/install_miscellanea.make,v
retrieving revision 1.13
diff -u -r1.13 install_miscellanea.make
--- install_miscellanea.make 27 Apr 2008 16:44:22 -0000 1.13
+++ install_miscellanea.make 23 Jun 2008 19:38:31 -0000
@@ -48,7 +48,7 @@
# File lists
###################################################################
-boost_archive := boost_1_33_1.tar.bz2
+boost_archive := boost_1_35_0.tar.bz2
cgicc_archive := cgicc-3.1.4.tar.bz2
fop_archive := fop-0.20.5-bin.tar.gz
md5sum_msw_exe := md5sum.exe
@@ -77,7 +77,7 @@
$(sample_archive)-url :=
http://download.savannah.gnu.org/releases/lmi/$(sample_archive)
$(xmlwrapp_archive)-url :=
ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/$(xmlwrapp_archive)
-$(boost_archive)-md5 := 2b999b2fb7798e1737d1fff8fac602ef
+$(boost_archive)-md5 := dce952a7214e72d6597516bcac84048b
$(cgicc_archive)-md5 := 6cb5153fc9fa64b4e50c7962aa557bbe
$(fop_archive)-md5 := d6b43e3eddf9378536ad8127bc057d41
$(md5sum_msw_exe)-md5 := eb574b236133e60c989c6f472f07827b
Index: objects.make
===================================================================
RCS file: /sources/lmi/lmi/objects.make,v
retrieving revision 1.119
diff -u -r1.119 objects.make
--- objects.make 3 Jun 2008 14:37:24 -0000 1.119
+++ objects.make 23 Jun 2008 19:38:31 -0000
@@ -31,10 +31,11 @@
# requires are implemented entirely in headers.
boost_filesystem_objects := \
- convenience.o \
exception.o \
- path_posix_windows.o \
- operations_posix_windows.o \
+ operations.o \
+ path.o \
+ portability.o \
+ utf8_codecvt_facet.o \
# These object files are used in both an application and a shared
# library that it links to, only for builds that use shared-library