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

Reply via email to