[rabbitmq-discuss] Problems compiling RabbitMQ-C Kit on Sparc 32-bit...

Brandish, Tom tom.brandish at tekcomms.com
Thu Oct 18 17:28:08 BST 2012


Brett,

Thanks for your responses.  I created a new header file with your definitions, included it and was able to compile.

Appreciate your help.

Best Regards,
Tom Brandish

From: rabbitmq-discuss-bounces at lists.rabbitmq.com [mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Brett Cameron
Sent: Wednesday, October 17, 2012 10:15 PM
To: Discussions about RabbitMQ
Subject: Re: [rabbitmq-discuss] Problems compiling RabbitMQ-C Kit on Sparc 32-bit...

Tom,

Just thinking about it, network byte order and Solaris SPARC are both big endian, so you can probably just do something like the following (or some variant thereof):

#if defined(__sparc)
#define ntohll(x) (x)
#define htonll(x) (x)
#endif

Regards,
Brett
On Thu, Oct 18, 2012 at 11:00 AM, Brett Cameron <brett.r.cameron at gmail.com<mailto:brett.r.cameron at gmail.com>> wrote:
Tom,

I think you've got a couple of problems here. I don't have access to a 32-bit Solaris system right now to check, but first up I suspect that you might need to add something like "-lsocket -lxnet -lnsl" to the link statement. This should resolve most of the missing symbols, but my guess is that htonll() will be missing on your (I'm guessing reasonably old) system. There should be ways and means around this... I might just be able to get access to a suitable machine and have a look into it.

Brett


On Thu, Oct 18, 2012 at 10:32 AM, Brandish, Tom <tom.brandish at tekcomms.com<mailto:tom.brandish at tekcomms.com>> wrote:
Hi,

I have been able to successfully compile RabbitMQ-C on 64-bit Linux, but I am having difficulty doing so on Sparc 32-bit.  It looks I am missing some headers but with some 64-bit routines but why would I need the 64-bit stuff while compiling on a 32-bit system?

Here is my log:

aclocal: writing aclocal.m4
autoreconf: Entering directory `.'
autoreconf: configure.ac<http://configure.ac>: not using Gettext
autoreconf: running: aclocal -I m4
autoreconf: configure.ac<http://configure.ac>: tracing
autoreconf: running: libtoolize --copy
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
autoreconf: running: /uadev/scm/tbrandis/V4.0.0.4-tb/sea-partitions/local/install/sparc-sunos-solaris-9/versions/V4.0.0.TRUNK/bin/autoconf
autoreconf: running: /uadev/scm/tbrandis/V4.0.0.4-tb/sea-partitions/local/install/sparc-sunos-solaris-9/versions/V4.0.0.TRUNK/bin/autoheader
autoreconf: running: automake --add-missing --copy --no-force
configure.ac:29<http://configure.ac:29>: installing `./config.guess'
configure.ac:29<http://configure.ac:29>: installing `./config.sub'
configure.ac:22<http://configure.ac:22>: installing `./install-sh'
configure.ac:22<http://configure.ac:22>: installing `./missing'
Makefile.am: installing `./depcomp'
autoreconf: Leaving directory `.'
checking for a BSD-compatible install... /uadev/scm/tbrandis/V4.0.0.4-tb/sea-partitions/local/install/sparc-sunos-solaris-9/versions/V4.0.0.TRUNK/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /uadev/scm/tbrandis/V4.0.0.4-tb/sea-partitions/local/install/sparc-sunos-solaris-9/versions/V4.0.0.TRUNK/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /uadev/scm/tbrandis/V4.0.0.4-tb/sea-partitions/local/install/sparc-sunos-solaris-9/versions/V4.0.0.TRUNK/bin/grep
checking for egrep... /uadev/scm/tbrandis/V4.0.0.4-tb/sea-partitions/local/install/sparc-sunos-solaris-9/versions/V4.0.0.TRUNK/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking build system type... sparc-sun-solaris2.10
checking host system type... sparc-sun-solaris2.10
checking how to print strings... printf
checking for a sed that does not truncate output... /uadev/scm/tbrandis/V4.0.0.4-tb/sea-partitions/local/install/sparc-sunos-solaris-9/versions/V4.0.0.TRUNK/bin/sed
checking for fgrep... /uadev/scm/tbrandis/V4.0.0.4-tb/sea-partitions/local/install/sparc-sunos-solaris-9/versions/V4.0.0.TRUNK/bin/grep -F
checking for ld used by gcc... /sea/compilers/native/gcc-4.4.5/V1.3/bin/ld
checking if the linker (/sea/compilers/native/gcc-4.4.5/V1.3/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /sea/compilers/native/gcc-4.4.5/V1.3/bin/nm -B
checking the name lister (/sea/compilers/native/gcc-4.4.5/V1.3/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 786240
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... no
checking how to convert sparc-sun-solaris2.10 file names to sparc-sun-solaris2.10 format... func_convert_file_noop
checking how to convert sparc-sun-solaris2.10 file names to toolchain format... func_convert_file_noop
checking for /sea/compilers/native/gcc-4.4.5/V1.3/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /sea/compilers/native/gcc-4.4.5/V1.3/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/sea/compilers/native/gcc-4.4.5/V1.3/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... solaris2.10 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for gcc option to accept ISO C99... -std=gnu99
checking whether byte ordering is bigendian... yes
checking for inline... inline
checking if compiler accepts '-Wall'... yes
checking if compiler accepts '-Wextra'... yes
checking if compiler accepts '-pedantic'... yes
checking if compiler accepts '-Wstrict-prototypes'... yes
checking if compiler accepts '-Wcast-align'... yes
checking if compiler accepts '-fno-common'... yes
checking if compiler accepts '-fvisibility=hidden'... yes
checking if linker accepts '-no-undefined'... yes
checking for a Python interpreter with version >= 2.5... python
checking for python... /uadev/scm/tbrandis/V4.0.0.4-tb/sea-partitions/local/install/sparc-sunos-solaris-9/versions/V4.0.0.TRUNK/bin/python
checking for python version... 2.7
checking for python platform... sunos5
checking for python script directory... ${prefix}/lib/python2.7/site-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.7/site-packages
checking python module: json... yes
checking for popt.h... no
checking for poptGetContext in -lpopt... no
configure: creating ./config.status
config.status: creating librabbitmq.pc
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --enable-32-bit

rabbitmq-c build options:
        Host: sparc-sun-solaris2.10
        Version: 0.2.0
        64-bit: no
        Tools: no
        Documentation: no

  GEN    librabbitmq/amqp_framing.h
  GEN    librabbitmq/amqp_framing.c
make  all-am
make[1]: Entering directory `/home/spiuser/gitwa/rabbitmq-c'
  CC     librabbitmq/librabbitmq_librabbitmq_la-amqp_api.lo
In file included from librabbitmq/amqp_api.c:37:
librabbitmq/amqp_private.h: In function 'amqp_e64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'htonll'
librabbitmq/amqp_private.h: In function 'amqp_d64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'ntohll'
  CC     librabbitmq/librabbitmq_librabbitmq_la-amqp_connection.lo
In file included from librabbitmq/amqp_connection.c:37:
librabbitmq/amqp_private.h: In function 'amqp_e64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'htonll'
librabbitmq/amqp_private.h: In function 'amqp_d64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'ntohll'
librabbitmq/amqp_connection.c: In function 'amqp_send_frame':
librabbitmq/amqp_connection.c:365: warning: pointer targets in assignment differ in signedness
  CC     librabbitmq/librabbitmq_librabbitmq_la-amqp_framing.lo
In file included from librabbitmq/amqp_framing.c:38:
librabbitmq/amqp_private.h: In function 'amqp_e64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'htonll'
librabbitmq/amqp_private.h: In function 'amqp_d64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'ntohll'
  CC     librabbitmq/librabbitmq_librabbitmq_la-amqp_mem.lo
In file included from librabbitmq/amqp_mem.c:37:
librabbitmq/amqp_private.h: In function 'amqp_e64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'htonll'
librabbitmq/amqp_private.h: In function 'amqp_d64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'ntohll'
  CC     librabbitmq/librabbitmq_librabbitmq_la-amqp_socket.lo
In file included from librabbitmq/amqp_socket.c:37:
librabbitmq/amqp_private.h: In function 'amqp_e64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'htonll'
librabbitmq/amqp_private.h: In function 'amqp_d64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'ntohll'
  CC     librabbitmq/librabbitmq_librabbitmq_la-amqp_table.lo
In file included from librabbitmq/amqp_table.c:37:
librabbitmq/amqp_private.h: In function 'amqp_e64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'htonll'
librabbitmq/amqp_private.h: In function 'amqp_d64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'ntohll'
  CC     librabbitmq/librabbitmq_librabbitmq_la-amqp_url.lo
In file included from librabbitmq/amqp_url.c:37:
librabbitmq/amqp_private.h: In function 'amqp_e64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'htonll'
librabbitmq/amqp_private.h: In function 'amqp_d64':
librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'ntohll'
  CC     librabbitmq/unix/librabbitmq_librabbitmq_la-socket.lo
In file included from librabbitmq/unix/socket.c:37:
./librabbitmq/amqp_private.h: In function 'amqp_e64':
./librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'htonll'
./librabbitmq/amqp_private.h: In function 'amqp_d64':
./librabbitmq/amqp_private.h:251: warning: implicit declaration of function 'ntohll'
  CCLD   librabbitmq/librabbitmq.la<http://librabbitmq.la>
  CC     examples/examples_libutils_la-utils.lo
  CC     examples/unix/examples_libutils_la-platform_utils.lo
  CCLD   examples/libutils.la<http://libutils.la>
  CC     examples/amqp_bind.o
  CCLD   examples/amqp_bind
librabbitmq/.libs/librabbitmq.so: undefined reference to `connect'
librabbitmq/.libs/librabbitmq.so: undefined reference to `ntohll'
librabbitmq/.libs/librabbitmq.so: undefined reference to `send'
librabbitmq/.libs/librabbitmq.so: undefined reference to `freeaddrinfo'
librabbitmq/.libs/librabbitmq.so: undefined reference to `htonll'
librabbitmq/.libs/librabbitmq.so: undefined reference to `recv'
librabbitmq/.libs/librabbitmq.so: undefined reference to `setsockopt'
librabbitmq/.libs/librabbitmq.so: undefined reference to `socket'
librabbitmq/.libs/librabbitmq.so: undefined reference to `getaddrinfo'
collect2: ld returned 1 exit status


_______________________________________________
rabbitmq-discuss mailing list
rabbitmq-discuss at lists.rabbitmq.com<mailto:rabbitmq-discuss at lists.rabbitmq.com>
https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20121018/f5f1115c/attachment.htm>


More information about the rabbitmq-discuss mailing list