[erlang-questions] Problems compiling RabbitMQ-C Kit on Sparc 32-bit...

18 views
Skip to first unread message

Brandish, Tom

unread,
Oct 17, 2012, 2:42:01 PM10/17/12
to erlang-q...@erlang.org

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: not using Gettext

autoreconf: running: aclocal -I m4

autoreconf: 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: installing `./config.guess'

configure.ac:29: installing `./config.sub'

configure.ac:22: installing `./install-sh'

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

  CC     examples/examples_libutils_la-utils.lo

  CC     examples/unix/examples_libutils_la-platform_utils.lo

  CCLD   examples/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

 

 

Jesper Louis Andersen

unread,
Oct 22, 2012, 11:06:03 AM10/22/12
to Brandish, Tom, erlang-q...@erlang.org

On Oct 17, 2012, at 8:42 PM, "Brandish, Tom" <tom.br...@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:
...
> 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

This looks suspiciously like you need to link with the correct type of library containing networking stuff. The implicitly declared htonll functions is also a warning sign that there is something fishy going on. Perhaps you need to do something to explicitly ask for 32 bit mode, or perhaps 32 bit mode is for backwards compatibility only and can't be used as a compilation target.

Jesper Louis Andersen
Erlang Solutions Ltd., Copenhagen



_______________________________________________
erlang-questions mailing list
erlang-q...@erlang.org
http://erlang.org/mailman/listinfo/erlang-questions
Reply all
Reply to author
Forward
0 new messages