The ARM linker for the 3DO will link each and every function in the source file if only one function in a file was used. It was common practice in the 80s and 90s to write library code with each function in its own source file to get around the problem of accidental code bloat. Look to the early GNU stdlib implementation and you'll notice they did the same thing. Modern linkers with Link Time Code Generation don't suffer from this issue since they will remove every piece of dead or unused code wherever it is, which is why Burgerlib 5 is in a lot fewer source files than Burgerlib 1, 2 or 3.
If you're ever in Seattle, we have to head to a coffee shop and cry our eyes out on the crap we had to deal with developing for the 3DO!!!
The ARM linker for the 3DO will link each and every function in the source file if only one function in a file was used. It was common practice in the 80s and 90s to write library code with each function in its own source file to get around the problem of accidental code bloat. Look to the early GNU stdlib implementation and you'll notice they did the same thing. Modern linkers with Link Time Code Generation don't suffer from this issue since they will remove every piece of dead or unused code wherever it is, which is why Burgerlib 5 is in a lot fewer source files than Burgerlib 1, 2 or 3.
And look at me now! I'm a Sr. Software Architect and the author of dozens of hit games like Bard's Tale III. :)