Unknown reporter writes

I have trying with solaris studio compiler, GCC 45 GCC46, without qt without aspell,

Same result, same error: g++ -g -O2 -I. -I../aspell -I../bincimapmime -I../common -I../index -I../internfile -I../rcldb -I../unac -I../utils -g -O2 -Wall -Wno-unused -I/usr/local/lib/../include -I/usr/local/include -DRECOLL_DATADIR=\"/usr/local/share/recoll\" -DLIBDIR=\"/usr/local/lib\" -fPIC -DPIC -DHAVE_CONFIG_H -c ../utils/pathut.cpp ../utils/pathut.cpp: In member function ‘int Pidfile::flopen()’: ../utils/pathut.cpp:505:21: error: ‘LOCK_EX’ was not declared in this scope ../utils/pathut.cpp:505:31: error: ‘LOCK_NB’ was not declared in this scope ../utils/pathut.cpp:510:30: error: no matching function for call to ‘flock::flock(int&, int&)’ /usr/include/sys/fcntl.h:183:22: note: candidates are: flock::flock() /usr/include/sys/fcntl.h:183:22: note: flock::flock(const flock&) gmake[1]: * [pathut.o] Erreur 1 gmake[1] : on quitte le répertoire « /home/mricart/Downloads/recoll-1.17.1/lib » gmake: * [all] Erreur 2

Sorry my locale is french

Any idea about this problem ?

medoc writes


I had a quick look and it would seem that it is necessary to include /usr/ucbinclude/flock.h to get the definitions for the flock call. I did install Solaris in a virtual machine, but I could not find out what package this is supposed to come from, so I’m stuck. If you can make progress on this, please comment here.


argulp writes


Thanks for your interest.

remember, I’m not on solaris 10 but Solaris 11 (with other package manager) the only file found: /usr/include/sys/flock.h

and package is: INDEX ACTION VALUE PACKAGE basename file usr/include/sys/flock.h pkg:/system/header@0.5.11-

if you want some similar info for solaris 10, let me know, I can found a server.

Thanks for your help

medoc writes

I am testing on Solaris 11

/usr/include/sys/flock.h is the kernel include file, not the user interface one. The user interface apparently used to live inside /usr/usbinclude but I don’t know how to get to this.

I could probably write an fcntl()-based version of the very simple locking, but this will take a few days, I need a couple of quiet hours to do it right.

argulp writes

Hi Medoc

I have few knowledge about lib c and related things (for example I don’t understand difference between kernel include and user interface include) but I’m sure, it not exist /usr/usbinclude directory on solaris 11… or it’s part of external program Why are you thinking this file is here ? and about my test: I have added the openindiana SFE repository to have libQT4 and other c++ tools

Thanks a lot for your interesest

medoc writes

Please try the attached file as a replacement for pathut.cpp

argulp writes

Hi Medoc,

not working but error is different: ../utils/pathut.cpp: In function ‘std::vector<std::basic_string<char > > path_dirglob(const string&, std::string)’: ../utils/pathut.cpp:365:28: error: new declaration ‘std::vector<std::basic_string<char > > path_dirglob(const string&, std::string)’ ../utils/pathut.h:50:21: error: ambiguates old declaration ‘std::list<std::basic_string<char > > path_dirglob(const string&, std::string)’

more detail in the attached file

medoc writes

Sorry, I attached a file from the main branch which has some incompatible changes. Please find attached the file for 1.17. I seem to be able to compile on Solaris 11 with this file.

argulp writes

Hi Medoc

Sorry for the delay I have sucessfully compiled recoll but without any problem:

in first:ld: warning: file libbootmgmt.so.1: required by /usr/lib/libdevinfo.so.1, not found Undefined first referenced symbol in file bootmgmt_is_uefi_system /usr/lib/libdevinfo.so.1 ld: fatal: symbol referencing errors. No output written to recollindex collect2: ld returned 1 exit status gmake[1]: * [recollindex] Erreur 1 gmake[1] : on quitte le répertoire « /export/home/argulp/recoll-1.17.1/index » gmake: * [all] Erreur 2

> > > To solve it I have added a symlink between  /lib/libbootmgmt.so.1 & /usr/lib/libbootmgmt.so.1

finally building recoll extension creating build creating build/temp.solaris-2.11-i86pc-2.6 /usr/lib/python2.6/pycc -DNDEBUG -KPIC -DMAJOR_VERSION=1 -DMINOR_VERSION=0 -DUNAC_VERSION="1.0.7" -DRECOLL_DATADIR="/usr/local/share/recoll" -I/usr/local/include -I../../utils -I../../common -I../../rcldb -I../../query -I../../unac -I/usr/include/python2.6 -c pyrecoll.cpp -o build/temp.solaris-2.11-i86pc-2.6/pyrecoll.o gcc: error: unrecognized option ‘-KPIC’ error: command /usr/lib/python2.6/pycc failed with exit status 1 gmake[1]: * [all] Erreur 1 gmake[1] : on quitte le répertoire « /export/home/argulp/recoll-1.17.1/python/recoll » gmake: * [all] Erreur 2 argulp@ldapsun:~/recoll-1.17.1$ /usr/lib/python2.6/pycc -DNDEBUG -KPIC -DMAJOR_VERSION=1 -DMINOR_VERSION=0 -DUNAC_VERSION="1.0.7" -DRECOLL_DATADIR="/usr/local/share/recoll" gcc: error: unrecognized option ‘-KPIC’ gcc: fatal error: no input files compilation terminated.

Issue related to python

> > > solved after disable compilation of python module

Other issue appeared during gmake install > the script are running the solaris install executable. when some feature are not available

the solution is using the gnu install file named ginstall on Solaris (symlink to /usr/gnu/bin/install)

and now I have other issue related to recoll binary file (not correctly linked to libxapian.so.22) > resolved by simlink

Thanks a lot for your job


medoc writes

Thanks for reporting this.

I didn’t see the xapian link issues during my testing. Did you copy libxapian from another system by any chance ? I compiled mine on the same system.

I had no problem either with the Python build, nor with the install script by the way. Maybe because of my PATH:


Comes from my old solaris login script, unmodified for the last ten or 20 years, I edited out curiosities like /opt/SUNWwabi/bin … :)

So I’m closing this anyway, since the Solaris build seems to be at least workable.