1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-09 21:40:33 +02:00

fix linker.test

* test-suite/tests/linker.test (link-elf-with-one-main-section): Fix
  test after string table change.
This commit is contained in:
Andy Wingo 2013-06-10 22:42:46 +02:00
parent c4c098e355
commit 4828538940

View file

@ -24,15 +24,9 @@
#:use-module (system vm linker)) #:use-module (system vm linker))
(define (link-elf-with-one-main-section name bytes) (define (link-elf-with-one-main-section name bytes)
(let ((string-table (make-string-table))) (let ((strtab (make-string-table)))
(define (intern-string! string)
(call-with-values
(lambda () (string-table-intern string-table string))
(lambda (table idx)
(set! string-table table)
idx)))
(define (make-object index name bv relocs . kwargs) (define (make-object index name bv relocs . kwargs)
(let ((name-idx (intern-string! (symbol->string name)))) (let ((name-idx (string-table-intern! strtab (symbol->string name))))
(make-linker-object (apply make-elf-section (make-linker-object (apply make-elf-section
#:index index #:index index
#:name name-idx #:name name-idx
@ -40,16 +34,16 @@
kwargs) kwargs)
bv relocs bv relocs
(list (make-linker-symbol name 0))))) (list (make-linker-symbol name 0)))))
(define (make-string-table) (define (make-shstrtab)
(intern-string! ".shstrtab") (string-table-intern! strtab ".shstrtab")
(make-object 2 '.shstrtab (link-string-table string-table) '() (make-object 2 '.shstrtab (link-string-table! strtab) '()
#:type SHT_STRTAB #:flags 0)) #:type SHT_STRTAB #:flags 0))
(let* ((word-size (target-word-size)) (let* ((word-size (target-word-size))
(endianness (target-endianness)) (endianness (target-endianness))
(sec (make-object 1 name bytes '())) (sec (make-object 1 name bytes '()))
;; This needs to be linked last, because linking other ;; This needs to be linked last, because linking other
;; sections adds entries to the string table. ;; sections adds entries to the string table.
(shstrtab (make-string-table))) (shstrtab (make-shstrtab)))
(link-elf (list sec shstrtab) (link-elf (list sec shstrtab)
#:endianness endianness #:word-size word-size)))) #:endianness endianness #:word-size word-size))))