Subject | client tools only install on synology/arm ? |
---|---|
Author | jul_bsd |
Post date | 2013-01-30T19:04:34Z |
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
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
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/ccBut (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