Commit graph

29 commits

Author SHA1 Message Date
Nobuyoshi Nakada
8149f4d6ab [Bug #20910] dtrace related symbols are not considered leaked 2024-11-30 14:04:53 +09:00
Jeremy Evans
ac429df64f Ignore retguard symbols when looking for leaked symbols
retguard symbols are added on OpenBSD as part of stack protection.
They should be ignored by the leaked symbols checker, just as we
ignore asan symbols.
2024-06-04 13:04:41 -07:00
KJ Tsanaktsidis
565ef06e91 Ignore _odr_asan symbols in leaked-globals
ASAN includes these to detect violations of the ODR rule.

[Bug #20221]
2024-02-07 19:42:07 +11:00
Nobuyoshi Nakada
c0629a055a
Prefer IO.popen over IO.foreach with | 2024-02-02 10:42:53 +09:00
Nobuyoshi Nakada
f22bec79fe
leaked-globals: More accurately extract checked function names 2024-02-02 10:42:53 +09:00
Nobuyoshi Nakada
c68ce6f7f5
Skip checking for symbol leaks in libruby.so linking extensions
The libruby.so linking extension libraries contain symbols exported
from extension libraries, and is not subject of test-leaked-globals.
2024-01-17 19:37:56 +09:00
Nobuyoshi Nakada
96cd73d78f
Ignore symbols even in empty shared library
On some platforms, such as FreeBSD and Oracle Linux, symbols defined
in the crt0 setup routine are exported from shared libraries.  So
ignore the symbols that would be exported even in an empty shared
library.
2023-10-14 18:38:24 +09:00
Nobuyoshi Nakada
9859dbc7fd
Fix leaked symbols on FreeBSD [ci skip] 2023-10-12 15:07:42 +09:00
Kevin Newton
3d0a46796b Rename YARP symbols to prism 2023-09-27 13:57:38 -04:00
Nobuyoshi Nakada
cceb410087 leaked-globals: check leaked symbols in libruby.so if enable-shared 2023-07-08 11:31:17 +09:00
Nobuyoshi Nakada
28ae4e4628 leaked-globals: ignore Address Sanitizer symbols 2023-07-08 11:31:17 +09:00
Jemma Issroff
d53e1f42ff [Feature #19741] Add yarp to builds
Add yarp to common.mk and windows builds to enable us to run yarp
correctly with CI.
2023-06-21 11:25:39 -07:00
Nobuyoshi Nakada
08324ab9eb
Include --no-llvm-bc option in NM macro only if usable 2023-04-08 12:47:27 +09:00
Nobuyoshi Nakada
9e1ff2462b
leaked-globals: check for nm before files under missing [ci skip]
Abort if `nm` is not available, since it is needed by configure.ac to
check for prefix of external symbols.
2023-04-02 18:11:59 +09:00
Nobuyoshi Nakada
3a683964a0
leaked-globals: colorize skipping file names [ci skip] 2023-04-02 17:56:12 +09:00
Takashi Kokubun
f5909ac6d9 RJIT: Stop allowing leaked globals rjit_* 2023-03-08 23:24:38 -08:00
Takashi Kokubun
23ec248e48 s/mjit/rjit/ 2023-03-06 23:44:01 -08:00
Alan Wu
7d4395cb69 YJIT: Fix shared/static library symbol leaks
Rust 1.58.0 unfortunately doesn't provide facilities to control symbol
visibility/presence, but we care about controlling the list of
symbols exported from libruby-static.a and libruby.so.

This commit uses `ld -r` to make a single object out of rustc's
staticlib output, libyjit.a. This moves libyjit.a out of MAINLIBS and adds
libyjit.o into COMMONOBJS, which obviates the code for merging libyjit.a
into libruby-static.a. The odd appearance of libyjit.a in SOLIBS is also
gone.

To filter out symbols we do not want to export on ELF platforms, we use
objcopy after the partial link. On darwin, we supply a symbol list to
the linker which takes care of hiding unprefixed symbols.

[Bug #19255]

Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2023-01-27 12:28:09 -05:00
Nobuyoshi Nakada
418b03c750
tool/leaked-globals: ignore function typedef [ci skip] 2023-01-21 19:26:16 +09:00
Nobuyoshi Nakada
b7163c712c
Canonicalization functions were removed already
At b958e2add8
2020-12-29 21:00:16 +09:00
Nobuyoshi Nakada
260d626ef6
Ignore symbols declared in the platform header 2020-12-27 15:50:44 +09:00
Nobuyoshi Nakada
366b58d7ca
Ignore objects from the "missing" directory 2020-12-27 15:50:44 +09:00
Nobuyoshi Nakada
0957814c27
Get rid of \K for old BASERUBYs which have a bug in String#scan 2020-12-27 15:50:43 +09:00
Nobuyoshi Nakada
d55d0331c7
Exclude entry points 2020-12-27 15:50:02 +09:00
Nobuyoshi Nakada
46ab4fcf2a
Support AC_FUNC_MEMCMP 2020-12-27 15:50:02 +09:00
Nobuyoshi Nakada
2b7454eb92
Update leaked-globals [Bug #16934]
* match uppercase types which would be global, other than [BDT]
* ignore `RUBY_` prefixed symbols
2020-06-04 17:00:52 +09:00
Yusuke Endoh
5f35b8ca30
st.c: Use rb_st_* prefix instead of st_* (#2479)
The original st.c was public domain hash table implementation, but
Ruby's st.c is highly modified, and its data structure is not
compatiblie with the original one.

Therefore, when creating an extension library to wrap C code that uses
the original st.c, the symbols conflict, which leads to segfault.

This changes the prefix `st_*` of st.c functions to `rb_st_*` for
reflecting that they are specific to Ruby's, and avoid symbol conflicts.
2019-09-22 22:12:18 +09:00
Hiroshi SHIBATA
e8ddbc0239
Put colorize to library directory.
Same as 66299e7ca83d379d13abaa5411f3e0419334cabb
2019-07-15 09:40:22 +09:00
Nobuyoshi Nakada
23751a2681
leaked-globals: check if un-prefixed symbols leak externally 2019-05-16 23:34:01 +09:00