1
1
mirror of https://github.com/rui314/mold.git synced 2024-10-04 08:37:28 +03:00
Commit Graph

5911 Commits

Author SHA1 Message Date
Rui Ueyama
325d12d169 Upload test artifacts only on test failure 2023-03-15 08:32:51 +08:00
Rui Ueyama
2a26a0db64 Fix CI 2023-03-15 08:32:51 +08:00
Rui Ueyama
72c9425ae3
Merge pull request #1016 from marxin/fix-Wunused-but-set-variable
Fix warning: variable ‘check’ set but not used [-Wunused-but-set-variable]
2023-03-14 21:44:48 +09:00
Rui Ueyama
ff46c33d3f
Merge pull request #1015 from marxin/fix-Wint-in-bool-context
fix thunks.cc:81:32: warning: enum constant in boolean context [-Wint…
2023-03-14 21:44:33 +09:00
Martin Liska
c59b3f5fa5 Fix warning: variable ‘check’ set but not used [-Wunused-but-set-variable]
Signed-off-by: Martin Liska <mliska@suse.cz>
2023-03-14 13:28:45 +01:00
Martin Liska
84a5509da2 fix thunks.cc:81:32: warning: enum constant in boolean context [-Wint-in-bool-context]
Fixes the following error:
/elf/thunks.cc:81:32: warning: enum constant in boolean context [-Wint-in-bool-context]
  return ty == R_PPC64_REL24 || R_PPC64_REL24_NOTOC;

Signed-off-by: Martin Liska <mliska@suse.cz>
2023-03-14 13:25:05 +01:00
Rui Ueyama
305153b9c7 Archive test results 2023-03-14 19:22:56 +08:00
Rui Ueyama
1adde7aa51 Make undefined symbol in a DSO to keep other DSOs alive
Fixes https://github.com/rui314/mold/issues/1014
2023-03-14 18:52:03 +08:00
Rui Ueyama
4fa2bc17b8 Allow empty mergeable sections
Fixes https://github.com/rui314/mold/issues/1012
2023-03-14 07:14:18 +08:00
Rui Ueyama
294a467116 Rename files 2023-03-13 16:23:36 +08:00
Rui Ueyama
67eb3069b3 Fix build failure
Fixes https://github.com/rui314/mold/issues/1008
2023-03-07 18:34:59 +08:00
Rui Ueyama
ad2694445c Import changes from sold 2023-03-07 15:57:28 +08:00
Rui Ueyama
6a1713e440
Merge pull request #1004 from ishitatsuyuki/lto-eh-frame 2023-03-07 12:01:54 +09:00
Tatsuyuki Ishi
62d65371d7 [ELF] Kill .eh_frame sections after symbol resolution.
Handle .eh_frame in a similar way as mergeable sections.

This seems to be required for GCC CRT compiled with LTO.

Signed-off-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
2023-03-06 13:22:06 +08:00
Rui Ueyama
c4722fe5ae Build Linux binaries on GitHub Actions 2023-03-05 14:46:32 +08:00
Tatsuyuki Ishi
13472be059 [ELF] Resolve .eh_frame symbols renamed by GCC LTO.
When LTO is enabled for CRT it seems symbols like __EH_FRAME_BEGIN__.lto_priv.0
can be created. Treat it as the same as the non-LTO variant.

Signed-off-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
2023-03-05 13:59:40 +08:00
Rui Ueyama
6d2dbd42a6 Preparation to support Apple ld64's -w option 2023-03-05 08:48:09 +08:00
Rui Ueyama
d2970e096d Support R_X86_64_GOTOFF64 in non-memory-allocated sections
Fixes https://github.com/rui314/mold/issues/1003
2023-03-05 08:07:24 +08:00
Rui Ueyama
77c4795139 Workaround for an old GCC issue
Fixes https://github.com/rui314/mold/issues/1003
2023-03-04 17:10:49 +08:00
Rui Ueyama
5434babdf3 Fix typo 2023-03-04 16:53:02 +08:00
Rui Ueyama
530b3ebd88 Enable tests for Power10 if MOLD_ENABLE_QEMU_TESTS_POWER10 is true 2023-03-04 16:13:57 +08:00
Rui Ueyama
33172a7b61 Update comments 2023-03-04 11:01:25 +08:00
Rui Ueyama
5065547c4e Support the Power10 ABI 2023-03-04 09:43:42 +08:00
Rui Ueyama
0870078ed2
Merge pull request #997 from ksco/fix_rv64_test 2023-02-22 18:27:57 +09:00
Yang Liu
992ad0fc08 [RISCV] Fix riscv64_obj-compatible 2023-02-22 16:40:42 +08:00
Rui Ueyama
5ae8ec9669
Merge pull request #993 from ksco/riscv_compatibility 2023-02-21 14:03:08 +09:00
Rui Ueyama
0bd5adde7e Refactor 2023-02-20 18:06:33 +08:00
Yang Liu
7e8a9f230c [RISCV] Add an obj ABI incompatibility tests
Signed-off-by: Yang Liu <liuyang22@iscas.ac.cn>
2023-02-19 19:59:29 +08:00
Yang Liu
f7bc901c2d [RISCV] Check object files' compatibility
Signed-off-by: Yang Liu <liuyang22@iscas.ac.cn>
2023-02-19 19:58:13 +08:00
Rui Ueyama
e1a7590db3 Fix LTO symbol resolution instability
Previously, we clear liveness bits for all input files after compiling
IR object files to real object files so that we can do name resolution
completely from scratch. However, that can result in inconsistent name
resolution results before and after LTO.

Consider a weak defined symbol X in an object file. A weak undef doesn't
pull files out of an archive file. However, if symbol X is transformed
to an undefined symbol as a result of LTO, it could pull out a file from
an archive. That can have cascading effects and result in a link failure.

With this fix, all object files that are alive at the time when LTO kicks
in are guaranteed to be kept after LTO.

Fixes https://github.com/rui314/mold/issues/991
2023-02-19 16:26:46 +08:00
Rui Ueyama
f592b6e167 Refactor 2023-02-16 15:18:25 +08:00
Rui Ueyama
8c0f455b97 Refactor 2023-02-16 08:58:47 +08:00
Rui Ueyama
0d08c52258 Refactor 2023-02-15 20:46:50 +08:00
Rui Ueyama
a42626b975 Skip if ppc64
Fixes https://github.com/rui314/mold/issues/989
2023-02-15 15:51:35 +08:00
Rui Ueyama
ec728d0cef Simplify 2023-02-13 10:17:37 +08:00
Rui Ueyama
20bddc75cf Avoid inline assembly 2023-02-12 11:58:47 +08:00
Rui Ueyama
45bece4bd9 Handle ppc64 as a synonym for powerpc64
Fixes https://github.com/rui314/mold/issues/986
2023-02-12 09:06:10 +08:00
Rui Ueyama
445a23fbc0
Merge pull request #985 from ksco/fix_ci_warnings
[CI] Use clang++-12 to suppress warnings
2023-02-12 08:11:18 +09:00
Rui Ueyama
6952a2efa5
Merge pull request #984 from ksco/weak_undef4
Add an another weak undef test
2023-02-12 08:09:44 +09:00
Yang Liu
8c2ccd2f55 [CI] Use clang++-12 to suppress warnings 2023-02-11 15:00:08 +08:00
Yang Liu
9ce963b480 Add an another weak undef test
This test ensures that mold does not extract archive members to resolve
undefined weak symbols.

Signed-off-by: Yang Liu <liuyang22@iscas.ac.cn>
2023-02-11 14:51:30 +08:00
Rui Ueyama
35794cfc66
Merge pull request #983 from ksco/weak_undef3 2023-02-11 13:24:06 +09:00
Yang Liu
e300c6d9b2 [RISCV] Add a weak undef symbol test case
Signed-off-by: Yang Liu <liuyang22@iscas.ac.cn>
2023-02-11 11:43:02 +08:00
Rui Ueyama
8660db16a8 Update man page 2023-02-11 08:51:20 +08:00
Rui Ueyama
25b4f0b054
Merge pull request #980 from ksco/fix_undef_weak
[RISCV] Fix R_RISCV_PCREL_HI20
2023-02-10 10:28:53 +09:00
Yang Liu
fc809c6c73 [RISCV] Fix R_RISCV_PCREL_HI20 2023-02-09 14:15:56 +08:00
Rui Ueyama
51845ac5fe Support R_RISCV_PLT32
https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/363
2023-02-06 12:48:56 +08:00
Rui Ueyama
8e50fad6b9 Update man page 2023-02-06 12:48:56 +08:00
Rui Ueyama
3e818cd350 Simplify 2023-02-06 08:24:33 +08:00
Rui Ueyama
4327d4547e Fix typo 2023-02-06 08:10:45 +08:00