← Back to team overview

kicad-developers team mailing list archive

Re: kicad compile error on FreeBSD

 

I am sorry about that. I swear it would not have happened if I got a
single warning message from the compiler, but both clang 4.0.0 and gcc
7.1.1 had merrily compiled the code, so I have not expected such
problems. Thank you for quick reaction Jean-Pierre.

Regards,
Orson

On 02/22/2018 09:33 PM, Wayne Stambaugh wrote:
> This shouldn't have happened.  We are not c++14 project.  We are c++11
> project until it is deemed safe to move up to the next c++ standard.
> Please be more careful about this.
> 
> On 2/22/2018 3:15 PM, Jon Evans wrote:
>> Also broken on MacOS.  Hashing of enum types (and therefore using them
>> as unordered_map keys) doesn't work on all compilers until C++14.  Patch
>> attached that should fix it (tested on MacOS)
>>
>>
>>
>> On Thu, Feb 22, 2018 at 1:05 PM, Foo Barmann <foo.barmann@xxxxxxxxx
>> <mailto:foo.barmann@xxxxxxxxx>> wrote:
>>
>>     Hi,
>>     while trying to compile the current kicad sources under FreeBSD
>>     11-stable (compiler is clang 4.0) I get the attached errors:
>>
>>     The used WxGtk Packages are:
>>     py27-wxPython-common-3.0.2.0_4 GUI toolkit for the Python
>>     programming language
>>     py27-wxPython30-3.0.2.0_4      GUI toolkit for the Python
>>     programming language
>>     wx30-gtk2-3.0.2_7              The wxWidgets GUI toolkit with GTK+
>>     bindings
>>
>>     Error:
>>     ...
>>     FAILED: common/CMakeFiles/common.dir/confirm.cpp.o
>>     /usr/local/libexec/ccache/c++  -DHAVE_STDINT_H -DKICAD_SCRIPTING
>>     -DKICAD_SCRIPTING_MODULES -DKICAD_SCRIPTING_WXPYTHON -DWXUSINGDLL
>>     -DWX_COMPATIBILITY -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D__WXGTK__
>>     -Iinclude -Icommon/. -isystem
>>     /usr/local/lib/wx/include/gtk2-unicode-3.0 -isystem
>>     /usr/local/include/wx-3.0 -Icommon/./dialogs -Icommon/./widgets
>>     -Icommon/./dialog_about -I/usr/local/include/cairo
>>     -I/usr/local/include/pixman-1 -I/usr/local/include
>>     -Icommon/../3d-viewer -Icommon/../pcbnew -Icommon/../polygon -I.
>>     -I/usr/local/include/python2.7 -Iscripting -Wall -O2 -pipe
>>     -fstack-protector -fno-strict-aliasing  --std=c++11
>>     -I/wrkdirs/usr/ports/cad/kicad-devel/work/kicad-source-mirror-2e42d5c0065c2c0b4a537f48fca8746c4f61548a/include
>>     -I/usr/local/include -msse -Wno-unused-local-typedefs
>>     -Wno-strict-aliasing -pthread -Wshadow -O2 -pipe -fstack-protector
>>     -fno-strict-aliasing  --std=c++11
>>     -I/wrkdirs/usr/ports/cad/kicad-devel/work/kicad-source-mirror-2e42d5c0065c2c0b4a537f48fca8746c4f61548a/include
>>     -I/usr/local/include -msse -fPIC -fvisibility=hidden
>>     -fvisibility-inlines-hidden   -std=gnu++11 -MD -MT
>>     common/CMakeFiles/common.dir/confirm.cpp.o -MF
>>     common/CMakeFiles/common.dir/confirm.cpp.o.d -o
>>     common/CMakeFiles/common.dir/confirm.cpp.o -c common/confirm.cpp
>>     In file included from common/confirm.cpp:30:
>>     In file included from /usr/local/include/wx-3.0/wx/stockitem.h:16:
>>     In file included from /usr/local/include/wx-3.0/wx/string.h:46:
>>     In file included from /usr/local/include/wx-3.0/wx/strvararg.h:22:
>>     In file included from /usr/local/include/wx-3.0/wx/unichar.h:15:
>>     In file included from /usr/local/include/wx-3.0/wx/stringimpl.h:66:
>>     In file included from /usr/include/c++/v1/string:470:
>>     In file included from /usr/include/c++/v1/string_view:171:
>>     In file included from /usr/include/c++/v1/__string:56:
>>     In file included from /usr/include/c++/v1/algorithm:637:
>>     /usr/include/c++/v1/type_traits:1474:38: error: implicit
>>     instantiation of undefined template 'std::__1::hash<KI_DIALOG::TYPE>'
>>         : public integral_constant<bool, __is_empty(_Tp)> {};
>>                                          ^
>>     /usr/include/c++/v1/unordered_map:383:18: note: in instantiation of
>>     template class 'std::__1::is_empty<std::__1::hash<KI_DIALOG::TYPE>
>>     >' requested here
>>               bool = is_empty<_Hash>::value &&
>>     !__libcpp_is_final<_Hash>::value
>>                      ^
>>     /usr/include/c++/v1/unordered_map:765:13: note: in instantiation of
>>     default argument for '__unordered_map_hasher<KI_DIALOG::TYPE,
>>     std::__1::__hash_value_type<KI_DIALOG::TYPE, wxString>,
>>     std::__1::hash<KI_DIALOG::TYPE> >' required here
>>         typedef __unordered_map_hasher<key_type, __value_type, hasher>  
>>     __hasher;
>>                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>     common/confirm.cpp:72:46: note: in instantiation of template class
>>     'std::__1::unordered_map<KI_DIALOG::TYPE, wxString,
>>     std::__1::hash<KI_DIALOG::TYPE>,
>>     std::__1::equal_to<KI_DIALOG::TYPE>,
>>     std::__1::allocator<std::__1::pair<const KI_DIALOG::TYPE, wxString>
>>     > >' requested here
>>         const std::unordered_map<TYPE, wxString> stdTitle = {
>>                                                  ^
>>     /usr/include/c++/v1/type_traits:397:50: note: template is declared here
>>     template <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;
>>                                                      ^
>>     In file included from common/confirm.cpp:35:
>>     In file included from include/html_messagebox.h:34:
>>     In file included from
>>     include/../common/dialogs/dialog_display_info_HTML_base.h:14:
>>     In file included from include/dialog_shim.h:29:
>>     In file included from include/hashtables.h:103:
>>     In file included from /usr/include/c++/v1/unordered_map:369:
>>     /usr/include/c++/v1/__hash_table:1952:21: error: called object type
>>     'hasher' (aka 'int') is not a function or function pointer
>>         size_t __hash = hash_function()(__k);
>>                         ^~~~~~~~~~~~~~~
>>     /usr/include/c++/v1/__hash_table:1113:16: note: in instantiation of
>>     function template specialization
>>     'std::__1::__hash_table<std::__1::__hash_value_type<KI_DIALOG::TYPE,
>>     wxString>, int, std::__1::__unordered_map_equal<KI_DIALOG::TYPE,
>>     std::__1::__hash_value_type<KI_DIALOG::TYPE, wxString>,
>>     std::__1::equal_to<KI_DIALOG::TYPE>, true>,
>>     std::__1::allocator<std::__1::__hash_value_type<KI_DIALOG::TYPE,
>>     wxString> > >::__emplace_unique_key_args<KI_DIALOG::TYPE, const
>>     std::__1::pair<const KI_DIALOG::TYPE, wxString> &>' requested here
>>             return __emplace_unique_key_args(_NodeTypes::__get_key(__x),
>>     __x);
>>                    ^
>>     /usr/include/c++/v1/unordered_map:1414:18: note: in instantiation of
>>     member function
>>     'std::__1::__hash_table<std::__1::__hash_value_type<KI_DIALOG::TYPE,
>>     wxString>, int, std::__1::__unordered_map_equal<KI_DIALOG::TYPE,
>>     std::__1::__hash_value_type<KI_DIALOG::TYPE, wxString>,
>>     std::__1::equal_to<KI_DIALOG::TYPE>, true>,
>>     std::__1::allocator<std::__1::__hash_value_type<KI_DIALOG::TYPE,
>>     wxString> > >::__insert_unique' requested here
>>             __table_.__insert_unique(*__first);
>>                      ^
>>     /usr/include/c++/v1/unordered_map:1332:5: note: in instantiation of
>>     function template specialization
>>     'std::__1::unordered_map<KI_DIALOG::TYPE, wxString,
>>     std::__1::hash<KI_DIALOG::TYPE>,
>>     std::__1::equal_to<KI_DIALOG::TYPE>,
>>     std::__1::allocator<std::__1::pair<const KI_DIALOG::TYPE, wxString>
>>     > >::insert<const std::__1::pair<const KI_DIALOG::TYPE, wxString>
>>     *>' requested here
>>         insert(__il.begin(), __il.end());
>>         ^
>>     common/confirm.cpp:77:53: note: in instantiation of member function
>>     'std::__1::unordered_map<KI_DIALOG::TYPE, wxString,
>>     std::__1::hash<KI_DIALOG::TYPE>,
>>     std::__1::equal_to<KI_DIALOG::TYPE>,
>>     std::__1::allocator<std::__1::pair<const KI_DIALOG::TYPE, wxString>
>>     > >::unordered_map' requested here
>>         const std::unordered_map<TYPE, wxArtID> icons = {
>>                                                         ^
>>     In file included from common/confirm.cpp:35:
>>     In file included from include/html_messagebox.h:34:
>>     In file included from
>>     include/../common/dialogs/dialog_display_info_HTML_base.h:14:
>>     In file included from include/dialog_shim.h:29:
>>     In file included from include/hashtables.h:103:
>>     In file included from /usr/include/c++/v1/unordered_map:369:
>>     /usr/include/c++/v1/__hash_table:2203:21: error: called object type
>>     'hasher' (aka 'int') is not a function or function pointer
>>         size_t __hash = hash_function()(__k);
>>                         ^~~~~~~~~~~~~~~
>>     /usr/include/c++/v1/unordered_map:1114:69: note: in instantiation of
>>     function template specialization
>>     'std::__1::__hash_table<std::__1::__hash_value_type<KI_DIALOG::TYPE,
>>     wxString>, int, std::__1::__unordered_map_equal<KI_DIALOG::TYPE,
>>     std::__1::__hash_value_type<KI_DIALOG::TYPE, wxString>,
>>     std::__1::equal_to<KI_DIALOG::TYPE>, true>,
>>     std::__1::allocator<std::__1::__hash_value_type<KI_DIALOG::TYPE,
>>     wxString> > >::find<KI_DIALOG::TYPE>' requested here
>>         const_iterator find(const key_type& __k) const {return
>>     __table_.find(__k);}
>>                                                                         ^
>>     /usr/include/c++/v1/unordered_map:1468:26: note: in instantiation of
>>     member function 'std::__1::unordered_map<KI_DIALOG::TYPE, wxString,
>>     std::__1::hash<KI_DIALOG::TYPE>,
>>     std::__1::equal_to<KI_DIALOG::TYPE>,
>>     std::__1::allocator<std::__1::pair<const KI_DIALOG::TYPE, wxString>
>>     > >::find' requested here
>>         const_iterator __i = find(__k);
>>                              ^
>>     common/confirm.cpp:92:49: note: in instantiation of member function
>>     'std::__1::unordered_map<KI_DIALOG::TYPE, wxString,
>>     std::__1::hash<KI_DIALOG::TYPE>,
>>     std::__1::equal_to<KI_DIALOG::TYPE>,
>>     std::__1::allocator<std::__1::pair<const KI_DIALOG::TYPE, wxString>
>>     > >::at' requested here
>>                     wxArtProvider::GetBitmap( icons.at
>>     <http://icons.at>( aType ), wxART_CMN_DIALOG ) );
>>                                                     ^
>>     3 errors generated.
>>     [63/1070] /usr/local/libexec/ccache/c++  -DHAVE_STDINT_H
>>     -DKICAD_SCRIPTING -DKICAD_SCRIPTING_MODULES
>>     -DKICAD_SCRIPTING_WXPYTHON -DWXUSINGDLL -DWX_COMPATIBILITY
>>     -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D__WXGTK__ -DPCBNEW -Iinclude
>>     -Icommon/. -isystem /usr/local/lib/wx/include/gtk2-unicode-3.0
>>     -isystem /usr/local/include/wx-3.0 -Icommon/./dialogs
>>     -Icommon/./widgets -Icommon/./dialog_about
>>     -I/usr/local/include/cairo -I/usr/local/include/pixman-1
>>     -I/usr/local/include -Icommon/../3d-viewer -Icommon/../pcbnew
>>     -Icommon/../polygon -I. -I/usr/local/include/python2.7 -Iscripting
>>     -Wall -O2 -pipe -fstack-protector -fno-strict-aliasing  --std=c++11
>>     -I/wrkdirs/usr/ports/cad/kicad-devel/work/kicad-source-mirror-2e42d5c0065c2c0b4a537f48fca8746c4f61548a/include
>>     -I/usr/local/include -msse -Wno-unused-local-typedefs
>>     -Wno-strict-aliasing -pthread -Wshadow -O2 -pipe -fstack-protector
>>     -fno-strict-aliasing  --std=c++11
>>     -I/wrkdirs/usr/ports/cad/kicad-devel/work/kicad-source-mirror-2e42d5c0065c2c0b4a537f48fca8746c4f61548a/include
>>     -I/usr/local/include -msse -fPIC -fvisibility=hidden
>>     -fvisibility-inlines-hidden   -std=gnu++11 -MD -MT
>>     common/CMakeFiles/pcbcommon.dir/widgets/widget_net_selector.cpp.o
>>     -MF
>>     common/CMakeFiles/pcbcommon.dir/widgets/widget_net_selector.cpp.o.d
>>     -o common/CMakeFiles/pcbcommon.dir/widgets/widget_net_selector.cpp.o
>>     -c common/widgets/widget_net_selector.cpp
>>     [64/1070] /usr/local/libexec/ccache/c++  -DHAVE_STDINT_H
>>     -DKICAD_SCRIPTING -DKICAD_SCRIPTING_MODULES
>>     -DKICAD_SCRIPTING_WXPYTHON -DWXUSINGDLL -DWX_COMPATIBILITY
>>     -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D__WXGTK__ -Iinclude
>>     -Icommon/. -isystem /usr/local/lib/wx/include/gtk2-unicode-3.0
>>     -isystem /usr/local/include/wx-3.0 -Icommon/./dialogs
>>     -Icommon/./widgets -Icommon/./dialog_about
>>     -I/usr/local/include/cairo -I/usr/local/include/pixman-1
>>     -I/usr/local/include -Icommon/../3d-viewer -Icommon/../pcbnew
>>     -Icommon/../polygon -I. -I/usr/local/include/python2.7 -Iscripting
>>     -Wall -O2 -pipe -fstack-protector -fno-strict-aliasing  --std=c++11
>>     -I/wrkdirs/usr/ports/cad/kicad-devel/work/kicad-source-mirror-2e42d5c0065c2c0b4a537f48fca8746c4f61548a/include
>>     -I/usr/local/include -msse -Wno-unused-local-typedefs
>>     -Wno-strict-aliasing -pthread -Wshadow -O2 -pipe -fstack-protector
>>     -fno-strict-aliasing  --std=c++11
>>     -I/wrkdirs/usr/ports/cad/kicad-devel/work/kicad-source-mirror-2e42d5c0065c2c0b4a537f48fca8746c4f61548a/include
>>     -I/usr/local/include -msse -fPIC -fvisibility=hidden
>>     -fvisibility-inlines-hidden   -std=gnu++11 -MD -MT
>>     common/CMakeFiles/common.dir/draw_frame.cpp.o -MF
>>     common/CMakeFiles/common.dir/draw_frame.cpp.o.d -o
>>     common/CMakeFiles/common.dir/draw_frame.cpp.o -c common/draw_frame.cpp
>>     [65/1070] /usr/local/libexec/ccache/c++  -DHAVE_STDINT_H
>>     -DKICAD_SCRIPTING -DKICAD_SCRIPTING_MODULES
>>     -DKICAD_SCRIPTING_WXPYTHON -DWXUSINGDLL -DWX_COMPATIBILITY
>>     -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D__WXGTK__ -Iinclude
>>     -Icommon/. -isystem /usr/local/lib/wx/include/gtk2-unicode-3.0
>>     -isystem /usr/local/include/wx-3.0 -Icommon/./dialogs
>>     -Icommon/./widgets -Icommon/./dialog_about
>>     -I/usr/local/include/cairo -I/usr/local/include/pixman-1
>>     -I/usr/local/include -Icommon/../3d-viewer -Icommon/../pcbnew
>>     -Icommon/../polygon -I. -I/usr/local/include/python2.7 -Iscripting
>>     -Wall -O2 -pipe -fstack-protector -fno-strict-aliasing  --std=c++11
>>     -I/wrkdirs/usr/ports/cad/kicad-devel/work/kicad-source-mirror-2e42d5c0065c2c0b4a537f48fca8746c4f61548a/include
>>     -I/usr/local/include -msse -Wno-unused-local-typedefs
>>     -Wno-strict-aliasing -pthread -Wshadow -O2 -pipe -fstack-protector
>>     -fno-strict-aliasing  --std=c++11
>>     -I/wrkdirs/usr/ports/cad/kicad-devel/work/kicad-source-mirror-2e42d5c0065c2c0b4a537f48fca8746c4f61548a/include
>>     -I/usr/local/include -msse -fPIC -fvisibility=hidden
>>     -fvisibility-inlines-hidden   -std=gnu++11 -MD -MT
>>     common/CMakeFiles/common.dir/draw_panel.cpp.o -MF
>>     common/CMakeFiles/common.dir/draw_panel.cpp.o.d -o
>>     common/CMakeFiles/common.dir/draw_panel.cpp.o -c common/draw_panel.cpp
>>     ninja: build stopped: subcommand failed.
>>     ===> Compilation failed unexpectedly.
>>     Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the
>>     failure to
>>     the maintainer.
>>     *** Error code 1
>>
>>     Stop.
>>
>>
>>     _______________________________________________
>>     Mailing list: https://launchpad.net/~kicad-developers
>>     <https://launchpad.net/~kicad-developers>
>>     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>>     Unsubscribe : https://launchpad.net/~kicad-developers
>>     <https://launchpad.net/~kicad-developers>
>>     More help   : https://help.launchpad.net/ListHelp
>>     <https://help.launchpad.net/ListHelp>
>>
>>
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>>
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 


Follow ups

References