You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Andreas Welchlin <an...@welchlin.de> on 2014/09/22 15:47:46 UTC

qpid-0.28 - Linker Problem on Solaris

Hi List,

I tried to compile qpid-0.28 on Solaris (uname -a prints: SunOS solaris 
5.11 11.2 i86pc i386 i86pc).


First I amended and compiled proton 0.7 which worked fine. I would like 
to share this but first I want to do some tests using QPID.

Afterwards I tried to compile qpid-0.28:

1.) I called
cmake ..

The output of 'cmake ..' is found at the end of this mail.

2.) I called 'make clean all' and the output is
[  0%] Building CXX object 
src/CMakeFiles/qpidtypes.dir/qpid/types/Exception.cpp.o
[  0%] Building CXX object 
src/CMakeFiles/qpidtypes.dir/qpid/types/Uuid.cpp.o
[  1%] Building CXX object 
src/CMakeFiles/qpidtypes.dir/qpid/types/Variant.cpp.o
Linking CXX shared library libqpidtypes.so
ld: fatal: unrecognized option '--'
ld: fatal: use the '-z help' option for usage information
collect2: error: ld returned 1 exit status
*** Error code 1
The following command caused the error:
cd /export/home/noname/install/qpid-0.28/cpp/build/src && /usr/bin/cmake 
-E cmake_link_script CMakeFiles/qpidtypes.dir/link.txt --verbose=
make: Fatal error: Command failed for target `src/libqpidtypes.so.1.0.0'
Current working directory /export/home/noname/install/qpid-0.28/cpp/build
*** Error code 1
The following command caused the error:
make -f src/CMakeFiles/qpidtypes.dir/build.make 
src/CMakeFiles/qpidtypes.dir/build
make: Fatal error: Command failed for target 
`src/CMakeFiles/qpidtypes.dir/all'
Current working directory /export/home/noname/install/qpid-0.28/cpp/build
*** Error code 1
The following command caused the error:
make -f CMakeFiles/Makefile2 all
make: Fatal error: Command failed for target `all'


3.) I tried it with the Gnu Linker by calling:

export LD_ALTEXEC=/usr/bin/gld
make clean all

The output was:

[  0%] Building CXX object 
src/CMakeFiles/qpidtypes.dir/qpid/types/Exception.cpp.o
[  0%] Building CXX object 
src/CMakeFiles/qpidtypes.dir/qpid/types/Uuid.cpp.o
[  1%] Building CXX object 
src/CMakeFiles/qpidtypes.dir/qpid/types/Variant.cpp.o
Linking CXX shared library libqpidtypes.so
/usr/bin/gld: anonymous version tag cannot be combined with other 
version tags
collect2: error: ld returned 1 exit status
*** Error code 1
The following command caused the error:
cd /export/home/noname/install/qpid-0.28/cpp/build/src && /usr/bin/cmake 
-E cmake_link_script CMakeFiles/qpidtypes.dir/link.txt --verbose=
make: Fatal error: Command failed for target `src/libqpidtypes.so.1.0.0'
Current working directory /export/home/noname/install/qpid-0.28/cpp/build
*** Error code 1
The following command caused the error:
make -f src/CMakeFiles/qpidtypes.dir/build.make 
src/CMakeFiles/qpidtypes.dir/build
make: Fatal error: Command failed for target 
`src/CMakeFiles/qpidtypes.dir/all'
Current working directory /export/home/noname/install/qpid-0.28/cpp/build
*** Error code 1
The following command caused the error:
make -f CMakeFiles/Makefile2 all
make: Fatal error: Command failed for target `all'



Is there anyone who managed to link correctly on Solaris? Any hints?

Regards,
Andreas


--------------- output of 'cmake ..' 
--------------------------------------------------
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found PythonInterp: /usr/bin/python (found version "2.6.8")
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-e:1: Use RbConfig instead of obsolete and deprecated Config.
-- Found Ruby: /usr/bin/ruby (found version "1.9.1")
-- Found Doxygen: /usr/bin/doxygen
-- Could NOT find VALGRIND (missing:  VALGRIND_EXECUTABLE)
-- Looking for sasl_checkpass in sasl2
-- Looking for sasl_checkpass in sasl2 - not found
-- Looking for include files FOUND_SASL_H
-- Looking for include files FOUND_SASL_H - found
-- Could NOT find SASL (missing:  FOUND_SASL_LIB)
-- No need to generate AMQP protocol sources
-- No need to generate Qpid Management Framework sources
-- Boost version: 1.56.0
-- Found the following Boost libraries:
--   program_options
--   system
-- Looking for clock_gettime
-- Looking for clock_gettime - found
-- Looking for uuid_generate in uuid
-- Looking for uuid_generate in uuid - found
-- Looking for include files HAVE_UUID_H
-- Looking for include files HAVE_UUID_H - found
-- Looking for include files HAVE_SDT
-- Looking for include files HAVE_SDT - found
-- Looking for include files HAVE_POLL
-- Looking for include files HAVE_POLL - found
-- Looking for include files HAVE_EPOLL
-- Looking for include files HAVE_EPOLL - not found.
-- checking for module 'nss'
--   found nss, version 3.14.3
-- Looking for _init in xerces-c
-- Looking for _init in xerces-c - not found
-- Looking for C++ include xercesc/framework/MemBufInputSource.hpp
-- Looking for C++ include xercesc/framework/MemBufInputSource.hpp - not 
found
-- Looking for C++ include xqilla/xqilla-simple.hpp
-- Looking for C++ include xqilla/xqilla-simple.hpp - not found
-- Looking for C++ include xqilla/ast/XQEffectiveBooleanValue.hpp
-- Looking for C++ include xqilla/ast/XQEffectiveBooleanValue.hpp - not 
found
-- Looking for ibv_create_qp in ibverbs
-- Looking for ibv_create_qp in ibverbs - not found
-- Looking for rdma_create_id in rdmacm
-- Looking for rdma_create_id in rdmacm - not found
-- Looking for include files HAVE_IBVERBS_H
-- Looking for include files HAVE_IBVERBS_H - not found.
-- Looking for include files HAVE_RDMACM_H
-- Looking for include files HAVE_RDMACM_H - not found.
-- Found Proton: 
optimized;/usr/lib/libqpid-proton.so;debug;/usr/lib/libqpid-proton.so 
(found version "0.7")
-- Qpid proton found, amqp 1.0 support enabled
-- Looking for LOG_AUTHPRIV
-- Looking for LOG_AUTHPRIV - not found.
-- Looking for LOG_FTP
-- Looking for LOG_FTP - not found.
-- Found BerkeleyDB: /usr/lib/libdb_cxx.so
-- Looking for io_queue_init in aio
-- Looking for io_queue_init in aio - not found
-- Looking for include files HAVE_AIO_H
-- Looking for include files HAVE_AIO_H - not found.
-- Legacystore requires libaio which is absent.
-- Legacystore requires libaio.h which is absent.
-- Legacystore is excluded from build.
-- Found BerkeleyDB: /usr/lib/libdb_cxx.so
-- Linearstore requires libaio which is absent.
-- Linearstore requires libaio.h which is absent.
-- Linearstore is excluded from build.
-- Could NOT find SWIG (missing:  SWIG_EXECUTABLE SWIG_DIR)
-- Configuring done
-- Generating done
-- Build files have been written to: 
/export/home/noname/install/qpid-0.28/cpp/build
------------------------------------ end output of cmake .. 
------------------------------------------------------




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: qpid-0.28 - Linker Problem on Solaris

Posted by Andreas Welchlin <an...@welchlin.de>.
Hi Andrew,

cool, thanks!  I will open a Jira and provide my changes.

I had to copy some stuff (without any changes) from 
qpid/posix/SystemInfo.cpp to qpid/solaris/SystemInfo.cpp.

The qpidd ist running now on Solaris and the testprogram "qpid-ping" is 
running without any problem. I can also add topics and queues
using qpid-config.

Unfortunately "make test" fails completely and I will have to dig into 
this, but I will do it a bit later.

Regards,
Andreas


Am 23.09.2014 um 17:49 schrieb Andrew Stitcher:
> On Tue, 2014-09-23 at 13:16 +0200, Andreas Welchlin wrote:
>> Hi All,
>>
>> I can answer my own question, now:
>>
>> On SunOs (at least on my machine) this does not work:
>>
>> /usr/bin/gcc  -fPIC -fno-visibility-inlines-hidden -fvisibility=hidden
>> -Wl,--version-script=/export/home/noname/install/qpid-0.28_tmptest/cpp/src/qpid.linkmap
>> -shared  -Wl,-hlibqpidtypes.so.1 -o libqpidtypes.so.1.0.0
>> CMakeFiles/qpidtypes.dir/qpid/types/Exception.cpp.o
>> CMakeFiles/qpidtypes.dir/qpid/types/Uuid.cpp.o
>> CMakeFiles/qpidtypes.dir/qpid/types/Variant.cpp.o  -L/usr/local/lib
>> -L/usr/lib/mps -luuid -Wl,-R/usr/local/lib:/usr/lib/mps
>>
>> The problem is:
>> "-Wl,--version-script=/export/home/noname/install/qpid-0.28_tmptest/cpp/src/qpid.linkmap"
> Thank you for doing the work to discover this. It will be easiest to get
> this change into qpid if you create a JIRA
> (https://issues.apache.org/jira) and attach a patch to it. If you assign
> it to me I'll get the change in for 0.32.
>
> Andrew
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
> For additional commands, e-mail: users-help@qpid.apache.org
>



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: qpid-0.28 - Linker Problem on Solaris

Posted by Andrew Stitcher <as...@redhat.com>.
On Tue, 2014-09-23 at 13:16 +0200, Andreas Welchlin wrote:
> Hi All,
> 
> I can answer my own question, now:
> 
> On SunOs (at least on my machine) this does not work:
> 
> /usr/bin/gcc  -fPIC -fno-visibility-inlines-hidden -fvisibility=hidden 
> -Wl,--version-script=/export/home/noname/install/qpid-0.28_tmptest/cpp/src/qpid.linkmap 
> -shared  -Wl,-hlibqpidtypes.so.1 -o libqpidtypes.so.1.0.0 
> CMakeFiles/qpidtypes.dir/qpid/types/Exception.cpp.o 
> CMakeFiles/qpidtypes.dir/qpid/types/Uuid.cpp.o 
> CMakeFiles/qpidtypes.dir/qpid/types/Variant.cpp.o  -L/usr/local/lib 
> -L/usr/lib/mps -luuid -Wl,-R/usr/local/lib:/usr/lib/mps
> 
> The problem is:  
> "-Wl,--version-script=/export/home/noname/install/qpid-0.28_tmptest/cpp/src/qpid.linkmap"

Thank you for doing the work to discover this. It will be easiest to get
this change into qpid if you create a JIRA
(https://issues.apache.org/jira) and attach a patch to it. If you assign
it to me I'll get the change in for 0.32.

Andrew



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: qpid-0.28 - Linker Problem on Solaris

Posted by Andreas Welchlin <an...@welchlin.de>.
Hi All,

I can answer my own question, now:

On SunOs (at least on my machine) this does not work:

/usr/bin/gcc  -fPIC -fno-visibility-inlines-hidden -fvisibility=hidden 
-Wl,--version-script=/export/home/noname/install/qpid-0.28_tmptest/cpp/src/qpid.linkmap 
-shared  -Wl,-hlibqpidtypes.so.1 -o libqpidtypes.so.1.0.0 
CMakeFiles/qpidtypes.dir/qpid/types/Exception.cpp.o 
CMakeFiles/qpidtypes.dir/qpid/types/Uuid.cpp.o 
CMakeFiles/qpidtypes.dir/qpid/types/Variant.cpp.o  -L/usr/local/lib 
-L/usr/lib/mps -luuid -Wl,-R/usr/local/lib:/usr/lib/mps

The problem is:  
"-Wl,--version-script=/export/home/noname/install/qpid-0.28_tmptest/cpp/src/qpid.linkmap"

So the following needs to be inserted into cpp/src/CMakeLists.txt:

184     if (GCC_VERSION VERSION_EQUAL 4.1.2)
  185      message (STATUS "Cannot restrict library symbol export on gcc 
4.1.2")
  186      set (HIDE_SYMBOL_FLAGS "-fno-visibility-inlines-hidden")
  187    else (GCC_VERSION VERSION_EQUAL 4.1.2)
  188      set (HIDE_SYMBOL_FLAGS "-fno-visibility-inlines-hidden 
-fvisibility=hidden")
  189      set (QPID_LINKMAP ${CMAKE_CURRENT_SOURCE_DIR}/qpid.linkmap)
  190
  191 # --------------------- the following three lines need to be 
inserted for Solaris
  192      if (NOT CMAKE_SYSTEM_NAME STREQUAL SunOS)
  193          set (LINK_VERSION_SCRIPT_FLAG 
"-Wl,--version-script=${QPID_LINKMAP}")
  194      endif (NOT CMAKE_SYSTEM_NAME STREQUAL SunOS)
  195
  196    endif (GCC_VERSION VERSION_EQUAL 4.1.2)


Please could someone insert these lines into CMakeLists in the repository?

Regards,
Andreas

PS: If you want to be able to test on Solaris - it is pretty ease to use 
a predefined virtual machine which is available on the Oracle homepage.


Am 22.09.2014 um 15:47 schrieb Andreas Welchlin:
> Hi List,
>
> I tried to compile qpid-0.28 on Solaris (uname -a prints: SunOS 
> solaris 5.11 11.2 i86pc i386 i86pc).
>
>
> First I amended and compiled proton 0.7 which worked fine. I would 
> like to share this but first I want to do some tests using QPID.
>
> Afterwards I tried to compile qpid-0.28:
>
> 1.) I called
> cmake ..
>
> The output of 'cmake ..' is found at the end of this mail.
>
> 2.) I called 'make clean all' and the output is
> [  0%] Building CXX object 
> src/CMakeFiles/qpidtypes.dir/qpid/types/Exception.cpp.o
> [  0%] Building CXX object 
> src/CMakeFiles/qpidtypes.dir/qpid/types/Uuid.cpp.o
> [  1%] Building CXX object 
> src/CMakeFiles/qpidtypes.dir/qpid/types/Variant.cpp.o
> Linking CXX shared library libqpidtypes.so
> ld: fatal: unrecognized option '--'
> ld: fatal: use the '-z help' option for usage information
> collect2: error: ld returned 1 exit status
> *** Error code 1
> The following command caused the error:
> cd /export/home/noname/install/qpid-0.28/cpp/build/src && 
> /usr/bin/cmake -E cmake_link_script CMakeFiles/qpidtypes.dir/link.txt 
> --verbose=
> make: Fatal error: Command failed for target `src/libqpidtypes.so.1.0.0'
> Current working directory /export/home/noname/install/qpid-0.28/cpp/build
> *** Error code 1
> The following command caused the error:
> make -f src/CMakeFiles/qpidtypes.dir/build.make 
> src/CMakeFiles/qpidtypes.dir/build
> make: Fatal error: Command failed for target 
> `src/CMakeFiles/qpidtypes.dir/all'
> Current working directory /export/home/noname/install/qpid-0.28/cpp/build
> *** Error code 1
> The following command caused the error:
> make -f CMakeFiles/Makefile2 all
> make: Fatal error: Command failed for target `all'
>
>
> 3.) I tried it with the Gnu Linker by calling:
>
> export LD_ALTEXEC=/usr/bin/gld
> make clean all
>
> The output was:
>
> [  0%] Building CXX object 
> src/CMakeFiles/qpidtypes.dir/qpid/types/Exception.cpp.o
> [  0%] Building CXX object 
> src/CMakeFiles/qpidtypes.dir/qpid/types/Uuid.cpp.o
> [  1%] Building CXX object 
> src/CMakeFiles/qpidtypes.dir/qpid/types/Variant.cpp.o
> Linking CXX shared library libqpidtypes.so
> /usr/bin/gld: anonymous version tag cannot be combined with other 
> version tags
> collect2: error: ld returned 1 exit status
> *** Error code 1
> The following command caused the error:
> cd /export/home/noname/install/qpid-0.28/cpp/build/src && 
> /usr/bin/cmake -E cmake_link_script CMakeFiles/qpidtypes.dir/link.txt 
> --verbose=
> make: Fatal error: Command failed for target `src/libqpidtypes.so.1.0.0'
> Current working directory /export/home/noname/install/qpid-0.28/cpp/build
> *** Error code 1
> The following command caused the error:
> make -f src/CMakeFiles/qpidtypes.dir/build.make 
> src/CMakeFiles/qpidtypes.dir/build
> make: Fatal error: Command failed for target 
> `src/CMakeFiles/qpidtypes.dir/all'
> Current working directory /export/home/noname/install/qpid-0.28/cpp/build
> *** Error code 1
> The following command caused the error:
> make -f CMakeFiles/Makefile2 all
> make: Fatal error: Command failed for target `all'
>
>
>
> Is there anyone who managed to link correctly on Solaris? Any hints?
>
> Regards,
> Andreas
>
>
> --------------- output of 'cmake ..' 
> --------------------------------------------------
> -- The C compiler identification is GNU
> -- The CXX compiler identification is GNU
> -- Check for working C compiler: /usr/bin/gcc
> -- Check for working C compiler: /usr/bin/gcc -- works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Check for working CXX compiler: /usr/bin/c++
> -- Check for working CXX compiler: /usr/bin/c++ -- works
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Found PythonInterp: /usr/bin/python (found version "2.6.8")
> -e:1: Use RbConfig instead of obsolete and deprecated Config.
> -e:1: Use RbConfig instead of obsolete and deprecated Config.
> -e:1: Use RbConfig instead of obsolete and deprecated Config.
> -e:1: Use RbConfig instead of obsolete and deprecated Config.
> -e:1: Use RbConfig instead of obsolete and deprecated Config.
> -e:1: Use RbConfig instead of obsolete and deprecated Config.
> -e:1: Use RbConfig instead of obsolete and deprecated Config.
> -e:1: Use RbConfig instead of obsolete and deprecated Config.
> -e:1: Use RbConfig instead of obsolete and deprecated Config.
> -e:1: Use RbConfig instead of obsolete and deprecated Config.
> -- Found Ruby: /usr/bin/ruby (found version "1.9.1")
> -- Found Doxygen: /usr/bin/doxygen
> -- Could NOT find VALGRIND (missing:  VALGRIND_EXECUTABLE)
> -- Looking for sasl_checkpass in sasl2
> -- Looking for sasl_checkpass in sasl2 - not found
> -- Looking for include files FOUND_SASL_H
> -- Looking for include files FOUND_SASL_H - found
> -- Could NOT find SASL (missing:  FOUND_SASL_LIB)
> -- No need to generate AMQP protocol sources
> -- No need to generate Qpid Management Framework sources
> -- Boost version: 1.56.0
> -- Found the following Boost libraries:
> --   program_options
> --   system
> -- Looking for clock_gettime
> -- Looking for clock_gettime - found
> -- Looking for uuid_generate in uuid
> -- Looking for uuid_generate in uuid - found
> -- Looking for include files HAVE_UUID_H
> -- Looking for include files HAVE_UUID_H - found
> -- Looking for include files HAVE_SDT
> -- Looking for include files HAVE_SDT - found
> -- Looking for include files HAVE_POLL
> -- Looking for include files HAVE_POLL - found
> -- Looking for include files HAVE_EPOLL
> -- Looking for include files HAVE_EPOLL - not found.
> -- checking for module 'nss'
> --   found nss, version 3.14.3
> -- Looking for _init in xerces-c
> -- Looking for _init in xerces-c - not found
> -- Looking for C++ include xercesc/framework/MemBufInputSource.hpp
> -- Looking for C++ include xercesc/framework/MemBufInputSource.hpp - 
> not found
> -- Looking for C++ include xqilla/xqilla-simple.hpp
> -- Looking for C++ include xqilla/xqilla-simple.hpp - not found
> -- Looking for C++ include xqilla/ast/XQEffectiveBooleanValue.hpp
> -- Looking for C++ include xqilla/ast/XQEffectiveBooleanValue.hpp - 
> not found
> -- Looking for ibv_create_qp in ibverbs
> -- Looking for ibv_create_qp in ibverbs - not found
> -- Looking for rdma_create_id in rdmacm
> -- Looking for rdma_create_id in rdmacm - not found
> -- Looking for include files HAVE_IBVERBS_H
> -- Looking for include files HAVE_IBVERBS_H - not found.
> -- Looking for include files HAVE_RDMACM_H
> -- Looking for include files HAVE_RDMACM_H - not found.
> -- Found Proton: 
> optimized;/usr/lib/libqpid-proton.so;debug;/usr/lib/libqpid-proton.so 
> (found version "0.7")
> -- Qpid proton found, amqp 1.0 support enabled
> -- Looking for LOG_AUTHPRIV
> -- Looking for LOG_AUTHPRIV - not found.
> -- Looking for LOG_FTP
> -- Looking for LOG_FTP - not found.
> -- Found BerkeleyDB: /usr/lib/libdb_cxx.so
> -- Looking for io_queue_init in aio
> -- Looking for io_queue_init in aio - not found
> -- Looking for include files HAVE_AIO_H
> -- Looking for include files HAVE_AIO_H - not found.
> -- Legacystore requires libaio which is absent.
> -- Legacystore requires libaio.h which is absent.
> -- Legacystore is excluded from build.
> -- Found BerkeleyDB: /usr/lib/libdb_cxx.so
> -- Linearstore requires libaio which is absent.
> -- Linearstore requires libaio.h which is absent.
> -- Linearstore is excluded from build.
> -- Could NOT find SWIG (missing:  SWIG_EXECUTABLE SWIG_DIR)
> -- Configuring done
> -- Generating done
> -- Build files have been written to: 
> /export/home/noname/install/qpid-0.28/cpp/build
> ------------------------------------ end output of cmake .. 
> ------------------------------------------------------
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
> For additional commands, e-mail: users-help@qpid.apache.org
>



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org