Changeset 4834


Ignore:
Timestamp:
Jun 27, 2006, 3:44:04 AM (18 years ago)
Author:
Gary Byers
Message:

Some FreeBSD conditionalization; get_r_debug() for ELF platforms.
(Needs testing under Linux.)

File:
1 edited

Legend:

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

    r4760 r4834  
    9898#include <sys/resource.h>
    9999#include <dlfcn.h>
     100#include <elf.h>
    100101#endif
    101102
     
    17431744xFindSymbol(void* handle, char *name)
    17441745{
    1745 #ifdef LINUX
     1746#if defined(LINUX) || defined(FREEBSD)
    17461747  return dlsym(handle, name);
    17471748#endif
     
    17691770}
    17701771
    1771 
     1772void *
     1773get_r_debug()
     1774{
     1775#if defined(LINUX) || defined(FREEBSD)
     1776#if WORD_SIZE == 64
     1777  extern Elf64_Dyn _DYNAMIC;
     1778  Elf64_Dyn *dp;
     1779#else
     1780  extern Elf32_Dyn _DYNAMIC;
     1781  Elf32_Dyn *dp;
     1782#endif
     1783  int tag;
     1784
     1785  for (dp = &_DYNAMIC; (tag = dp->d_tag) != 0; dp++) {
     1786    if (tag == DT_DEBUG) {
     1787      return (void *)(dp->d_un.d_ptr);
     1788    }
     1789  }
     1790#endif
     1791  return NULL;
     1792}
     1793
     1794
Note: See TracChangeset for help on using the changeset viewer.