Xapian Developers, [I initially thought to install xapian on SFU (Interix 3.5) on MS XP but could not compile libuuid] [getopt.h, inttypes.h, and stdint.h taken from SUA (for Vista) and installed in SFU (Interix 3.5)] If someone is inclined to write a modified libuuid and label it for use with Interix <version(s)> to satisfy the dependency for an xapian <version(s)> install on Interix <version(s)>, it might be of interest, though since Windows 8.1 MS has discontinued enabling for SUA (Interix). Perl fails some tests from 'make test' in Interix 3.5. Tcl configure scripts cannot figure out how to compile other than static libraries on Interix 3.5. xapian bindings for tcl (8.5.5 installed from source with MinGW/MSYS as below) do not seem to be able to use tcl's .dll The argument --cxxflags returning empty when xapian was installed as [MSYS-1.0.11.exe] /usr, from g++ `xapian-config --cxxflags` quickstartindex.cc `xapian-config --libs` -o quickstartindex, caused me to rethink the install prefix, so I uninstalled it and reinstalled as --prefix=/c/xapian. I created a log of 'make check' which is attached to this email as make.check. Some additional comments below. Best Regards, Eric Lindblad - - - Microsoft Windows XP [version 5.1.2600] Home Edition 32 bit gcc (version 4.5.2) from HaskellPlatform-2013.2.0.0-setup.exe zlib (version 1.2.5) from gtk+-bundle_2.24.10-20120208_win32.zip MSYS-1.0.11.exe Perl v5.8.8 MSWin32-x86-multi-thread [built with Borland C++ Compiler 5.5 and dmake]. Danish ...(Pipen er blevet afsluttet.) English ..(The pipe has been closed.) $ export PATH=${PATH}:/c/programmer/borland/bcc55/bin:\> /c/programmer/perl/5.8.8/bin/mswin32-x86-multi-thread$ PKGNAM=xapian-core $ VERSION=${VERSION:-1.2.21} $ env CPPFLAGS=-I/c/programmer/gtk/include \> LDFLAGS=-L/c/programmer/gtk/lib ./configure \ > --prefix=/c/xapian --sysconfdir=/etc --localstatedir=/var \ > --mandir=/c/xapian/man --docdir=/c/xapian/doc/$PKGNAM-$VERSION \ > --disable-static CC=/c/programmer/haskell/mingw/bin/gcc$ $ CWD=$(pwd) $ make $ make check >$CWD/logs/make.check 2>&1 $ make install $ $ export PATH=${PATH}:/c/xapian/bin $ $ g++ `xapian-config --cxxflags` quickstartindex.cc `xapian-config --libs` -o quickstartindex quickstartindex.cc: In function 'int main(int, char**)': quickstartindex.cc:34:15: error: 'exit' was not declared in this scope $ I modified the file and compiled it. $ g++ `xapian-config --cxxflags` quickstartindex.cc `xapian-config --libs` -o quickstartindex Info: resolving std::cout by linking to __imp___ZSt4cout (auto-import) Info: resolving vtable for __cxxabiv1::__class_type_info by linking to __imp___ZTVN10__cxxabiv117__class_type_infoE (auto-import) c:/programmer/haskell/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line. This should work unless it involves constant data structures referencing symbols from auto-imported DLLs. $ The similar to the above occurred when compiling quickstartsearch.cc. $ quickstartindex proverbs \> "people who live in glass houses should not throw stones" \ > people live glass house stone$ quickstartindex proverbs \> "Don't look a gift horse in the mouth" \ > look gift horse mouth$ quickstartsearch proverbs look Performing query `Xapian::Query(look)' 1 results found Document ID 2 100% [Don't look a gift horse in the mouth] $ I am surprised that -lxapian-core is listed in /c/xapian/lib/pkgconfig/xapian-core.pc $ cat xapian-core.pc prefix=/c/xapian exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: The Xapian Probabilistic Information Retrieval Library Description: Xapian is an Open Source Probabilistic Information Retrieval framework. It offers a highly adaptable toolkit that allows developers to easily add advanced indexing and search facilities to applications. This package provides the libraries for applications using Xapian functionality. URL: http://xapian.org/ Version: 1.2.21 Cflags: -I${includedir} Libs: -Wl,--enable-runtime-pseudo-reloc -L${libdir} -lxapian-core $ initial e-mail to O.B. -------------------------------------------- From: "Eric Lindblad" <geirfuglaps at yahoo.com> wrote: Subject: make check / xapian-core-1.2.21 / MSYS-1.0.11 To: "Olly Betts" <olly at survex.com> Date: Wednesday, August 5, 2015, 3:35 PM -------------- next part -------------- A non-text attachment was scrubbed... Name: make.check Type: application/octet-stream Size: 476074 bytes Desc: not available URL: <http://lists.xapian.org/pipermail/xapian-devel/attachments/20150807/d51da314/attachment-0002.obj>
On Fri, Aug 07, 2015 at 05:47:43AM -0700, Eric Lindblad wrote:> [I initially thought to install xapian on SFU (Interix 3.5) on MS XP > but could not compile libuuid] [getopt.h, inttypes.h, and stdint.h > taken from SUA (for Vista) and installed in SFU (Interix 3.5)]Why did you decide to use interix? My understanding was that it was rather neglected, both by MS and everyone else. If you're building with GCC (as you seem to be below), that should just work (with either mingw or cygwin). If you're wanting to build with MSVC, that worked fairly recently, albeit with a different build system, but a change of build system shouldn't require a POSIX emulation layer to be added into the mix.> If someone is inclined to write a modified libuuid and label it for > use with Interix <version(s)> to satisfy the dependency for an xapian > <version(s)> install on Interix <version(s)>, it might be of interest, > though since Windows 8.1 MS has discontinued enabling for SUA > (Interix).Can you not just use the existing UUID code which makes use of the win32 UUID API? See common/win32_uuid.{cc,h} for that.> The argument --cxxflags returning empty when xapian was installed as > [MSYS-1.0.11.exe] /usr, from g++ `xapian-config --cxxflags` > quickstartindex.cc `xapian-config --libs` -o quickstartindex, caused > me to rethink the install prefix, so I uninstalled it and reinstalled > as --prefix=/c/xapian.There's an assumption that /usr/include is on the default compiler header search path. Explicitly specifying -I/usr/include breaks "fixinclude" headers with some GCC versions - early 3.x IIRC, so probably not a problem in practice these days, but perhaps it's better to skip that test based on a platform check (under interix in particular).> $ g++ `xapian-config --cxxflags` quickstartindex.cc `xapian-config --libs` -o quickstartindex > quickstartindex.cc: In function 'int main(int, char**)': > quickstartindex.cc:34:15: error: 'exit' was not declared in this scopeThat's a generic C++ issue - quickstartindex.cc is missing a header: #include <cstdlib> We ought to just kill the quickstart examples though - examples/simple*.cc are better minimal examples.> I am surprised that -lxapian-core is listed in > /c/xapian/lib/pkgconfig/xapian-core.pcMe too - that was a contributed file, and AFAICS it can never have actually worked correctly, so presumably the contributor failed to even check it worked before sending in a patch. Thanks for noticing - fixing it git master, and I'll backport. Cheers, Olly
Seemingly Similar Threads
- xapian 1.0.x compiled on Interix / Eric Lindblad
- xapian porting to Interix / conclusion
- question / errors Interix 3.5 / xapian-core-1.2.21 / Eric Lindblad
- xapian-core-1.0.23 compiled on Interix / Eric Lindblad
- brass and chert compiled / xapian port to Interix