Hello to do my monitoring, I want to use a different box than the fb server, a NAS (synology) but I need only client tools (isql, gbak, ...)
On synology, it's possible to bootstrap/ipkg [1] to get more tools than normally available but sadly firebirdsql is not in repository (see probably why at the end). I have ipkg installed w autoconf, automake, bison, gcc, make, ncurses-dev and try to compile Firebird (2.5.1) autogen.sh runs in issue w different perl threading compiling options so I run directly configure # ./configure --prefix=/opt/firebird [...] The Firebird2 package has been configured with the following options: Architecture : ClassicServer Debug : disabled 64 bit I/O for 32-bit platforms : enabled Raw devices : enabled Service name : gds_db Service port : 3050 GPRE modules : c_cxx.cpp Install Dir : /opt/firebird But # make make -C gen firebird make[1]: Entering directory `/opt/tmp/Firebird-2.5.2.26539-0/gen' make -C ../extern/btyacc make[2]: Entering directory `/opt/tmp/Firebird-2.5.2.26539-0/extern/btyacc' cc -c -o closure.o closure.c make[2]: cc: Command not found I would have supposed configure to match cc and gcc. went the easy way > ln -s /opt/bin/gcc /opt/bin/cc But (2) make -C gen firebird make[1]: Entering directory `/opt/tmp/Firebird-2.5.2.26539-0/gen' (cd ..; ./src/misc/writeBuildNum.sh rebuildHeader) files are identical make boot_phase1_build make[2]: Entering directory `/opt/tmp/Firebird-2.5.2.26539-0/gen' make -j1 -f ../gen/Makefile.boot.gpre gpre_boot make[3]: Entering directory `/opt/tmp/Firebird-2.5.2.26539-0/gen' g++ -DBOOT_BUILD -I../src/include/gen -I../src/include -I../src/vulcan -DNAMESPACE=Vulcan -O3 -DNDEBUG -DLINUX -DARM -pipe -p -MMD -fPIC -fsigned-char -fmessage-length=0 -c ../src/jrd/gds.cpp -o ../temp/boot/jrd/gds.o In file included from ../src/include/../common/classes/alloc.h:43, from ../src/include/../common/classes/fb_string.h:39, from ../src/jrd/../jrd/os/path_utils.h:31, from ../src/jrd/gds.cpp:47: ../src/include/../common/classes/fb_atomic.h:521:2: error: #error AtomicCounter: implement appropriate code for your platform ! => it seems armv5tel is not supported ... no just because I missed lib atomic or atomic_ops [3] (in this case, configure should have just failed). After installing, compilation went fine. $ LDFLAGS="-L/opt/firebird/lib" CFLAGS="-I/opt/firebird/include" LIBS="-L/opt/firebird/lib" CPPFLAGS="-I/opt/firebird/include" ./configure --prefix=/opt/firebird [...] $ LDFLAGS="-L/opt/firebird/lib" CFLAGS="-I/opt/firebird/include" LIBS="-L/opt/firebird/lib" CPPFLAGS="-I/opt/firebird/include" make [...] make -j1 -f ../gen/Makefile.boot.gpre gpre_boot make[3]: Entering directory `/opt/tmp/Firebird-2.5.2.26539-0/gen' g++ -L/opt/firebird/lib -Wl,-rpath,/opt/firebird/lib -Wl,-rpath,/opt/firebird/intl ../temp/boot/jrd/dsc.o ../temp/boot/jr ../temp/boot/jrd/dsc.o: In function `DSC_convert_to_text_length(unsigned short)': dsc.cpp:(.text+0x8): undefined reference to `__gnu_mcount_nc' ../temp/boot/jrd/dsc.o: In function `DSC_make_descriptor(dsc*, unsigned short, short, unsigned short, short, short, short)': dsc.cpp:(.text+0x54): undefined reference to `__gnu_mcount_nc' ../temp/boot/jrd/dsc.o: In function `DSC_string_length(dsc const*)': dsc.cpp:(.text+0x250): undefined reference to `__gnu_mcount_nc' ../temp/boot/jrd/dsc.o: In function `dsc::getStringLength() const': dsc.cpp:(.text+0x30c): undefined reference to `__gnu_mcount_nc' ../temp/boot/jrd/dsc.o: In function `DSC_dtype_tostring(unsigned char)': dsc.cpp:(.text+0x320): undefined reference to `__gnu_mcount_nc' ../temp/boot/jrd/dsc.o:dsc.cpp:(.text+0x368): more undefined references to `__gnu_mcount_nc' follow ../temp/boot/common/fb_exception.o: In function `(anonymous namespace)::StringsBuffer::ThreadBuffer::thisThread(int)': fb_exception.cpp:(.text+0x179c): undefined reference to `pthread_kill' ../temp/boot/common/fb_exception.o: In function `Firebird::status_exception::status_exception(int const*)': fb_exception.cpp:(.text+0x17bc): undefined reference to `__gnu_mcount_nc' ../temp/boot/common/fb_exception.o: In function `Firebird::status_exception::raise(Firebird::Arg::StatusVector const&)': fb_exception.cpp:(.text+0x1818): undefined reference to `__gnu_mcount_nc' ../temp/boot/common/fb_exception.o: In function `Firebird::status_exception::raise(int const*)': fb_exception.cpp:(.text+0x187c): undefined reference to `__gnu_mcount_nc' ../temp/boot/common/fb_exception.o: In function `Firebird::status_exception::status_exception(int const*)': fb_exception.cpp:(.text+0x18cc): undefined reference to `__gnu_mcount_nc' ../temp/boot/common/fb_exception.o: In function `Firebird::makePermanentVector(int*, int)': fb_exception.cpp:(.text+0x1928): undefined reference to `__gnu_mcount_nc' ../temp/boot/common/fb_exception.o:fb_exception.cpp:(.text+0x1944): more undefined references to `__gnu_mcount_nc' follow ../temp/boot/common/classes/locks.o: In function `Firebird::Mutex::initMutexes()': locks.cpp:(.text+0x20): undefined reference to `pthread_mutexattr_init' locks.cpp:(.text+0x34): undefined reference to `pthread_mutexattr_settype' locks.cpp:(.text+0x6c): undefined reference to `pthread_mutexattr_settype' ../temp/boot/common/classes/semaphore.o: In function `Firebird::Semaphore::~Semaphore()': semaphore.cpp:(.text+0x8): undefined reference to `__gnu_mcount_nc' ../temp/boot/common/classes/semaphore.o: In function `Firebird::Semaphore::~Semaphore()': semaphore.cpp:(.text+0x2c): undefined reference to `__gnu_mcount_nc' ../temp/boot/common/classes/semaphore.o: In function `Firebird::Semaphore::mtxUnlock()': semaphore.cpp:(.text+0x50): undefined reference to `__gnu_mcount_nc' ../temp/boot/common/classes/semaphore.o: In function `Firebird::Semaphore::mtxLock()': semaphore.cpp:(.text+0x8c): undefined reference to `__gnu_mcount_nc' ../temp/boot/common/classes/semaphore.o: In function `Firebird::Semaphore::release(long)': semaphore.cpp:(.text+0xc8): undefined reference to `__gnu_mcount_nc' ../temp/boot/common/classes/semaphore.o:semaphore.cpp:(.text+0x164): more undefined references to `__gnu_mcount_nc' follow ../temp/boot/common/classes/semaphore.o: In function `Firebird::Semaphore::tryEnter(int, int)': semaphore.cpp:(.text+0x240): undefined reference to `pthread_mutex_trylock' ../temp/boot/common/classes/semaphore.o: In function `Firebird::Semaphore::init()': semaphore.cpp:(.text+0x3c0): undefined reference to `__gnu_mcount_nc' ../temp/boot/common/classes/semaphore.o: In function `Firebird::SignalSafeSemaphore::enter()': [...] advices ? and I'm not even at the point of a way to select only client tools for install. Thanks a lot. Cheers, Julien [1] http://forum.synology.com/wiki/index.php/Overview_on_modifying_the_Synology_Server,_bootstrap,_ipkg_etc [2] debian built on some arm https://buildd.debian.org/status/logs.php?pkg=firebird2.5 http://tracker.firebirdsql.org/browse/CORE-3885 fedora seems to have it to http://arm.koji.fedoraproject.org/koji/rpminfo?rpmID=91338 [3] http://www.hpl.hp.com/personal/Hans_Boehm/gc/ http://www.hpl.hp.com/research/linux/atomic_ops/using_atomic_ops.php4 seems, need manual 'make install' from dir libatomic_ops