Changeset 7666 for branches/ia32/level-0


Ignore:
Timestamp:
Nov 16, 2007, 11:58:32 PM (13 years ago)
Author:
rme
Message:

Merge trunk changes r7361:7663.

Location:
branches/ia32/level-0
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/level-0/l0-aprims.lisp

    r6559 r7666  
    7171        (when nul-terminated
    7272          (setf (%get-byte pointer n) 0)))
    73       nil))
    74   (%cstr-segment-pointer string pointer 0 (length string) nul-terminated))
     73      nil)
     74    (%cstr-segment-pointer string pointer 0 (length string) nul-terminated)))
    7575
    7676(defun %cstr-segment-pointer (string pointer start end &optional (nul-terminated t))
  • branches/ia32/level-0/l0-cfm-support.lisp

    r6484 r7666  
    137137                 (dynamic-entries (pref map :link_map.l_ld)))
    138138    (let* ((soname-offset nil))
    139       ;;; Walk over the entries in the file's dynamic segment; the
    140       ;;; last such entry will have a tag of #$DT_NULL.  Note the
    141       ;;; (loaded,on Linux; relative to link_map.l_addr on FreeBSD)
    142       ;;; address of the dynamic string table and the offset of the
    143       ;;; #$DT_SONAME string in that string table.
     139      ;; Walk over the entries in the file's dynamic segment; the
     140      ;; last such entry will have a tag of #$DT_NULL.  Note the
     141      ;; (loaded,on Linux; relative to link_map.l_addr on FreeBSD)
     142      ;; address of the dynamic string table and the offset of the
     143      ;; #$DT_SONAME string in that string table.
     144      ;; Actually, the above isn't quite right; there seem to
     145      ;; be cases (involving vDSO) where the address of a library's
     146      ;; dynamic string table is expressed as an offset relative
     147      ;; to link_map.l_addr as well.
    144148      (loop
    145149          (case #+32-bit-target (pref dynamic-entries :<E>lf32_<D>yn.d_tag)
     
    154158            (#. #$DT_STRTAB
    155159                (%setf-macptr dyn-strings
    156                               #+32-bit-target
    157                               (pref dynamic-entries
    158                                     :<E>lf32_<D>yn.d_un.d_ptr)
    159                               #+(and 64-bit-target linux-target)
    160                               (pref dynamic-entries
    161                                     :<E>lf64_<D>yn.d_un.d_ptr)
    162                               #+(and 64-bit-target freebsd-target)
    163                               (%inc-ptr (pref map :link_map.l_addr)
    164                                         (pref dynamic-entries
    165                                               :<E>lf64_<D>yn.d_un.d_val)))))
     160                              ;; Try to guess whether we're dealing
     161                              ;; with a displacement or with an
     162                              ;; absolute address.  There may be
     163                              ;; a better way to determine this,
     164                              ;; but for now we assume that absolute
     165                              ;; addresses aren't negative and that
     166                              ;; displacements are.
     167                               (let* ((disp (%get-signed-natural
     168                                             dynamic-entries
     169                                             target::node-size)))
     170                                 #+freebsd-target
     171                                 (%inc-ptr (pref map :link_map.l_addr) disp)
     172                                 #-freebsd-target
     173                                 (%int-to-ptr
     174                                  (if (< disp 0)
     175                                    (+ disp (pref map :link_map.l_addr))
     176                                    disp))))))
    166177          (%setf-macptr dynamic-entries
    167178                        (%inc-ptr dynamic-entries
  • branches/ia32/level-0/l0-init.lisp

    r7334 r7666  
    2727    :openmcl
    2828    :clozure
     29    :clozure-common-lisp
    2930    :ansi-cl
    3031    :unix
  • branches/ia32/level-0/l0-pred.lisp

    r5671 r7666  
    217217(defun macptrp (x)
    218218  (= (the fixnum (typecode x)) target::subtag-macptr))
     219
     220(defun dead-macptr-p (x)
     221  (= (the fixnum (typecode x)) target::subtag-dead-macptr))
    219222
    220223
Note: See TracChangeset for help on using the changeset viewer.