Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: [netbsd-11] src/libexec/ld.elf_so



Module Name:    src
Committed By:   martin
Date:           Thu Jan 22 20:31:07 UTC 2026

Modified Files:
        src/libexec/ld.elf_so [netbsd-11]: Makefile rtld.c rtldenv.h tls.c
            xmalloc.c

Log Message:
Pull up following revision(s) (requested by skrll in ticket #159):

        libexec/ld.elf_so/rtldenv.h: revision 1.13
        libexec/ld.elf_so/xmalloc.c: revision 1.20
        libexec/ld.elf_so/rtld.c: revision 1.222
        libexec/ld.elf_so/xmalloc.c: revision 1.21
        libexec/ld.elf_so/xmalloc.c: revision 1.22
        libexec/ld.elf_so/xmalloc.c: revision 1.23
        libexec/ld.elf_so/xmalloc.c: revision 1.24
        libexec/ld.elf_so/xmalloc.c: revision 1.25
        libexec/ld.elf_so/xmalloc.c: revision 1.13
        libexec/ld.elf_so/xmalloc.c: revision 1.14
        libexec/ld.elf_so/xmalloc.c: revision 1.15
        libexec/ld.elf_so/xmalloc.c: revision 1.16
        libexec/ld.elf_so/xmalloc.c: revision 1.17
        libexec/ld.elf_so/xmalloc.c: revision 1.18
        libexec/ld.elf_so/tls.c: revision 1.24
        libexec/ld.elf_so/tls.c: revision 1.25
        libexec/ld.elf_so/tls.c: revision 1.26
        libexec/ld.elf_so/tls.c: revision 1.27
        libexec/ld.elf_so/Makefile: revision 1.153
        libexec/ld.elf_so/tls.c: revision 1.28

Whitespace.
Add some more debug in light of PR/59652: DNS utilities core dump...
KNF
The dbg macro doesn't need "\n" at the end of the format as it's already
provided.
Whitespace. (remove unnecessary spaces before tabs)
More whitespace.
Remove the unused RCHECK option - inspired by FreeBSD.
Remove an always true ASSERT

Port the FreeBSD change
     Remove remnants of optimization for > pagesize allocations.
     In the past, this allocator seems to have allocated things larger than
     a page seperately. Much of this code was removed at some point (perhaps
     along with sbrk() used) so remove the rest. Instead, keep allocating in
     power-of-two bins up to FIRST_BUCKET_SIZE << (NBUCKETS - 1). If we want
     something more efficent, we should use a fancier allocator.
     While here, remove some vestages of sbrk() use. Most importantly, don't
     try to page align the pagepool since it's always page aligned by
     mmap().

Iniitialise pageshift - lost in previous

s/unsigned/size_t/ for consistency

Replace a magic number with FIRST_BUCKET_SHIFT

Provide a xmalloc_aligned (unused at present). From FreeBSD.
port-sparc/59907 (sparc install regression)

Restore the code removed in xmalloc.c:1.17 that is necessary for correct
alignment of memory allocations.

KNF

Simplify the aligned malloc/free code.
PR toolchain/59652 DNS utilities core dump in -current

Fix the alignment of TLS initialised data for __HAVE_TLS_VARIANT_I
platforms by registering the largest alignment required and allocating
memory accordingly. Additionally calculate correct offsets for each
object's data relative to the end of the struct tls_tcb placed at the
beginning of the TCB.

This makes the tests/libexec/ld.elf_so:t_tls_alignment pass.
I also tested it against a program that attempts to dlopen a DSO that
(erroneously) attempts to use tls_model("initial-exec") and it correctly
failed with
     Use of initialized Thread Local Storage with model initial-exec and
     dlopen is not supported


To generate a diff of this commit:
cvs rdiff -u -r1.151 -r1.151.2.1 src/libexec/ld.elf_so/Makefile
cvs rdiff -u -r1.221 -r1.221.2.1 src/libexec/ld.elf_so/rtld.c
cvs rdiff -u -r1.12 -r1.12.42.1 src/libexec/ld.elf_so/rtldenv.h
cvs rdiff -u -r1.23 -r1.23.2.1 src/libexec/ld.elf_so/tls.c
cvs rdiff -u -r1.12 -r1.12.44.1 src/libexec/ld.elf_so/xmalloc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index