This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libc/21779] New: MicroBlaze segfaults when loading libpthread


https://sourceware.org/bugzilla/show_bug.cgi?id=21779

            Bug ID: 21779
           Summary: MicroBlaze segfaults when loading libpthread
           Product: glibc
           Version: 2.26
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: nathan at nathanrossi dot com
                CC: drepper.fsp at gmail dot com
  Target Milestone: ---

Output of test program that is linked with libpthread.

---
# LD_DEBUG=all test-pthread
       276:
       276:     file=libpthread.so.0 [0];  needed by test-pthread [0]
       276:     find library=libpthread.so.0 [0]; searching
       276:      search cache=/etc/ld.so.cache
       276:       trying file=/lib/libpthread.so.0
       276:
       276:     file=libpthread.so.0 [0];  generating link map
       276:       dynamic: 0x48046b50  base: 0x48029000   size: 0x00020200
       276:         entry: 0x4802ea98  phdr: 0x48029034  phnum:          8
       276:
       276:
       276:     file=libc.so.6 [0];  needed by test-pthread [0]
       276:     find library=libc.so.6 [0]; searching
       276:      search cache=/etc/ld.so.cache
       276:       trying file=/lib/libc.so.6
       276:
       276:     file=libc.so.6 [0];  generating link map
       276:       dynamic: 0x481c26f4  base: 0x4804a000   size: 0x0017f348
       276:         entry: 0x4806dc6c  phdr: 0x4804a034  phnum:          9
       276:
       276:     checking for version `GLIBC_2.18' in file /lib/libpthread.so.0
[0] required by file test-pthread [0]
       276:     checking for version `GLIBC_2.18' in file /lib/libc.so.6 [0]
required by file test-pthread [0]
       276:     checking for version `GLIBC_PRIVATE' in file /lib/ld.so.1 [0]
required by file /lib/libpthread.so.0 [0]
       276:     checking for version `GLIBC_2.18' in file /lib/ld.so.1 [0]
required by file /lib/libpthread.so.0 [0]
       276:     checking for version `GLIBC_2.18' in file /lib/libc.so.6 [0]
required by file /lib/libpthread.so.0 [0]
       276:     checking for version `GLIBC_PRIVATE' in file /lib/libc.so.6 [0]
required by file /lib/libpthread.so.0 [0]
       276:     checking for version `GLIBC_2.18' in file /lib/ld.so.1 [0]
required by file /lib/libc.so.6 [0]
       276:     checking for version `GLIBC_PRIVATE' in file /lib/ld.so.1 [0]
required by file /lib/libc.so.6 [0]
       276:
       276:     Initial object scopes
       276:     object=test-pthread [0]
       276:      scope 0: test-pthread /lib/libpthread.so.0 /lib/libc.so.6
/lib/ld.so.1
       276:
       276:     object=/lib/libpthread.so.0 [0]
       276:      scope 0: test-pthread /lib/libpthread.so.0 /lib/libc.so.6
/lib/ld.so.1
       276:
       276:     object=/lib/libc.so.6 [0]
       276:      scope 0: test-pthread /lib/libpthread.so.0 /lib/libc.so.6
/lib/ld.so.1
       276:
       276:     object=/lib/ld.so.1 [0]
       276:      no scope
       276:
       276:
       276:     relocation processing: /lib/libc.so.6
...
       276:     symbol=__tls_get_addr;  lookup in file=/lib/libpthread.so.0 [0]
       276:     symbol=__tls_get_addr;  lookup in file=/lib/libc.so.6 [0]
       276:     symbol=__tls_get_addr;  lookup in file=/lib/ld.so.1 [0]
       276:     binding file /lib/libc.so.6 [0] to /lib/ld.so.1 [0]: normal
symbol `__tls_get_addr' [GLIBC_2.18]
       276:
       276:     relocation processing: /lib/libpthread.so.0
Segmentation fault
---

This is due to the relocation generated for vfork_compat's branch to
__libc_vfork. This relocation cannot be resolved and the branch instruction
cannot be rewritten due to being in a non-writable section.

readelf output of libpthread.so:
---
Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf
Al
...
  [12] .text             PROGBITS        000051fc 0051fc 013e1c 00  AX  0   0 
4

...

Relocation section '.rela.dyn' at offset 0x3830 contains 362 entries:
 Offset     Info    Type            Sym.Value  Sym. Name + Addend
00014b68  00004c03 R_MICROBLAZE_64_P 00000000   __libc_vfork@GLIBC_PRIVATE + 0
...
---

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]