1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-11-28 08:02:54 +00:00
freebsd/libexec
Fangrui Song 7da378f9de rtld: Switch to the standard symbol lookup behavior if LD_DYNAMIC_WEAK is set
The current lookup prefers a strong definition to a STB_WEAK definition
(similar to glibc pre-2.2 behavior) which does not conform to the ELF
specification.

The non-compliant behavior provoked https://reviews.llvm.org/D4418
which was intended to fix -shared-libasan but introduced
new problems (and caused some sanitizer tests (e.g.
test/asan/TestCases/interception_failure_test.cpp) to fail): sanitizer
interceptors are STB_GLOBAL instead of STB_WEAK, so defining a second
STB_GLOBAL interceptor can lead to a multiple definition linker error.
For example, in a -fsanitize={address,memory,...} build, libc functions
like malloc/free/strtol/... cannot be provided by user object files.

See
https://docs.freebsd.org/cgi/getmsg.cgi?fetch=16483939+0+archive/2014/freebsd-current/20140716.freebsd-current
for discussions.

This patch implements the ELF-compliant behavior when LD_DYNAMIC_WEAK is
set. STB_WEAK wrestling in symbol lookups in `Search the dynamic linker
itself` are untouched.

Reviewed by:	kib
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D26352
2021-08-16 13:55:35 +03:00
..
atf pkgbase: Install atf and kyua in the tests package 2021-01-04 16:20:47 +01:00
atrun
blacklistd-helper
bootpd Restore WARNS?=1 here. I missed that libexec/bootpd/bootpgw existed. 2019-07-19 18:47:13 +00:00
comsat
dma Only set WARNS if not defined 2020-09-11 13:28:37 +00:00
fingerd Update Makefile.depend files 2019-12-11 17:37:53 +00:00
flua stand: lua: enhance lfs.dir() to speed up kernels_autodetect 2021-01-29 12:47:29 -06:00
ftpd ftpd: delete dead code 2021-07-27 12:18:08 -06:00
getty libexec/getty/ttys.5: document correct "dialup" flag. 2021-06-01 17:05:16 +01:00
hyperv
mail.local
makewhatis.local makewhatis: do not try to operate on read-only mounted directories 2018-10-27 17:15:58 +00:00
mknetid
phttpget phttpget: move out of portsnap 2020-09-09 00:39:47 +00:00
pppoed
rbootd Fix the following -Werror warning from clang 10.0.0 in rbootd: 2020-01-28 19:19:55 +00:00
rc Add zfskeys rc.d script for auto-loading encryption keys 2021-07-28 16:26:45 +00:00
revnetgroup
rpc.rquotad pkgbase: Create a FreeBSD-nfs package 2021-06-19 17:49:50 +02:00
rpc.rstatd
rpc.rusersd
rpc.rwalld
rpc.sprayd
rtld-elf rtld: Switch to the standard symbol lookup behavior if LD_DYNAMIC_WEAK is set 2021-08-16 13:55:35 +03:00
rtld-elf32 libcompat: Correct rtld MLINKS 2019-11-12 22:31:59 +00:00
save-entropy Reduce disk write load in /usr/libexec/save-entropy. 2019-11-30 20:06:53 +00:00
smrsh
talkd Regularize my copyright notice 2019-12-04 16:56:11 +00:00
tcpd
telnetd Update Makefile.depend files 2019-12-11 17:37:53 +00:00
tests
tftp-proxy (t)ftp-proxy: use libpfctl 2021-04-10 11:16:02 +02:00
tftpd When receiving a file having a length, which is a mulitple of the blocksize, 2020-12-15 09:43:18 +00:00
ulog-helper
ypxfr yp*: fix -fno-common build 2020-04-06 23:16:05 +00:00
Makefile phttpget: move out of portsnap 2020-09-09 00:39:47 +00:00
Makefile.amd64
Makefile.i386
Makefile.inc Do a sweep and remove most WARNS=6 settings 2020-10-01 01:10:51 +00:00