[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Patchless modification of Lua source code
- From: Philipp Janda <siffiejoe@...>
- Date: Sat, 24 Nov 2018 06:03:52 +0100
Am 24.11.18 um 03:36 schröbte Sean Conner:
It was thus said that the Great Philipp Janda once stated:
Am 23.11.18 um 06:47 schröbte Sean Conner:
8 All external object and function references are resolved. Library
components are linked to satisfy external references to functions
and objects not defined in the current translation. All such
translator output is collected into a program image which contains
information needed for execution in its execution environment.
I interpret this to mean, "if the given object files do not include an
object or function with external linkage, then said objects or functions
can be pulled from a "library".
Which library if there were multiple ones containing the same external
I don't think that's covered in the C Standard.
Well, the C standard does (un-)define it for an entire program (the set
of translation units and libraries). You are the one who wants to have
certain parts of those libraries excluded from the entire program based
on a linking order.
I know that the C tool
chains I've used over the years have all defaulted to "seach each library,
in order specified on the command line" which seems a reasonable thing to
This order is actually required by POSIX, so most UNIX compilers
will behave this way. One exception is apparently clang. But,
AFAICS, unfortunately even POSIX does not define whether multiple
definitions are allowed or not.