|
Authored by: Anonymous on Sunday, April 22 2012 @ 09:09 AM EDT |
ld is a specific instance of a Linker, albeit a very common one and indeed is
the GNU Linker
From the man page
"ld combines a number of object and archive files, relocates their data and
ties up symbol references. Usually the last step in compiling a program is to
run ld."
In most circumstances this is run automatically so a casual tinkerer may never
see it/know it.
It is the Linker that will inform you if you have attempted to use a library
function in your source code but that library cannot be found on your system, or
that you have failed to tell the linker that you wish to use a particular
library.
It's no more than splitting hairs from the point of view of your post, and not
relevant to Java programming. [ Reply to This | Parent | # ]
|
- Compile and Link - Authored by: Anonymous on Sunday, April 22 2012 @ 11:47 AM EDT
|
Authored by: mschmitz on Sunday, April 22 2012 @ 05:46 PM EDT |
My comment regarding ld was indeed splitting hairs, triggered by your pun about
'resolving offsets' - any resolving of symbols into addresses is done by the
linker, ld on Linux, not the compiler. (You mentioned 'offsets into the
libraries' just ahead so I thought that was the origin of the pun. Fixed library
offsets bring back bad memories of the libc4 days here). I have learned in the
meantime that it's quite a bit more complex in Java or Dalvik.
Your point is not weakened by replacing 'compiler' with 'compiler and linker',
or whatever Java uses. Having a linker is a technical optimization only (though
I've met people that honestly though cat'ing all of the separate g++ source
files into one big fat monster source file and then compiling that one was a
Smart Thing (TM). Makes your head explode unless you run out of swap space
first).
You've made the point elsewhere that the SSO of the specification is fully and
narrowly defined by that of the reference implementation. As such, the
specification is not a "compilation" of elements in the copyright law
sense (such a "compilation" would require freedom of expression in
order to be a creative work, which just isn't possible here. Get creative and
you've messed up big time).
The specification is a list of hard facts, set in stone by the reference
implementation, and the requirement that other implementations be functionally
equivalent in order to be compatible.
I'll try and remember to include humour tags when spinning on a pun next time.
-- mschmitz
[ Reply to This | Parent | # ]
|
|
|
|
|