Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Solaris Build Error #3843

Closed
SeungJin1112 opened this issue Oct 18, 2022 · 0 comments
Closed

Solaris Build Error #3843

SeungJin1112 opened this issue Oct 18, 2022 · 0 comments

Comments

@SeungJin1112
Copy link

SeungJin1112 commented Oct 18, 2022

poco info

poco : 1.12.2-all 

system info

# uname -a
SunOS solaris10 5.10 Generic_147148-26 i86pc i386 i86pc Solaris

# gcc --version
gcc (GCC) 5.2.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# cmake --version
cmake version 3.6.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).

# make --version
make: Schily-Tools Parallel Make 1.1 solaris2.10-i386 2020/03/28
    derived from SunPro Make sources

Copyright (C) 1987-2006 Sun Microsystems
Copyright (C) 1996-2020 Joerg Schilling

error log

Building CXX object Foundation/CMakeFiles/Foundation.dir/src/Var.cpp.o

...

In file included from /export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/Var.h:26:0,
             from /export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/src/Var.cpp:15:
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/VarHolder.h:218:15: error: 
'virtual void Poco::Dynamic::VarHolder::convert(char&) const' cannot be overloaded
  virtual void convert(char& val) const;
           ^
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/VarHolder.h:138:15: error: with 'virtual void Poco::Dynamic::VarHolder::convert(Poco::Int8&) const'
  virtual void convert(Int8& val) const;
           ^
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/VarHolder.h:590:13: error: redefinition of 'void Poco::Dynamic::VarHolder::convert(char&) const'
 inline void VarHolder::convert(char& /*val*/) const

... 

In file included from /export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/src/Var.cpp:15:0:
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/Var.h: In function 'Poco::Int8 
Poco::Dynamic::operator+(const Int8&, const Poco::Dynamic::Var&)':
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/Var.h:968:19: error: redefinition of 'Poco::Int8 Poco::Dynamic::operator+(const Int8&, const Poco::Dynamic::Var&)'
inline Poco::Int8 operator + (const Poco::Int8& other, const Var& da)
               ^
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/Var.h:864:13: note: 'char 
Poco::Dynamic::operator+(const char&, const Poco::Dynamic::Var&)' previously defined here
 inline char operator + (const char& other, const Var& da)
         ^
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/Var.h: In function 'Poco::Int8 
Poco::Dynamic::operator-(const Int8&, const Poco::Dynamic::Var&)':
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/Var.h:975:19: error: redefinition of 'Poco::Int8 Poco::Dynamic::operator-(const Int8&, const Poco::Dynamic::Var&)'
 inline Poco::Int8 operator - (const Poco::Int8& other, const Var& da)
               ^
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/Var.h:871:13: note: 'char 
Poco::Dynamic::operator-(const char&, const Poco::Dynamic::Var&)' previously defined here
 inline char operator - (const char& other, const Var& da) 

...
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/Struct.h:700:7: error: 'void 
Poco::Dynamic::VarHolderImpl<Poco::Dynamic::Struct<std::__cxx11::basic_string<char>, 
tsl::ordered_map<std::__cxx11::basic_string<char>, Poco::Dynamic::Var, std::hash<std::__cxx11::basic_string<char> >, 
std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<std::__cxx11::basic_string<char>, Poco::Dynamic::Var> >, 
std::deque<std::pair<std::__cxx11::basic_string<char>, Poco::Dynamic::Var>, std::allocator<std::pair<std::__cxx11::basic_string<char>, 
Poco::Dynamic::Var> > > >, tsl::ordered_set<std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, 
std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::__cxx11::basic_string<char> >, 
std::deque<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > > > > >::convert(char&) const' cannot be overloaded
  void convert(char&) const
   ^
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/Struct.h:645:7: error: with 'void Poco::Dynamic::VarHolderImpl<Poco::Dynamic::Struct<std::__cxx11::basic_string<char>, 
tsl::ordered_map<std::__cxx11::basic_string<char>, Poco::Dynamic::Var, std::hash<std::__cxx11::basic_string<char> >, 
std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<std::__cxx11::basic_string<char>, Poco::Dynamic::Var> >, 
std::deque<std::pair<std::__cxx11::basic_string<char>, Poco::Dynamic::Var>, std::allocator<std::pair<std::__cxx11::basic_string<char>, 
Poco::Dynamic::Var> > > >, tsl::ordered_set<std::__cxx11::basic_string<char>, std::hash<std::__cxx11::basic_string<char> >, 
std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::__cxx11::basic_string<char> >, 
std::deque<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > > > > >::convert(Poco::Int8&) const'
  void convert(Int8&) const
   ^
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/Struct.h:886:7: error: 'void 
Poco::Dynamic::VarHolderImpl<Poco::Dynamic::Struct<int, tsl::ordered_map<int, Poco::Dynamic::Var, std::hash<int>, std::equal_to<int>, 
std::allocator<std::pair<int, Poco::Dynamic::Var> >, std::deque<std::pair<int, Poco::Dynamic::Var>, std::allocator<std::pair<int, 
Poco::Dynamic::Var> > > >, tsl::ordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int>, std::deque<int, 
std::allocator<int> > > > >::convert(char&) const' cannot be overloaded
  void convert(char&) const
   ^
/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/Foundation/include/Poco/Dynamic/Struct.h:831:7: error: with 
'void Poco::Dynamic::VarHolderImpl<Poco::Dynamic::Struct<int, tsl::ordered_map<int, Poco::Dynamic::Var, std::hash<int>, 
std::equal_to<int>, std::allocator<std::pair<int, Poco::Dynamic::Var> >, std::deque<std::pair<int, Poco::Dynamic::Var>, 
std::allocator<std::pair<int, Poco::Dynamic::Var> > > >, tsl::ordered_set<int, std::hash<int>, std::equal_to<int>, std::allocator<int>, 
std::deque<int, std::allocator<int> > > > >::convert(Poco::Int8&) const'
  void convert(Int8&) const
   ^
gmake[2]: *** [Foundation/CMakeFiles/Foundation.dir/build.make:3663: Foundation/CMakeFiles/Foundation.dir/src/Var.cpp.o] Error 1
gmake[2]: Leaving directory '/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/cmake-build'
gmake[1]: *** [CMakeFiles/Makefile2:118: Foundation/CMakeFiles/Foundation.dir/all] Error 2
gmake[1]: Leaving directory '/export/home/-/poco/solaris-poco/poco-poco-1.12.2-release/cmake-build'
gmake: *** [Makefile:150: all] Error 2

Same error with Solaris 11.3

bas524 added a commit to bas524/poco that referenced this issue Feb 4, 2023
changes in Types.h allow ignore problem with declaration of std::int8_t. int8_t can be defined as char or signed char. IMHO we need strong types for Poco::Int's

Envelop.cpp contains initializer for EVP_CIPHER_CTX_init, because this function prototype depends on openssl version.

Application.cpp contains includes especial for SOLARIS, for ioctl support

ClassLoaderTest.cpp and SharedLibraryTest.cpp contains changes because loadlibrary(dlopen) doesn't load library from current directory by default

LocalDateTimeTest.cpp contains changes because SOLARIS use std::tm without tm_gmtoff
aleks-f added a commit that referenced this issue Nov 27, 2023
* try fix compilation for solaris

* this commit for issue #3843 and #3643
changes in Types.h allow ignore problem with declaration of std::int8_t. int8_t can be defined as char or signed char. IMHO we need strong types for Poco::Int's

Envelop.cpp contains initializer for EVP_CIPHER_CTX_init, because this function prototype depends on openssl version.

Application.cpp contains includes especial for SOLARIS, for ioctl support

ClassLoaderTest.cpp and SharedLibraryTest.cpp contains changes because loadlibrary(dlopen) doesn't load library from current directory by default

LocalDateTimeTest.cpp contains changes because SOLARIS use std::tm without tm_gmtoff

* fix : define of SOLARIOS OS in LocalDateTimeTest

* remove unnecessary wrapper

* fix output dir for windows build with multi-config build

* try to fix bug with unixodbc version in linux-builds
[read here](microsoft/linux-package-repositories#36)

* try to fix bug with unixodbc version in linux-builds
[read here](microsoft/linux-package-repositories#36)

* fix : warning in main cmake for if-condition for multi-config build
fix : error for linux-gcc-make-cxx20, use --allow-downgrades for unixodbc

* fix : warning for cmake windows builds
revert changes for linux-gcc-make-cxx20

* revert ci.yml, remove unixodbc version

* try re-run build

---------

Co-authored-by: Aleksandar Fabijanic <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant