From: nr201504@gmail.com   
      
   In article ,   
   Scott Lurndal wrote:   
   >Traditional Unix has a signature as follows:   
   >   
   > main(int argc, const char **argv, const char **envp, const char **aux).   
   >   
   >The 'aux' vector is used to communicate information between the kernel   
   >and the run-time loader.   
      
   Scott,   
      
   Do you have a reference for this (the claim that an "aux" parameter exists)?   
      
   I have a couple of issues with the claim:   
      
   Let me note that I interpret your "Traditional Unix" as meaning any of   
   AT&T's version 1-7, System III, and System Vr*.   
      
   1) I have experience with porting and reimplementing S3 and SVr[123],   
    and I personally debugged the exec* code in SVr[23] that copies   
    args and env variables to the new process image. While my memory   
    may be failing me, I have no recollection of any "aux" parameter.   
    (Note that this experience does NOT include SVr4.)   
      
   2) I believe that "dynamic loading" was not introduced until SVr4,   
    where (Wikipedia and I agree that) ELF was introduced. So that   
    might be what you mean by "Traditional Unix".   
      
   3) But my biggest disconnect is that the so-called dynamic loading   
    used in ELF occurs between process start and the invocation of   
    "main". Thus, "[t]he 'aux' vector ... used to communicate   
    information between the kernel and the run-time loader" would be of   
    no use because all of the loading would already have occurred by   
    the time "main" is called.   
      
   Additionally, I note that POSIX calls for "argc", "argv", and an   
   optional "envp". There is no mention of an "aux" parameter.   
      
   Thanks, - dmw   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|