Граф коммитов

23 Коммитов

Автор SHA1 Сообщение Дата
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