Talk:Position-independent code

From Wikipedia, the free encyclopedia

Note that although "position-independent code" is arguably more grammatical, common usage strongly favor the no-hyphen version, presumably because system programmers are only semi-literate. :-) Stan 14:15, 2 Apr 2004 (UTC)

Contents

[edit] Cesian programs

I noticed that Evan added a link to to question the following sentence: However, [PIC] can be generated automatically with a Cesian program. The text was added by User:Mirad, who has only a few contributions. I'm going to go out on a limb and say I think the term is bogus. -- Wmahan. 22:09, 13 October 2005 (UTC)

[edit] ELF

Though this article doesn't mention it, nearly all of the details are basically specific to ELF, aren't they? I think this should be made clearer.

MikeHearn 21:27, 14 May 2006 (UTC)

The ELF mechanisms are based on those used in SunOS 4.x, which used an a.out-based format. I think Mach-O in Mac OS X uses mechanisms that are similar in some ways, and perhaps the mechanisms used with 32-bit PA-RISC in HP-UX and used in Tru64 UNIX, and even the mechanisms used in AIX, are also similar, but, yes, the page should probably discuss that, perhaps giving terminological and technical differences between various UN*Xes. Guy Harris 22:06, 14 May 2006 (UTC)

[edit] Relocation Work Required

Although relocatable code requires much more fixup than does PIC, PIC still requires some fixup by the loader. For example when using a GOT, the GOT can contain absolute addresses that need to be fixed up based on where the module is loaded.

[edit] What functions are inherited?

As this page is linked from Library (computing) it should be somewhat more explicative.

In particular, the following sentence leaves much to be guessed:

This notably allows a shared library to inherit certain function calls from previously loaded libraries rather than e. g. using its own versions

Why is that an advantage? E.g., Can an executable that exports its own malloc() propagate it to loaded libraries? On the other hand, why can that inheritance be a problem? It may be useful to include a link to best programming practices or gotchas one should watch against. This is an example where Unix and Windows differ. Those differences are mentioned often, but is difficult to understand their semantic implications.

How does such inheritance propagate across the exec family of functions? In general, an executable can behave differently depending on which process loaded it, because the parent process can have a number of shared libraries already loaded in its address space. Where can one learn more about this topic?

194.243.254.190 11:44, 3 December 2006 (UTC)