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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.