Ticket #159 (closed defect: fixed)

Opened 7 years ago

Last modified 7 years ago

Unable to build RefBox on 32-bit systems

Reported by: magnus.hanses@… Owned by: tim
Priority: major Milestone:
Component: LLSF RefBox Version: 0.5.0
Keywords: Cc:
Git Branch: master

Description

I am using fedora 18 (LXDE Desktop)

I have installed all prerequisites following the instructions given in the installation section.

I tried to make both, the git repo and the latest version downloaded as tarball. In both cases i came across the same error.

Since i have followed all the instructions without complications i don't think the problem is on my end.

Here you can see the make output. It tells me that avahi is not installed.

If i use

avahi-daemon --version

i get

avahi-daemon 0.6.31
--> Entering sub-directory src ---
   --> Entering sub-directory libs ---
      --> Entering sub-directory core ---
make[6]: Nothing to be done for `all'.
         <-- Leaving core
      --> Entering sub-directory utils ---
make[6]: Nothing to be done for `all'.
         <-- Leaving utils
      --> Entering sub-directory config ---
make[6]: Nothing to be done for `all'.
         <-- Leaving config
      --> Entering sub-directory protobuf_comm ---
make[6]: Nothing to be done for `all'.
         <-- Leaving protobuf_comm
      --> Entering sub-directory logging ---
         --> Entering sub-directory llsf_log_msgs ---
make[8]: Nothing to be done for `all'.
            <-- Leaving llsf_log_msgs
         <-- Leaving logging
      --> Entering sub-directory netcomm ---
         --> Omitting mDNS/DNS-SD support (Avahi not installed)
         <-- Leaving netcomm
      --> Entering sub-directory llsf_sps ---
make[6]: Nothing to be done for `all'.
         <-- Leaving llsf_sps
      <-- Leaving libs
   --> Entering sub-directory msgs ---
make[4]: Nothing to be done for `all'.
      <-- Leaving msgs
   --> Entering sub-directory refbox ---
      --- Compiling refbox.cpp (C++)
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp: In member function ‘CLIPS::Value llsfrb::LLSFRefBox::clips_pb_field_value(void*, std::string)’:
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:522:83: error: call of overloaded ‘Value(google::protobuf::int64)’ is ambiguous
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:522:83: note: candidates are:
In file included from /usr/include/clipsmm-0.3/clipsmm/template.h:25:0,
                 from /usr/include/clipsmm-0.3/clipsmm/fact.h:26,
                 from /usr/include/clipsmm-0.3/clipsmm/environment.h:38,
                 from /usr/include/clipsmm-0.3/clipsmm.h:24,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.h:45,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:37:
/usr/include/clipsmm-0.3/clipsmm/value.h:82:3: note: CLIPS::Value::Value(const CLIPS::Value&)
/usr/include/clipsmm-0.3/clipsmm/value.h:80:3: note: CLIPS::Value::Value(void*, CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:80:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘void*’
/usr/include/clipsmm-0.3/clipsmm/value.h:77:3: note: CLIPS::Value::Value(const string&, CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:77:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘const string& {aka const std::basic_string<char>&}’
/usr/include/clipsmm-0.3/clipsmm/value.h:74:3: note: CLIPS::Value::Value(const char*, CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:74:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘const char*’
/usr/include/clipsmm-0.3/clipsmm/value.h:71:3: note: CLIPS::Value::Value(long int)
/usr/include/clipsmm-0.3/clipsmm/value.h:68:3: note: CLIPS::Value::Value(unsigned int)
/usr/include/clipsmm-0.3/clipsmm/value.h:65:3: note: CLIPS::Value::Value(int)
/usr/include/clipsmm-0.3/clipsmm/value.h:62:3: note: CLIPS::Value::Value(short unsigned int)
/usr/include/clipsmm-0.3/clipsmm/value.h:59:3: note: CLIPS::Value::Value(short int)
/usr/include/clipsmm-0.3/clipsmm/value.h:56:3: note: CLIPS::Value::Value(double)
/usr/include/clipsmm-0.3/clipsmm/value.h:53:3: note: CLIPS::Value::Value(float)
/usr/include/clipsmm-0.3/clipsmm/value.h:50:3: note: CLIPS::Value::Value(CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:50:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘CLIPS::Type’
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:544:86: error: call of overloaded ‘Value(google::protobuf::int64)’ is ambiguous
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:544:86: note: candidates are:
In file included from /usr/include/clipsmm-0.3/clipsmm/template.h:25:0,
                 from /usr/include/clipsmm-0.3/clipsmm/fact.h:26,
                 from /usr/include/clipsmm-0.3/clipsmm/environment.h:38,
                 from /usr/include/clipsmm-0.3/clipsmm.h:24,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.h:45,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:37:
/usr/include/clipsmm-0.3/clipsmm/value.h:82:3: note: CLIPS::Value::Value(const CLIPS::Value&)
/usr/include/clipsmm-0.3/clipsmm/value.h:80:3: note: CLIPS::Value::Value(void*, CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:80:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘void*’
/usr/include/clipsmm-0.3/clipsmm/value.h:77:3: note: CLIPS::Value::Value(const string&, CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:77:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘const string& {aka const std::basic_string<char>&}’
/usr/include/clipsmm-0.3/clipsmm/value.h:74:3: note: CLIPS::Value::Value(const char*, CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:74:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘const char*’
/usr/include/clipsmm-0.3/clipsmm/value.h:71:3: note: CLIPS::Value::Value(long int)
/usr/include/clipsmm-0.3/clipsmm/value.h:68:3: note: CLIPS::Value::Value(unsigned int)
/usr/include/clipsmm-0.3/clipsmm/value.h:65:3: note: CLIPS::Value::Value(int)
/usr/include/clipsmm-0.3/clipsmm/value.h:62:3: note: CLIPS::Value::Value(short unsigned int)
/usr/include/clipsmm-0.3/clipsmm/value.h:59:3: note: CLIPS::Value::Value(short int)
/usr/include/clipsmm-0.3/clipsmm/value.h:56:3: note: CLIPS::Value::Value(double)
/usr/include/clipsmm-0.3/clipsmm/value.h:53:3: note: CLIPS::Value::Value(float)
/usr/include/clipsmm-0.3/clipsmm/value.h:50:3: note: CLIPS::Value::Value(CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:50:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘CLIPS::Type’
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:546:84: error: call of overloaded ‘Value(google::protobuf::int64)’ is ambiguous
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:546:84: note: candidates are:
In file included from /usr/include/clipsmm-0.3/clipsmm/template.h:25:0,
                 from /usr/include/clipsmm-0.3/clipsmm/fact.h:26,
                 from /usr/include/clipsmm-0.3/clipsmm/environment.h:38,
                 from /usr/include/clipsmm-0.3/clipsmm.h:24,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.h:45,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:37:
/usr/include/clipsmm-0.3/clipsmm/value.h:82:3: note: CLIPS::Value::Value(const CLIPS::Value&)
/usr/include/clipsmm-0.3/clipsmm/value.h:80:3: note: CLIPS::Value::Value(void*, CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:80:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘void*’
/usr/include/clipsmm-0.3/clipsmm/value.h:77:3: note: CLIPS::Value::Value(const string&, CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:77:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘const string& {aka const std::basic_string<char>&}’
/usr/include/clipsmm-0.3/clipsmm/value.h:74:3: note: CLIPS::Value::Value(const char*, CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:74:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘const char*’
/usr/include/clipsmm-0.3/clipsmm/value.h:71:3: note: CLIPS::Value::Value(long int)
/usr/include/clipsmm-0.3/clipsmm/value.h:68:3: note: CLIPS::Value::Value(unsigned int)
/usr/include/clipsmm-0.3/clipsmm/value.h:65:3: note: CLIPS::Value::Value(int)
/usr/include/clipsmm-0.3/clipsmm/value.h:62:3: note: CLIPS::Value::Value(short unsigned int)
/usr/include/clipsmm-0.3/clipsmm/value.h:59:3: note: CLIPS::Value::Value(short int)
/usr/include/clipsmm-0.3/clipsmm/value.h:56:3: note: CLIPS::Value::Value(double)
/usr/include/clipsmm-0.3/clipsmm/value.h:53:3: note: CLIPS::Value::Value(float)
/usr/include/clipsmm-0.3/clipsmm/value.h:50:3: note: CLIPS::Value::Value(CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:50:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘CLIPS::Type’
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp: In member function ‘void llsfrb::LLSFRefBox::clips_pb_set_field(void*, std::string, CLIPS::Value)’:
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:575:44: error: conversion from ‘CLIPS::Value’ to ‘google::protobuf::int64 {aka long long int}’ is ambiguous
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:554:1: note: candidates are:
In file included from /usr/include/clipsmm-0.3/clipsmm/template.h:25:0,
                 from /usr/include/clipsmm-0.3/clipsmm/fact.h:26,
                 from /usr/include/clipsmm-0.3/clipsmm/environment.h:38,
                 from /usr/include/clipsmm-0.3/clipsmm.h:24,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.h:45,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:37:
/usr/include/clipsmm-0.3/clipsmm/value.h:112:3: note: CLIPS::Value::operator void*() const <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:112:3: note:   no known conversion for implicit ‘this’ parameter from ‘void*’ to ‘google::protobuf::int64 {aka long long int}’
/usr/include/clipsmm-0.3/clipsmm/value.h:111:3: note: CLIPS::Value::operator const char*() const <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:111:3: note:   no known conversion for implicit ‘this’ parameter from ‘const char*’ to ‘google::protobuf::int64 {aka long long int}’
/usr/include/clipsmm-0.3/clipsmm/value.h:109:3: note: CLIPS::Value::operator long int() const
/usr/include/clipsmm-0.3/clipsmm/value.h:108:3: note: CLIPS::Value::operator unsigned int() const
/usr/include/clipsmm-0.3/clipsmm/value.h:107:3: note: CLIPS::Value::operator int() const
/usr/include/clipsmm-0.3/clipsmm/value.h:106:3: note: CLIPS::Value::operator short unsigned int() const
/usr/include/clipsmm-0.3/clipsmm/value.h:105:3: note: CLIPS::Value::operator short int() const
/usr/include/clipsmm-0.3/clipsmm/value.h:104:3: note: CLIPS::Value::operator double() const
/usr/include/clipsmm-0.3/clipsmm/value.h:103:3: note: CLIPS::Value::operator float() const
In file included from /home/refbox/projects/llsf-refbox/src/refbox/refbox.h:41:0,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:37:
/usr/include/google/protobuf/message.h:472:16: error:   initializing argument 3 of ‘virtual void google::protobuf::Reflection::SetInt64(google::protobuf::Message*, const google::protobuf::FieldDescriptor*, google::protobuf::int64) const’
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp: In member function ‘void llsfrb::LLSFRefBox::clips_pb_add_list(void*, std::string, CLIPS::Value)’:
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:644:44: error: conversion from ‘CLIPS::Value’ to ‘google::protobuf::int64 {aka long long int}’ is ambiguous
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:623:1: note: candidates are:
In file included from /usr/include/clipsmm-0.3/clipsmm/template.h:25:0,
                 from /usr/include/clipsmm-0.3/clipsmm/fact.h:26,
                 from /usr/include/clipsmm-0.3/clipsmm/environment.h:38,
                 from /usr/include/clipsmm-0.3/clipsmm.h:24,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.h:45,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:37:
/usr/include/clipsmm-0.3/clipsmm/value.h:112:3: note: CLIPS::Value::operator void*() const <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:112:3: note:   no known conversion for implicit ‘this’ parameter from ‘void*’ to ‘google::protobuf::int64 {aka long long int}’
/usr/include/clipsmm-0.3/clipsmm/value.h:111:3: note: CLIPS::Value::operator const char*() const <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:111:3: note:   no known conversion for implicit ‘this’ parameter from ‘const char*’ to ‘google::protobuf::int64 {aka long long int}’
/usr/include/clipsmm-0.3/clipsmm/value.h:109:3: note: CLIPS::Value::operator long int() const
/usr/include/clipsmm-0.3/clipsmm/value.h:108:3: note: CLIPS::Value::operator unsigned int() const
/usr/include/clipsmm-0.3/clipsmm/value.h:107:3: note: CLIPS::Value::operator int() const
/usr/include/clipsmm-0.3/clipsmm/value.h:106:3: note: CLIPS::Value::operator short unsigned int() const
/usr/include/clipsmm-0.3/clipsmm/value.h:105:3: note: CLIPS::Value::operator short int() const
/usr/include/clipsmm-0.3/clipsmm/value.h:104:3: note: CLIPS::Value::operator double() const
/usr/include/clipsmm-0.3/clipsmm/value.h:103:3: note: CLIPS::Value::operator float() const
In file included from /home/refbox/projects/llsf-refbox/src/refbox/refbox.h:41:0,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:37:
/usr/include/google/protobuf/message.h:586:16: error:   initializing argument 3 of ‘virtual void google::protobuf::Reflection::AddInt64(google::protobuf::Message*, const google::protobuf::FieldDescriptor*, google::protobuf::int64) const’
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp: In member function ‘void llsfrb::LLSFRefBox::clips_pb_send(long int, void*)’:
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:697:75: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp: In member function ‘CLIPS::Values llsfrb::LLSFRefBox::clips_pb_field_list(void*, std::string)’:
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:811:65: error: call of overloaded ‘Value(google::protobuf::int64)’ is ambiguous
/home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:811:65: note: candidates are:
In file included from /usr/include/clipsmm-0.3/clipsmm/template.h:25:0,
                 from /usr/include/clipsmm-0.3/clipsmm/fact.h:26,
                 from /usr/include/clipsmm-0.3/clipsmm/environment.h:38,
                 from /usr/include/clipsmm-0.3/clipsmm.h:24,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.h:45,
                 from /home/refbox/projects/llsf-refbox/src/refbox/refbox.cpp:37:
/usr/include/clipsmm-0.3/clipsmm/value.h:82:3: note: CLIPS::Value::Value(const CLIPS::Value&)
/usr/include/clipsmm-0.3/clipsmm/value.h:80:3: note: CLIPS::Value::Value(void*, CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:80:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘void*’
/usr/include/clipsmm-0.3/clipsmm/value.h:77:3: note: CLIPS::Value::Value(const string&, CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:77:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘const string& {aka const std::basic_string<char>&}’
/usr/include/clipsmm-0.3/clipsmm/value.h:74:3: note: CLIPS::Value::Value(const char*, CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:74:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘const char*’
/usr/include/clipsmm-0.3/clipsmm/value.h:71:3: note: CLIPS::Value::Value(long int)
/usr/include/clipsmm-0.3/clipsmm/value.h:68:3: note: CLIPS::Value::Value(unsigned int)
/usr/include/clipsmm-0.3/clipsmm/value.h:65:3: note: CLIPS::Value::Value(int)
/usr/include/clipsmm-0.3/clipsmm/value.h:62:3: note: CLIPS::Value::Value(short unsigned int)
/usr/include/clipsmm-0.3/clipsmm/value.h:59:3: note: CLIPS::Value::Value(short int)
/usr/include/clipsmm-0.3/clipsmm/value.h:56:3: note: CLIPS::Value::Value(double)
/usr/include/clipsmm-0.3/clipsmm/value.h:53:3: note: CLIPS::Value::Value(float)
/usr/include/clipsmm-0.3/clipsmm/value.h:50:3: note: CLIPS::Value::Value(CLIPS::Type) <near match>
/usr/include/clipsmm-0.3/clipsmm/value.h:50:3: note:   no known conversion for argument 1 from ‘google::protobuf::int64 {aka long long int}’ to ‘CLIPS::Type’
cc1plus: all warnings being treated as errors
make[4]: *** [refbox.o] Error 1
make[3]: *** [.objs_fawkes] Error 2
make[2]: *** [refbox] Error 2
make[1]: *** [.objs_fawkes] Error 2
make: *** [src] Error 2

Change History

comment:1 Changed 7 years ago by tim

The Avahi problem is probably caused by the avahi-devel package missing. But it's not required and doesn't make a difference.

Could it be you are using a 32-bit system? I'm using a similar setup otherwise for the development of the refbox. Can you please also provide the version information on clipsmm and protobuf (output of rpm -q protobuf-devel clipsmm-devel).

If it is indeed 32-bit, do you have a chance to run it on a 64-bit system in the meantime until I fix it for 32-bit?

comment:2 Changed 7 years ago by tim

  • Status changed from new to accepted

comment:3 Changed 7 years ago by MagnusHanses

rpm -q protobuf-devel clipsmm-devel

>> protobuf-devel-2.4.1-12.fc18.i686
>> clipsmm-devel-0.3.2-1.fc18.i686

i am using a 32-bit architecture to build an run the ref-box. i will try to organize a machine that is capable of running a 64-bit system if this solves the problem. still, it would be very handy to have a 32-bit ref-box version. Many thanks for the effort!

comment:4 Changed 7 years ago by tim

Ok, thanks for the feedback. I'll get a 32-bit machine next week when back in office and will fix it. I'm pretty certain this is the issue, the package versions look ok.

comment:5 Changed 7 years ago by tim

I think I'm certain now it's 32-bit related. The problem is that clipsmm does some unfortunate type narrowing from 64 to 32 bit integers (while it seems not necessary since clips does work with 64 bit internally). This is a problem because we indeed do use 64 bit types for communication, e.g. in Time and BeaconSignal. I'm going to fix this in clipsmm and see if it works. If that doesn't work I'm going to add a workaround to the refbox. This wil be completed today or tomorrow.

comment:6 Changed 7 years ago by tim

  • Status changed from accepted to closed
  • Resolution set to fixed

The problem has been fixed in the recent git master. I will release a minor update 0.5.1 early next week. It requires clipsmm 0.3.3 (http://sf.net/p/clipsmm) to work. I have built packages for Fedora that you can download at https://koji.fedoraproject.org/koji/buildinfo?buildID=410910 or wait a few hours to get them from the updates-testing repository via

yum --enablerepo=updates-testing update clipsmm clipsmm-devel

Once it works for you please consider reporting so at https://admin.fedoraproject.org/updates/clipsmm-0.3.3-1.fc18 (will speed up release to the stable repository). I'll build new Ubuntu packages tomorrow.

comment:7 Changed 7 years ago by tim

  • Summary changed from unable to build RefBox to Unable to build RefBox on 32-bit systems

comment:8 Changed 7 years ago by tim

The Ubuntu PPA has been updated with the new clipsmm version. The Fedora package has been pushed to the testing repository and can now be updated with the command mentioned in comment:6.

Note: See TracTickets for help on using tickets.

This list contains all users that will be notified about changes made to this ticket.

These roles will be notified: Reporter, Subscriber, Participant

  • Fawkes Trac List(Always)
  • magnus.hanses@…(Reporter)
  • Tim Niemueller(Owner, Participant)