<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>dynamic libraries</title>
<description> A simple question. Is it possible to create shared libraries on wii? If your answer is yes, how can i do?

Thank you</description><link>http://forum.wiibrew.org/read.php?11,22928,22928#msg-22928</link><lastBuildDate>Sat, 06 Jun 2026 21:40:29 +0200</lastBuildDate>
<generator>Phorum 5.2.23</generator>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23662#msg-23662</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23662#msg-23662</link><description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>I.R.on</strong><br />Well you gave the answer actually, program calles the windows API functions, which should be under a separate process&#039;s address space (maybe not)</div></blockquote>
Definitly not. All functions you can call have a working adress in the applications virtual adress space.<br /><br />But that is under Windows / x86.<br /><br />On the Wii, memory is adressed directly, and so far all applications can assume, they have the whole Wii (sans IOS) for themself.<br /><br />Anyway, the ability to load librarys at runtime needs to be part of the application itself (staticly)<br /><br /><br /><br /><br /><blockquote class="bbcode"><div><small>Quote<br /></small><strong>I.R.on</strong><br />(like configuring the path&device for shared libraries) this functionality should not be statically linked into the application itself</div></blockquote>
That are design choices, that still have to be made... :-D<br /><br />Wanna start a draft?]]></description>
<dc:creator>daniel_c_w</dc:creator>
<category>Coding</category><pubDate>Sat, 04 Jul 2009 09:10:34 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23609#msg-23609</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23609#msg-23609</link><description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>daniel_c_w</strong><br />I fail to see why a loader has to resident<br /><br /><br /><br />At runtime: a program uses the Windows API functions (which are of course linked at startup) LoadLibrary and GetProcAddress to recieve a pointer to a afunction</div></blockquote><br />Well you gave the answer actually, program calles the windows API functions, which should be under a separate process&#039;s address space (maybe not)... but to make it standard and configurable across all applications (like configuring the path&device for shared libraries) this functionality should not be statically linked into the application itself.<br /><br />All this of course related to loading the libraries at runtime... loading at startup will not have all the benefits... the only real benefit will be as henke_37 pointed out, sharing & updating common libraries...]]></description>
<dc:creator>I.R.on</dc:creator>
<category>Coding</category><pubDate>Fri, 03 Jul 2009 23:35:59 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23602#msg-23602</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23602#msg-23602</link><description><![CDATA[ Yes, but we link them staticly anyways.<br />The only good would be, that some patches in the librarys will also retroactively work in application, that were not recompiled.<br />On the other hand, we could create our own DLL hell :-)<br /><br />As I.R.on said (well, wrote):<br /><blockquote class="bbcode"><div><small>Quote<br /></small><strong></strong><br />One another great future about dynamic libraries is they provide applications a plugin mechanism, curently we don&#039;t have such a mechanism. If ever implemented, this would be a killer feature...</div></blockquote>]]></description>
<dc:creator>daniel_c_w</dc:creator>
<category>Coding</category><pubDate>Fri, 03 Jul 2009 21:35:23 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23564#msg-23564</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23564#msg-23564</link><description><![CDATA[ There is one other major use for loadtime loading, sharing common libraries. We got plenty of those.]]></description>
<dc:creator>henke37</dc:creator>
<category>Coding</category><pubDate>Fri, 03 Jul 2009 18:06:08 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23551#msg-23551</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23551#msg-23551</link><description><![CDATA[ Ok, so it is possible to load library at startup (it&#039;s what i need :)) if i&#039;ve enough symbols in the package i want to load.<br />I know that the .elf contains these symbols, but does the .dol contain these symbols?<br /><br />I will try to create a sample plugin application, i hope i will succeed :)<br /><br />Thank you to all of you.]]></description>
<dc:creator>arasium</dc:creator>
<category>Coding</category><pubDate>Fri, 03 Jul 2009 16:24:56 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23546#msg-23546</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23546#msg-23546</link><description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>I.R.on</strong><br />But, yeah like everything on wii, we don&#039;t have an operating system. DLLs take the linking job from build process and put it onto the loader&#039;s (Operating system) responsibility... To do this loader should have a resident process...</div></blockquote><br />On Windows there are 2 ways:<br />-loading the libray at startup<br />-loading it at runtime<br /><br />At startup: the loader load (duh :-) ) the .exe file and all required DLLs into memory and adjusts the jump pointers to point at the DLL functions.<br />Every linker should work, because the code that is patched by the loader comes in precompiled librarys (.lib)<br /><br />Basicly this is the same as patching a programm.<br />A patch format for the HBC has been discussed, if I remeber correctly<br /><br />I fail to see why a loader has to resident<br /><br /><br /><br />At runtime: a program uses the Windows API functions (which are of course linked at startup) LoadLibrary and GetProcAddress to recieve a pointer to a afunction]]></description>
<dc:creator>daniel_c_w</dc:creator>
<category>Coding</category><pubDate>Fri, 03 Jul 2009 15:48:54 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23532#msg-23532</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23532#msg-23532</link><description><![CDATA[ First, "dynamic library" alone is not the right term, it should be "dynamically linked library"...<br /><br />Dynamically linked libraries... hmm... this would only serve (the catch is below) large applications in which different libraries only used if certain conditions become true.... say a media player, instead of 6-8MB single binary we can have a small binary and a set of libraries with different sizes... also big games (currently we don&#039;t have any) can make use of it...<br /><br />One another great future about dynamic libraries is they provide applications a plugin mechanism, curently we don&#039;t have such a mechanism. If ever implemented, this would be a killer feature...<br /><br />But, yeah like everything on wii, we don&#039;t have an operating system. DLLs take the linking job from build process and put it onto the loader&#039;s (Operating system) responsibility... To do this loader should have a resident process... and currently we don&#039;t have any resident process while a homebrew application is executing... Yes, there is ios (or say mini) but I doubt it would suit the job...<br /><br />Of course there are possibly lots of details about it regarding the toolchain and such... Possibly not too easy to implement in general...<br /><br />As daniel_c_w noted, it can be implemented solely on a specific program, in it&#039;s simple form all the program should do is load a relocatable binary and arrange the parts in the main program that acceses it with the actual entrypoints from the loaded binary&#039;s metadata.]]></description>
<dc:creator>I.R.on</dc:creator>
<category>Coding</category><pubDate>Fri, 03 Jul 2009 14:07:08 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23531#msg-23531</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23531#msg-23531</link><description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>CloneDeath</strong><br />Nonono! I wasn&#039;t like "challenging" him to argue about it, I meant, did he really want to distract from the topic of answering his question and change the thread to what it should be called.</div></blockquote><br />Ok, so, excuse me :)<br /><br />I&#039;ve an other idea to simulate shared objects. We can create forwarders to elf homebrews. But, the elf format contains the symbols of the package. So, can we use these symbols to find then execute a function (not the main) of the elf package?<br /><br />I know that the .elf is bigger than the .dol, but it can resolve my problem (actually, i&#039;ve created an app and i wan&#039;t to use plugins instead of always recompiling).]]></description>
<dc:creator>arasium</dc:creator>
<category>Coding</category><pubDate>Fri, 03 Jul 2009 14:01:05 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23512#msg-23512</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23512#msg-23512</link><description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>iofthestorm</strong><br />It would have to be something that the launcher does when a program starts up, and the linker would have to be modified to put in placeholders instead of actual memory locations when linking a program.</div></blockquote><br />We could also use a real dynamic approach and load library funtions at runtime.]]></description>
<dc:creator>daniel_c_w</dc:creator>
<category>Coding</category><pubDate>Fri, 03 Jul 2009 08:42:56 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23413#msg-23413</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23413#msg-23413</link><description><![CDATA[ It would have to be something that the launcher does when a program starts up, and the linker would have to be modified to put in placeholders instead of actual memory locations when linking a program. It&#039;s "doable" from a theoretical standpoint, but I think it would depend largely on the members of Team Twiizers, and they&#039;re busy enough as is.]]></description>
<dc:creator>iofthestorm</dc:creator>
<category>Coding</category><pubDate>Fri, 03 Jul 2009 00:20:14 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23362#msg-23362</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23362#msg-23362</link><description><![CDATA[ Nonono! I wasn&#039;t like "challenging" him to argue about it, I meant, did he really want to distract from the topic of answering his question and change the thread to what it should be called. I prefer "Dynamic" because it contrasts with "Static", but I will admit that "Shared" is a better discriptor since "Dynamic" libraries never change :P on the other hand, "Static" libraries are also occasionally shared (in a distributed in a kind of standard way, like libogc), so either argument has it&#039;s flaws.<br /><br />Back to the topic:<br /><br />I don&#039;t believe a shared library is really possible. I mean, we could make a bunch of apps, each being like an "external function" then run those as if they were like a DLL... or something... I have never had to work with DLLs so that might just be the basic premise of how one works, so +shrugs+ I do know you pack multiple functions into 1 DLL though (ie: user32.dll has just about everything I need :P) so...<br /><br />I mean, it would make sense doing this, but at the same time I have no idea how to approach it because I have not done anything like it on the Wii before.]]></description>
<dc:creator>CloneDeath</dc:creator>
<category>Coding</category><pubDate>Thu, 02 Jul 2009 21:49:24 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23298#msg-23298</guid>
<title>Re: Shared libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23298#msg-23298</link><description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>punto</strong><br />Actually "shared" is correct, that&#039;s why on all unix systems the extension is .so instead of .dll (stands for Shared Object). Only n00b windows users call them DLLs (like saying "folder" instead of directory).</div></blockquote><br />Oooooh, when i&#039;ve read some of the responses, i thought i were a silly man :) I&#039;m not very familiar with unix system (but, i known what is a shared library) so i haven&#039;t respond anything.<br /><br />Thank you punto, i&#039;m not silly.<br /><br /><br /><blockquote class="bbcode"><div><small>Quote<br /></small><strong>CloneDeath</strong><br />Really, punto, you want to argue about this? -_-</div></blockquote><br /><a href="http://en.wikipedia.org/wiki/Library_(computing)#Shared_libraries" rel="nofollow">wikipedia</a>]]></description>
<dc:creator>arasium</dc:creator>
<category>Coding</category><pubDate>Thu, 02 Jul 2009 09:42:18 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23281#msg-23281</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23281#msg-23281</link><description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>CloneDeath</strong><br />Anyhow, SHARED libraries are NOT supported either, to make things clear.</div></blockquote><br />Why not?<br />We would just have to agree on a standard for it.]]></description>
<dc:creator>daniel_c_w</dc:creator>
<category>Coding</category><pubDate>Thu, 02 Jul 2009 05:35:04 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23264#msg-23264</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23264#msg-23264</link><description><![CDATA[ A little bird whispered in my ear that the wiki has a <a href="http://www.wiibrew.org/wiki/REL" rel="nofollow">page about the REL format</a> that Nintendo is using. It&#039;s just a stub, but it&#039;s accurate as far as I know.]]></description>
<dc:creator>henke37</dc:creator>
<category>Coding</category><pubDate>Thu, 02 Jul 2009 02:07:54 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23263#msg-23263</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23263#msg-23263</link><description><![CDATA[ Really, punto, you want to argue about this? -_-<br /><br />Anyhow, SHARED libraries are NOT supported either, to make things clear.]]></description>
<dc:creator>CloneDeath</dc:creator>
<category>Coding</category><pubDate>Thu, 02 Jul 2009 01:40:54 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23262#msg-23262</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23262#msg-23262</link><description><![CDATA[ Actually "shared" is correct, that&#039;s why on all unix systems the extension is .so instead of .dll (stands for Shared Object). Only n00b windows users call them DLLs (like saying "folder" instead of directory).]]></description>
<dc:creator>punto</dc:creator>
<category>Coding</category><pubDate>Thu, 02 Jul 2009 01:33:49 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23171#msg-23171</guid>
<title>Re: dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23171#msg-23171</link><description><![CDATA[ Well, I don&#039;t think Nintendo does o.O Too small of a memory and not enough good games to make it feasible. If I were Nintendo, I would just give them some static libraries to work with. Now Sony on the other hand....<br /><br />But, no, I am 99% sure DLL&#039;s don&#039;t work, and they might actually make your game more encumbersome to the user. The general rule is, try to include as few files as possible with your game, and try to make those files optional, so that if the user doesn&#039;t drag-and-drop them, the program will just generate them for you.<br /><br />I mean this like save files and stuff. Don&#039;t rely on external maps, compile those with the source code, since they will never change (not while the game is being played*)]]></description>
<dc:creator>CloneDeath</dc:creator>
<category>Coding</category><pubDate>Wed, 01 Jul 2009 14:37:28 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23169#msg-23169</guid>
<title>Re: Shared libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23169#msg-23169</link><description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>henke37</strong><br />Well, if Nintendo can do it, why not us too?</div></blockquote>
How do we know Nintendo can do it?]]></description>
<dc:creator>Arikado</dc:creator>
<category>Coding</category><pubDate>Wed, 01 Jul 2009 14:36:31 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23160#msg-23160</guid>
<title>Re: Shared libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23160#msg-23160</link><description><![CDATA[ Well, if Nintendo can do it, why not us too?]]></description>
<dc:creator>henke37</dc:creator>
<category>Coding</category><pubDate>Wed, 01 Jul 2009 12:44:09 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23149#msg-23149</guid>
<title>Re: Shared libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23149#msg-23149</link><description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>CloneDeath</strong><br />based on his previous posts, I conclude he is not a native english speaker, or he is 10 years old. Seeing as a 10yo can&#039;t program, he probably doesn&#039;t speak english.<br /><br />I think if you look at "shared" library, the closest thing would be a DLL... I think... or maybe he wants to know how to "share" a library...<br /><br />anyone else wanna try and interpret him?</div></blockquote><br />Yes, i&#039;m not an native english speaker :) And yes, i was speaking about DLL.<br /><br /><blockquote class="bbcode"><div><small>Quote<br /></small><strong>iofthestorm</strong><br />Either you&#039;re talking about dynamically linked libraries, which I don&#039;t think are possible on the Wii currently since there is no OS running during homebrew and I don&#039;t think the Homebrew Channel or any other launcher has a dynamic linker built in (although it would be a neat surprise), or you just want to make your own statically linked library, which is definitely possible, but I think you knew that.</div></blockquote><br />Ok, so it isn&#039;t possible actually. Thank you.]]></description>
<dc:creator>arasium</dc:creator>
<category>Coding</category><pubDate>Wed, 01 Jul 2009 09:33:39 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23140#msg-23140</guid>
<title>Re: Shared libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23140#msg-23140</link><description><![CDATA[ Since an application can control the whole memory, it would definitly be possible to load a executeable data and use it.<br /><br />The Wii homebrew scene would only have to agree on a standard (sizes, calling conventions, file fomrat)]]></description>
<dc:creator>daniel_c_w</dc:creator>
<category>Coding</category><pubDate>Wed, 01 Jul 2009 06:10:01 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,23030#msg-23030</guid>
<title>Re: Shared libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,23030#msg-23030</link><description><![CDATA[ Either you&#039;re talking about dynamically linked libraries, which I don&#039;t think are possible on the Wii currently since there is no OS running during homebrew and I don&#039;t think the Homebrew Channel or any other launcher has a dynamic linker built in (although it would be a neat surprise), or you just want to make your own statically linked library, which is definitely possible, but I think you knew that.]]></description>
<dc:creator>iofthestorm</dc:creator>
<category>Coding</category><pubDate>Tue, 30 Jun 2009 20:29:03 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,22973#msg-22973</guid>
<title>Re: Shared libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,22973#msg-22973</link><description><![CDATA[ How <i>I</i> would do it is just compile it, including the main.c. Then, copy all the .o for each .cpp file and each .h for each .cpp file, and zip them all together.<br /><br />I dunno, I never really made a static library, I write all my own code and just copy the .cpp and .h generic files over between projects, so.... +shrugs+ it works. If I wanted to try a static library, the above is how I would go about trying to do it first. I never had to make a .dll before, so I don&#039;t even know how to go there @_@]]></description>
<dc:creator>CloneDeath</dc:creator>
<category>Coding</category><pubDate>Tue, 30 Jun 2009 17:07:39 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,22971#msg-22971</guid>
<title>Re: Shared libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,22971#msg-22971</link><description><![CDATA[ Here is my interpretion...<br /><br />He says shared because when you develop a library you share it on wiibrew, thus it becomes a shared library :)<br />Actually it&#039;s a static library... so it becomes a shared static library...<br /><br />Yeah, really I interpretted this way at the first attempt<br /><br />ps: dunno how to create a static library... you should possibly tweak the makefile and code accordingly...]]></description>
<dc:creator>I.R.on</dc:creator>
<category>Coding</category><pubDate>Tue, 30 Jun 2009 16:50:12 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,22964#msg-22964</guid>
<title>Re: Shared libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,22964#msg-22964</link><description><![CDATA[ based on his previous posts, I conclude he is not a native english speaker, or he is 10 years old. Seeing as a 10yo can&#039;t program, he probably doesn&#039;t speak english.<br /><br />I think if you look at "shared" library, the closest thing would be a DLL... I think... or maybe he wants to know how to "share" a library...<br /><br />anyone else wanna try and interpret him?]]></description>
<dc:creator>CloneDeath</dc:creator>
<category>Coding</category><pubDate>Tue, 30 Jun 2009 16:31:39 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,22954#msg-22954</guid>
<title>Re: Shared libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,22954#msg-22954</link><description><![CDATA[ What do you mean by "shared libraries"? Up until now, I&#039;ve only been aware of static and dynamic link libraries.]]></description>
<dc:creator>Arikado</dc:creator>
<category>Coding</category><pubDate>Tue, 30 Jun 2009 15:50:56 +0200</pubDate></item>
<item>
<guid>http://forum.wiibrew.org/read.php?11,22928,22928#msg-22928</guid>
<title>dynamic libraries</title><link>http://forum.wiibrew.org/read.php?11,22928,22928#msg-22928</link><description><![CDATA[ A simple question. Is it possible to create shared libraries on wii? If your answer is yes, how can i do?<br /><br />Thank you]]></description>
<dc:creator>arasium</dc:creator>
<category>Coding</category><pubDate>Tue, 30 Jun 2009 14:11:55 +0200</pubDate></item>
</channel>
</rss>