Changeset 757


Ignore:
Timestamp:
Apr 2, 2004, 9:53:36 PM (21 years ago)
Author:
Gary Byers
Message:

Determine executable pathname (needs to use /proc on Linux.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/lisp-kernel/pmcl-kernel.c

    r639 r757  
    902902
    903903char *program_name = NULL;
     904char *real_executable_name = NULL;
     905
     906char *
     907determine_executable_name(char *argv0)
     908{
     909#ifdef DARWIN
     910  size_t len = 1024;
     911  char exepath[1024], *p = NULL;
     912
     913  if (_NSGetExecutablePath(exepath, &len) == 0) {
     914    p = malloc(len+1);
     915    bcopy(exepath, p, len);
     916    p[len]=0;
     917    return p;
     918  }
     919  return argv0;
     920#endif
     921#ifdef LINUX
     922#error use readlink() on /proc/self/exe
     923#endif
     924}
    904925
    905926void
     
    11281149  BytePtr stack_base, current_sp = current_stack_pointer();
    11291150  TCR *tcr;
     1151  int i;
    11301152
    11311153  check_os_version(argv[0]);
     1154  real_executable_name = determine_executable_name(argv[0]);
     1155
    11321156
    11331157#ifdef LINUX
     
    11931217  initial_stack_size = ensure_stack_limit(initial_stack_size);
    11941218  if (image_name == NULL) {
    1195     if (check_for_embedded_image(argv[0])) {
    1196       image_name = argv[0];
     1219    if (check_for_embedded_image(real_executable_name)) {
     1220      image_name = real_executable_name;
    11971221    } else {
    1198       image_name = default_image_name(argv[0]);
     1222      image_name = default_image_name(real_executable_name);
    11991223    }
    12001224  }
Note: See TracChangeset for help on using the changeset viewer.