Re: link order
Patrick Mulder <[email protected]>
| Newsgroups | gmane.comp.gnu.gnucap.devel |
|---|---|
| Message-ID | <CAEx2pddCX0OA8ycfUgWMc1RVv6P6WW0HhcVAcPGRAmmZfNiwBw@mail.gmail.com> |
On Sat, Jun 29, 2019 at 5:20 PM Patrick Mulder <[email protected]> wrote: > hi all, > > interesting discussion to learn more on the gnucap architecture. > > On Sat, Jun 29, 2019 at 12:42 PM Felix Salfelder <[email protected]> > wrote: > >> >> PS: please Patrick, give us more details on the error you are actually >> seeing -- this is getting a bit theoretical (: >> > > I get the problem in the modelgen phase - when trying to compile e.g. the > diode. > > C:\Users\mulderpa\git\gnucap\build4 (cmake-3 -> origin) > λ cmake --build . > [ 34%] Built target gnucap > [ 40%] Built target gnucap-modelgen > [ 41%] Generating d_diode.cc > @@# > @@@ > unreachable:C:/Users/mulderpa/git/gnucap/include/l_dispatcher.h:81:install > build error: link order: dispatcher not yet constructed > > @@# > @@@ > unreachable:C:/Users/mulderpa/git/gnucap/include/l_dispatcher.h:81:install > build error: link order: dispatcher not yet constructed > > @@# > @@@ > unreachable:C:/Users/mulderpa/git/gnucap/include/l_dispatcher.h:81:install > build error: link order: dispatcher not yet constructed > > @@# > @@@ > unreachable:C:/Users/mulderpa/git/gnucap/include/l_dispatcher.h:81:install > build error: link order: dispatcher not yet constructed > > @@# > @@@ > > unreachable:C:/Users/mulderpa/git/gnucap/include/l_dispatcher.h:41:DISPATCHER_BASE > build error: link order: constructing dispatcher that already has contents > > setting this: std::map<std::string, CKT_BASE*> * _map = nullptr; works fine. However, the commit https://git.savannah.gnu.org/cgit/gnucap.git/commit/?h=pending&id=847095f7965e4f92e8c124817c8f855f560387dd seems an interesting option to try also - what do you think, will it make sense for this case (MinGW) ? The previous build runs with nullptr until: λ cmake --build . [ 34%] Built target gnucap [ 40%] Built target gnucap-modelgen [ 41%] Linking CXX shared module gnucap-default-plugins.dll CMakeFiles/gnucap-default-plugins.dir/objects.a(d_admit.cc.obj):d_admit.cc:(.text+0x1c): undefined reference to `ELEMENT::ELEMENT(ELEMENT const&)' CMakeFiles/gnucap-default-plugins.dir/objects.a(d_admit.cc.obj):d_admit.cc:(.text+0x4a): undefined reference to `ELEMENT::ELEMENT()' CMakeFiles/gnucap-default-plugins.dir/objects.a(d_admit.cc.obj):d_admit.cc:(.text+0x20a): undefined reference to `ELEMENT::tr_iwant_matrix_passive()' CMakeFiles/gnucap-default-plugins.dir/objects.a(d_admit.cc.obj):d_admit.cc:(.text+0x2c2): undefined reference to `ELEMENT::ac_iwant_matrix_passive()' CMakeFiles/gnucap-default-plugins.dir/objects.a(d_admit.cc.obj):d_admit.cc:(.text+0x79e): undefined reference to `ELEMENT::tr_iwant_matrix_active()' CMakeFiles/gnucap-default-plugins.dir/objects.a(d_admit.cc.obj):d_admit.cc:(.text+0x870): undefined reference to `COMPONENT::volts_limited(node_t const&, node_t const&)' CMakeFiles/gnucap-default-plugins.dir/objects.a(d_admit.cc.obj):d_admit.cc:(.text+0x89c): undefined reference to `ELEMENT::ac_iwant_matrix_active()' CMakeFiles/gnucap-default-plugins.dir/objects.a(d_admit.cc.obj):d_admit.cc:(.text+0xbce): undefined reference to `ELEMENT::precalc_last()' CMakeFiles/gnucap-default-plugins.dir/objects.a(d_admit.cc.obj):d_admit.cc:(.text+0xc2e): undefined reference to `ELEMENT::tr_begin()' CMakeFiles/gnucap-default-plugins.dir/objects.a(d_admit.cc.obj):d_admit.cc:(.rdata+0x700): undefined reference to `CKT_BASE::help(CS&, OMSTREAM&) const' CMakeFiles/gnucap-default-plugins.dir/objects.a(d_admit.cc.obj):d_admit.cc:(.rdata+0x710): undefined reference to `ELEMENT::tr_probe_num(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' CMakeFiles/gnucap-default-plugins.dir/objects.a(d_admit.cc.obj):d_admit.cc:(.rdata+0x718): undefined reference to `ELEMENT::ac_probe_ext(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' _______________________________________________ Gnucap-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnucap-devel